Neste capítulo, nós começamos a construir o sistema LFS pra valer.
A instalação desse software é direta. Embora em muitos casos as instruções de instalação pudessem ser mais curtas e mais genéricas, nós optamos por fornecer as instruções completas para cada pacote para minimizar as possibilidades de erros. A chave para aprender o que faz um sistema Linux funcionar é a de saber para que cada pacote é usado e porque você (ou o sistema) possivelmente precise dele.
Nós não recomendamos usar otimizações personalizadas. Elas podem
fazer com que um aplicativo execute ligeiramente mais rápido, mas
elas também possivelmente causem dificuldades de compilação e
problemas quando executar o aplicativo. Se um pacote se recusar a
compilar com uma otimização personalizada, [então] tente compilá-lo
sem otimização e veja se isso corrige o problema. Mesmo se o pacote
compilar quando usar uma otimização personalizada, existe o risco de
que ele possivelmente tenha sido compilado incorretamente devido às
complexas interações entre o código e as ferramentas de construção.
Observe também que as opções -march
e
-mtune
usando valores não especificados
no livro não foram testadas. Isso possivelmente cause problemas com
os pacotes do conjunto de ferramentas (Binutils, GCC e Glibc). Os
pequenos ganhos potenciais alcançados personalizando-se otimizações
de compilador frequentemente são superados pelos riscos.
Construtoras(es) de primeira vez do LFS são encorajadas(os) a
construir sem otimizações personalizadas.
Por outro lado, nós mantemos as otimizações habilitadas pela
configuração padrão dos pacotes. Adicionalmente, as vezes, nós
explicitamente habilitamos uma configuração otimizada fornecida por
um pacote, porém não habilitada por padrão. Os(As) mantenedores(as)
do pacote já testaram essas configurações e as consideraram seguras,
de modo que não é provável que elas quebrariam a construção.
Geralmente, a configuração padrão já habilita O2
ou O3
, de forma que o
sistema resultante ainda executará muito rápido sem qualquer
otimização personalizada e será estável ao mesmo tempo.
Antes das instruções de instalação, cada página de instalação fornece informação a respeito do pacote, incluindo uma descrição concisa do que ele contém, aproximadamente quando tempo levará para construir, e quanto espaço de disco é exigido durante esse processo de construção. Seguindo as instruções de instalação, existe uma lista de aplicativos e de bibliotecas (juntamente com breves descrições) que o pacote instala.
Os valores da UPC e espaço em disco exigido incluem dados da suíte de teste para todos os pacotes aplicáveis no Capítulo 8. Os valores da UPC foram calculados usando quatro núcleos da CPU (-j4) para todas as operações, a menos que especificado do contrário.
Em geral, as(os) editoras(es) do LFS desencorajam construir e instalar bibliotecas estáticas. A maior parte das bibliotecas estáticas tem sido tornada obsoleta em um sistema moderno Linux. Além disso, vincular uma biblioteca estática a um aplicativo pode ser prejudicial. Se uma atualização para a biblioteca for necessária para remover um problema de segurança, [então] cada aplicativo que usar a biblioteca estática precisará ser vinculado novamente à nova biblioteca. Como o uso de bibliotecas estáticas nem sempre é óbvio, os aplicativos relevantes (e os procedimentos necessários para fazer a vinculação) possivelmente nem mesmo sejam conhecidos.
Os procedimentos neste capítulo removem ou desabilitam a instalação
da maioria das bibliotecas estáticas. Usualmente isso é feito
passando-se uma opção --disable-static
para o configure. Em
outros casos, meios alternativos são necessários. Em uns poucos
casos, especialmente Glibc e GCC, o uso de bibliotecas estáticas
permanece um recurso essencial do processo de construção do pacote.
Para uma discussão mais completa acerca de bibliotecas, veja-se Bibliotecas: Estática ou compartilhada? no livro BLFS.