Quando se deve compilar e instalar a partir do código-fonte?

4

Para instalar software em um sistema Linux, muitas ferramentas como yum , apt-get , rpm , dpkg e assim por diante estão disponíveis para obter um pacote de um repositório ou instalar um pacote baixado.

Como alternativa, é possível fazer o download de um arquivo (normalmente) .tar.gz2 da origem e compilar manualmente usando

./configure
make
make install

ou similar. Minha pergunta é: Quando alguém deve compilar e instalar a partir do código-fonte?

    
por Davidson Chua 04.12.2013 / 10:14

4 respostas

4

Em geral, recomenda-se usar os pacotes fornecidos pela sua distribuição e usar o gerenciador de pacotes relacionado (por exemplo, dpkg/apt-get no sistema baseado no Debian). A tarefa da sua distribuição é empacotar software e configurá-lo de tal forma que não haja conflitos.

Por vezes, a sua distribuição não tem o software que pretende ou tem outras razões, por exemplo,

  • você precisa de uma versão mais recente
  • você quer ter uma configuração especial ou deseja incluir patches etc.
  • você precisa de mais desempenho e, portanto, deseja otimizar o software especialmente para seu hardware (processador, ...)

porque você deseja compilar o software você mesmo (o que pode ser bastante difícil - especialmente se você não conhece todas as dependências).

Você tem diferentes opções:

  • reconstruí-lo a partir da origem, geralmente a partir de um tarball (= *.tar.gz file) ou de um repositório de origem upstream como o github
  • faça o download / instale um pacote pré-criado correspondente (diretamente ou usando um repositório não oficial)
  • use a fonte de pacotes existente de sua distribuição, atualize-a manualmente e crie um novo pacote que você poderá instalar.

Se você instalar o software sem usar o gerenciador de pacotes, é altamente recomendável instalar o software em outros locais que não o gerenciador de pacotes. O prefixo destinado é /usr/local/ . Instalar em um novo subdiretório de /opt ou em algum lugar da sua pasta pessoal também é uma opção.

    
por 04.12.2013 / 10:26
3

Eu diria, compile a partir da fonte somente quando for necessário. Ao gerenciar um sistema, perder os recursos de gerenciamento de seu gerenciador de pacotes pode ser algo que deve ser evitado a todo custo.

Freqüentemente eu vou pegar um pacote fonte e construí-lo e / ou reconstruí-lo a partir do código-fonte, mas usando as facilidades oferecidas aos desenvolvedores de pacotes para o seu gerenciador de pacotes distros.

Exemplo

Frequentemente, eu faço o download de um RPM de origem para uma distro baseada em Redhat e, em seguida, modifico-o usando o tarball mais recente de um determinado pacote e, em seguida, reconstruo-o da seguinte forma:

$ rpmbuild --rebuild some.package.src.rpm

Uma vez reconstruída, instalarei usando yum ou rpm .

Referências

por 04.12.2013 / 10:27
2

Você deve compilar e instalar a partir do código-fonte, se o pacote da sua distribuição não atender às suas necessidades. Por exemplo, se você precisar adicionar uma opção não compilada no pacote ou se precisar alterar um caminho para vincular a uma determinada biblioteca. Ou se você precisar da versão mais recente que ainda não está empacotada.

    
por 04.12.2013 / 10:24
1

Resposta curta: quando você precisar.

Resposta longa: A maioria dos distribuidores oferece pacotes pré-compilados dos softwares usados mais comuns em seus repositórios. Primeiro, compilar pode ser muito doloroso para usuários iniciantes. Em segundo lugar, o distribuidor pode assumir que todos os sistemas têm os mesmos binários que tornam a distribuição mais estável. Esses pacotes pré-compilados passam por uma fase muito difícil de teste (depende do distribuidor e do release), antes de serem liberados no repositório. Por isso, recomendo usar as fontes de software da sua distribuição antes de compilar sozinho. Se não houver outra forma ou o pacote não estiver disponível nas fontes de software e não houver outro software que ofereça o mesmo, você poderá compilar manualmente.

    
por 04.12.2013 / 10:26