Convenções Usadas neste Livro

Convenções Tipográficas

Para facilitar o acompanhamento, diversas convenções são usadas ao longo do livro. Aqui estão alguns exemplos:

./configure --prefix=/usr

Essa forma de texto deveria ser digitada exatamente como mostrado, salvo indicação em contrário no texto ao redor. Também é usado para identificar referências a comandos específicos.

install-info: unknown option
`--dir-file=/mnt/lfs/usr/info/dir'

Essa forma de texto (fonte de largura fixa) mostra a saída gerada de tela, provavelmente o resultado da emissão de um comando. Também é usada para mostrar nomes de arquivos como /boot/grub/grub.conf

Ênfase

Essa forma de texto é usada para diversos fins, mas principalmente para enfatizar pontos importantes, ou para dar exemplos do que digitar.

https://www.linuxfromscratch.org/

Essa forma de texto é usada para links externos de hipertexto para o livro, como "HowTos", locais de transferência, sítios da "web", etc.

SeaMonkey-2.53.15

Essa forma de texto é usada para links internos para o livro, como outra seção que descreve um pacote diferente.

cat > $LFS/etc/group << "EOF"
root:x:0:
bin:x:1:
......
EOF

Esse estilo é usado principalmente ao criar arquivos de configuração. O primeiro comando (em negrito) diz ao sistema para criar o arquivo $LFS/etc/group a partir do que for digitado nas linhas seguintes, até que a sequência "EOF" seja encontrada. Portanto, toda essa seção geralmente é digitada exatamente como mostrada. Lembre-se, copiar e colar é seu(a) amigo(a)!

<TEXTO SUBSTITUÍDO>

Essa forma de texto é usada para encapsular o texto que deveria ser modificado e não é para ser digitado conforme mostrado, nem copiado e colado. Os colchetes angulares não são parte do texto literal; eles são parte da substituição.

root

Essa forma de texto é usada para mostrar uma referência específica a um(a) usuário(a) ou grupo do sistema nas instruções.

 

Convenções Usadas para Dependências de Pacote

Quando novos pacotes são criados, os(as) autores(as) do logiciário dependem de trabalhos anteriores. Para a finalidade de construir um pacote no BLFS, essas dependências precisam ser construídas antes que o pacote desejado possa ser compilado. Para cada pacote, os pré-requisitos estão listados em uma ou mais seções separadas: Exigidas, Recomendadas e Opcionais.

Dependências Exigidas

Essas dependências são o mínimo necessário para construir o pacote. Pacotes no LFS e as dependências exigidas desses pacotes exigidos estão omitidos dessa lista. Lembre-se sempre de verificar dependências aninhadas.

Dependências Recomendadas

Essas são dependências que os(as) editores(as) do BLFS determinaram que são importantes para fornecer recursos razoáveis ao pacote. As instruções de instalação do pacote assumem que elas estão instaladas. Se um pacote recomendado não estiver instalado, [então] as instruções possivelmente exigirão modificações para acomodar o pacote ausente.

Dependências Opcionais

Essas são dependências que o pacote possivelmente use. A integração de dependências opcionais possivelmente seja automática pelo pacote, ou etapas adicionais não apresentadas pelo BLFS possivelmente sejam necessárias. Dependências opcionais são, ocasionalmente, listadas sem instruções BLFS explícitas. Nesse caso, você mesmo(a) precisa determinar como realizar a instalação.

 

Convenções Usadas para Opções de Configuração do Núcleo

Alguns pacotes exigem opções específicas de configuração do núcleo. O esquema geral para esses se parece com isto:

Seção mestre --->
  Subseção --->
    [*]     Parâmetro exigido                      [CONFIG_REQU_PAR]
    <*>     Parâmetro exigido (não como módulo)     [CONFIG_REQU_PAR_NMOD]
    <*/M>   Parâmetro exigido (poderia ser um módulo) [CONFIG_REQU_PAR_MOD]
    <*/M/ > Parâmetro opcional                      [CONFIG_OPT_PAR]
    [ ] Parâmetro incompatível                      [CONFIG_INCOMP_PAR]
    < > Parâmetro incompatível (mesmo como módulo)    [CONFIG_INCOMP_PAR_MOD]

[CONFIG_...] na direita fornece o nome da opção, de forma que você pode facilmente verificar se ela está configurada no seu arquivo config. O significado das várias entradas é:

Seção mestre item do topo do menu
Subseção item do submenu
Parâmetro exigido a opção pode ou estar integrada ou não selecionada: ela precisa ser selecionada
Parâmetro exigido (não como módulo) a opção pode ser integrada, um módulo ou não selecionada ("tri-state"): ela precisa ser selecionada como integrada
Parâmetro exigido (poderia ser um módulo) a opção pode ser integrada, um módulo, ou não selecionada: ela precisa ser selecionada, ou como integrada ou como um módulo
Parâmetro opcional raramente usada: a opção pode ser integrada, um módulo ou não selecionada: ela possivelmente seja configurada da maneira que você desejar
Parâmetro incompatível a opção pode ser ou integrada ou não selecionada: ela precisa não ser selecionada
Parâmetro incompatível (mesmo como módulo) a opção pode ser integrada, um módulo ou não selecionada: ela precisa não ser selecionada

Observe que, dependendo de outras seleções, os colchetes angulares (<>) no menu de configuração possivelmente apareçam como chaves ({}), se a opção não puder ser desmarcada; ou mesmo traços (-*- ou -M-), quando a escolha for imposta. O texto de ajuda descrevente da opção especifica as outras seleções das quais essa opção depende e como aquelas outras seleções são configuradas.

 

Valores da UPC no BLFS

Assim como no LFS, cada pacote no BLFS tem um tempo de construção listado em Unidades Padrão de Construção ("UPCs"). Esses tempos são relativos ao tempo que levou para construir "binutils" no LFS e são destinados a fornecer algumas dicas sobre quanto tempo levará para construir um pacote. A maioria dos tempos listados é para um processador ou núcleo para construir o pacote. Em alguns casos, compilações grandes e de longa duração testadas em sistemas de múltiplos núcleos tem tempos de "UPC" listados com comentários como '(paralelismo=4)'. Esses valores indicam que o teste foi feito usando vários núcleos. Observe que, embora isso acelere a construção em sistemas com o "hardware" apropriado, a aceleração não é linear e, até certo ponto, depende do pacote individual e do "hardware" específico usado.

Para pacotes que usam "Ninja" (ou seja, qualquer coisa que use "Meson") ou "Rust", por padrão todos os núcleos são usados; comentários semelhantes serão vistos em tais pacotes mesmo quando o tempo de construção for mínimo.

Mesmo que uma construção paralela leve mais de quinze (15) "UPCs", em certas máquinas o tempo possivelmente seja consideravelmente maior, mesmo quando a construção não usa troca. Em particular, diferentes microarquiteturas construirão alguns arquivos a diferentes velocidades relativas, e isso pode introduzir atrasos quando certos alvos do "Make" aguardam que outro arquivo seja criado. Onde uma construção grande usa muitos arquivos "C++", os processadores com Multi Camadas Simultâneas compartilharão a Unidade de Ponto Flutuante e podem levar quarenta e cinco inteiros por cento (45%) mais tempo que ao usar quatro núcleos 'principais' (medido em um Intel i7 usando o conjunto de tarefas e mantendo os outros núcleos ociosos).

Alguns pacotes não suportam construções paralelas; para esses, o comando "make" precisa especificar "-j1". Os pacotes que são conhecidos por imporem tais limites estão assim marcados no texto.