8.1. Introdução

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.

[Nota]

Nota

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.

8.1.1. Acerca de bibliotecas

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.