Compilando a partir da fonte: Quais são as opções para o script de configuração “build”?

2

Quando estou executando uma linha como:

./configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu {*shortened*} \
--with-imap-ssl=/usr/include/openssl/ --enable-ftp --enable-mbstring --enable-zip

Eu entendo o que o "x86_64-redhat-linux-gnu" significa descritivamente, mas eu tenho perguntas?

1) Existe uma lista em algum lugar de todas as escolhas? Seja em cada script de configuração ou na internet.

2) Tornar a resposta mais específica ou mais genérica tem muito efeito sobre o resultado?

Obrigado.

    
por DouglasCodes 20.09.2014 / 05:36

1 resposta

3

As opções --build e -host são para configure scripts são opções de configuração padrão e raramente é necessário especificá-los, a menos que você esteja fazendo uma construção cruzada (ou seja, criando um pacote em um sistema para executado em um sistema diferente). Os valores dessas opções são chamados de "triplos" porque têm o formato cpu-vendor-os . (Às vezes, como no seu caso, os é realmente kernel-os , mas ainda é chamado de triplo.)

O script de configuração base é bastante capaz de deduzir o triplo do host, e você deve deixá-lo fazer isso a menos que você tenha alguma evidência realmente boa de que os resultados estão incorretos. O script que faz isso é chamado config.guess , e você o encontrará em algum lugar no pacote de construção (pode estar em um subdiretório build-aux ). Se você estiver fazendo uma construção cruzada e precisar saber o host triple, a primeira coisa a tentar é executar config-guess no sistema host.

Os valores fornecidos (ou adivinhados) para --host e --build são passados por outro script chamado config.sub , que normalizará os valores. (De acordo com os documentos do autoconf, se config.sub não estiver presente, você pode assumir que a compilação não se importa com o triplo do host.) Os desenvolvedores de um pacote de software específico podem personalizar o script config.sub para as necessidades específicas de sua compilação, e há muitas versões diferentes do script padrão config.sub , portanto você não deve esperar que config.sub de um pacote de software funcione em outro pacote de software, ou mesmo em uma versão diferente do mesmo pacote de software .

Apesar de todos os itens acima, os pacotes de software autoconfiados realmente não precisam saber os nomes do sistema operacional do host e do fornecedor, exceto para identificar o layout do sistema de arquivos padrão para que eles forneçam os locais de arquivo padrão corretos.

Você pode ler config.sub para ter uma ideia do intervalo de opções que serão reconhecidas, mas não é tão fácil descobrir como os valores são usados ou até mesmo se os valores são usados. O primeiro campo - o cpu - é o mais provável de ser usado.

Você pode obter uma lista de todas as opções digitando:

./configure --help

ou melhor,

./configure --help | less

desde que há sempre muitas opções.

Diferente das opções padrão ( --build , --host e --target como acima e das opções que substituem os locais dos arquivos), as opções específicas permitidas por cada script de configuração são diferentes. Como eles também tendem a mudar de versão para versão do pacote de software, você deve sempre verificar o script de configuração em vez de confiar na documentação externa.

Infelizmente, o conteúdo da ajuda do script de configuração nem sempre é 100% concluído, porque eles dependem dos desenvolvedores de pacotes para mantê-los. Às vezes, opções incomuns ou somente de desenvolvedor não fazem parte da saída ./configure --help , mas isso geralmente é uma indicação de que a opção não deve ser usada em uma instalação normal.

    
por 20.09.2014 / 05:53