Instalar software de pacotes ou construí-lo a partir do código-fonte?

5

This is a Canonical Question about when to use packaged software and when to build and install it yourself.

Quando devo instalar software a partir de pacotes fornecidos pela minha distribuição de SO, em vez de criar e instalar a partir da origem? Quando é melhor construir a partir da fonte?

    
por Andrew Schulman 25.02.2015 / 08:43

2 respostas

11

Você deve usar os pacotes da sua distribuição, a menos que tenha uma boa razão para não fazer isso. Usar os pacotes da distro oferece importantes benefícios:

  • É menos trabalhoso instalar e desinstalar os pacotes e mantê-los atualizados.
  • O sistema de empacotamento instalará automaticamente as dependências do software e as manterá atualizadas também.
  • Atualizações de segurança são fornecidas automaticamente para você pela distribuição, portanto você não precisa rastreá-las nem se preocupar com a falta delas.
  • O sistema de embalagem irá configurar as coisas da maneira preferida da sua distribuição. Por exemplo, em sistemas baseados em apt, o Apache vem instalado com links simbólicos em / etc / apache2 / * - enabled e ferramentas (a2enconf, a2enmod, ...) para usá-los para ativar ou desativar recursos do Apache. Embora inicialmente possa levar mais trabalho para você aprender, a longo prazo sua vida será mais fácil e sua configuração será melhor integrada se você usar as ferramentas nativas e as maneiras de fazer as coisas da distro.

Se você precisar usar uma versão mais recente de algum software que não seja a sua distribuição, ou habilitar um recurso que precise ser compilado, você poderá encontrar versões mais atualizadas ou com recursos do pacote a partir da comunidade. repositórios. Os repositórios do Remi são um exemplo bem conhecido, oferecendo, entre outras coisas, versões muito mais atualizadas do PHP do que aquelas fornecidas com o RHEL / CentOS. O uso de um repositório da comunidade oferece muitas das vantagens dos repositórios do SO, mas corre o risco de o autor liberar um malware que você instalará, com total privilégio, em seu sistema. Você terá que fazer o julgamento de risco / recompensa, caso a caso.

Se nenhuma dessas alternativas funcionar para você, você precisará compilar a partir da fonte. Ao compilar o software a partir do código-fonte, a rota recomendada é criar seus próprios pacotes binários . Construir seus próprios pacotes permite que você:

  • Trabalhe com o sistema de gerenciamento de pacotes da sua distribuição para distribuição, instalação, gerenciamento de dependência, relatórios, atualizações, downgrades e remoção.
  • Restrinja suas ferramentas de construção e bibliotecas de desenvolvimento a um único host de construção (em vez de instalá-las em todos os servidores de teste e produção).
  • Siga o caminho de lançamento comum da primeira implementação de seus pacotes em um ambiente de teste antes de implantar o mesmo pacote em seu ambiente de produção.

Como isso faz de você o mantenedor do pacote , você precisará se inscrever nas listas de discussão de segurança relevantes para não perder erros críticos e atualizações de segurança.

Se você acabar instalando software construído localmente sem empacotá-lo, o GNU stow pode ajudar a mantê-lo bem organizada e tornar mais fácil a desinstalação limpa.

    
por 03.03.2015 / 13:34
1

Eu gosto da resposta de Andrew.

Eu quero apontar um específico para adicionar ao comentário de Andrew sobre "melhor integração". Se você instalar um aplicativo a partir da origem (uma dependência de um projeto futuro) e depois tentar instalar um pacote a partir de um binário (por exemplo, um pacote deb ou rpm), esse pacote poderá não reconhecer que uma dependência está instalada. Se você tivesse instalado o aplicativo de dependência inicial de um pacote RPM ou DEB, o pacote futuro saberia que estava instalado. Usar o mesmo método de pacote (por exemplo, yum, pip, rpm etc.) é uma prática recomendada. Instalar a partir do código-fonte é outro método. Portanto, a facilidade com que Andrew está falando é uma consideração séria.

Eu quero adicionar que "criar seus próprios pacotes binários" tem o benefício de registrar o processo de instalação. Instalando a partir de arquivos de origem não tem o benefício de log.

    
por 07.06.2015 / 19:37