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.
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.
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.
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.
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.
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.
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.
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.