Quais são as vantagens de construir ferramentas / libs a partir do código-fonte?

8

Ao construir a partir da fonte, você obtém algum benefício? O código é melhor otimizado para sua arquitetura de hardware? É otimizado melhor em geral?

Por que alguém escolheria construir a partir da fonte, em vez de usar um sistema de gerenciamento de pacotes como o APT / yum? Se houver algum tipo de ganho de otimização, quando isso supera o benefício de um sistema de gerenciamento de pacotes?

    
por Doug T. 15.03.2011 / 20:24

2 respostas

11

Criar a partir da fonte fornece as seguintes opções que não estão disponíveis ao usar uma versão de um gerenciador de pacotes binários.

A compilação a partir da fonte permite:

  • use otimizações específicas do processador
  • use a versão mais recente
  • saiba como compilação & ligando trabalho (sugestão de @mattdm)
  • correção de bugs, trabalho de desenvolvimento
  • definir opções de tempo de compilação (por exemplo, incluir recursos X no vim)
por 15.03.2011 / 20:32
7

Eu fiz exatamente isso recentemente.

Eu compilei o openssl-1.0.source da fonte em um sistema Linux do Slackware 11.0. Eu queria corrigir o login-por-senha para pausar por 7 segundos em um login com falha, de modo a tarpit aqueles adivinhadores de senha ssh chineses irritantes.

Eu compilei o Apache httpd 2.2.17 no mesmo sistema Slackware 11.0 porque ele veio com o Apache 2.0.alguma coisa, e eu queria usar um 2.2.x httpd.conf de outro sistema.

Pensando nisso, eu também compilei o Alpine 2.0 (cliente de email, follow-on de pinheiros) para o mesmo sistema. Por que o Slackware 11.0? Ele está sendo executado em uma máquina de 2003 com gráficos "Brookdale" da Intel, e qualquer Slackware posterior não suporta os gráficos da Intel, que são mal documentados.

Em uma máquina diferente, eu peguei o suporte a chip sem fio TI ACX111 do github e compilei um novo driver, permitindo que eu usasse uma placa wireless de $ 9.

Eu também recompilo habitualmente os kernels do Linux para torná-los específicos para a máquina em que eles rodam.

Portanto, no meu caso, existem vários motivos de personalização, suporte de hardware e "apenas porque".

Considerando o que sabemos sobre epidemiologia em uma população uniforme (http://www.usenix.org/publications/login/2005-12/openpdfs/geer.pdf), por que nem todos compilam a partir de fontes em seus próprios sistemas? , com quais opções de tempo de compilação eles escolhem? Isso resultaria em uma população muito mais resistente a vírus e vermes.

    
por 15.03.2011 / 20:35