diff --git a/LFS-BOOK-11.1-NOCHUNKS-pt_br.html b/LFS-BOOK-11.1-NOCHUNKS-pt_br.html deleted file mode 100644 index 0e95745df8..0000000000 --- a/LFS-BOOK-11.1-NOCHUNKS-pt_br.html +++ /dev/null @@ -1,56348 +0,0 @@ - - - - - Linux From Scratch - - - - - -
-
-
-
-

- Linux From Scratch -

-
-
-

- Versão 11.1 -

-
-
-

- Publicado 1º de março de 2022 -

-
-
-
-
-

- Criado por Gerard - Beekmans -

-
-
-

- Editor-chefe: Bruce - Dubbs -

-
-
-
-
- -
-
-
- -

- Direitos autorais © 1999-2022, Gerard Beekmans -

-

- Todos os direitos reservados. -

-

- Este livro é licenciado sob uma Creative Commons - License. -

-

- As instruções de computador tem permissão para serem - extraídas a partir do livro sob a MIT License. -

-

- Linux® é uma marca comercial - registrada do Linus Torvalds. -

-
-
-
-
-
-
-

- Índice -

- -
-
-
-
-
-

- Prefácio -

-
-
-
-
-
-
-
-

- Introdução -

-
-
-
-

- Minha jornada para aprender e entender melhor Linux começou em - meados de 1998. Eu havia acabado de instalar minha primeira - distribuição Linux e rapidamente fiquei intrigado com todo o - conceito e filosofia por trás do Linux. -

-

- Há sempre várias maneiras de se completar uma tarefa. O mesmo - pode ser dito sobre distribuições Linux. Muitas surgiram ao longo - dos anos. Algumas ainda existem, outras se transformaram em outra - distribuição, e ainda há outras que ficaram relegadas às nossas - memórias. Todas elas executam as tarefas de maneira diferente - para se adequar às necessidades de seus respectivos - públicos-alvo. Devido ao fato de haver tantas maneiras de se - executar uma tarefa, eu comecei a perceber que eu não tinha que - me limitar à implementação de outra pessoa. Antes de descobrir o - Linux, nós simplesmente lidávamos com problemas em outros - Sistemas Operacionais como se não tivéssemos escolha. A coisa era - o que era, não importando se você gostasse ou não. Com Linux, o - conceito de escolha começou a emergir. Se você não gostou de - alguma coisa, você seria livre, até encorajado, a mudá-la. -

-

- Eu tentei várias distribuições, mas não consegui me decidir por - nenhuma. Elas eram ótimas distribuições em seu próprio direito. - Não era mais uma questão de certo ou errado. O problema havia se - transformado em uma questão de gosto pessoal. Com todas aquelas - opções disponíveis, tornou-se aparente que não haveria um sistema - que seria perfeito para mim. Então eu me propus a criar meu - próprio sistema Linux que estaria totalmente em conformidade com - minhas preferências pessoais. -

-

- Para realmente fazer meu próprio sistema, eu resolvi compilar - tudo a partir do código fonte em vez de usar pacotes - pré-compilados. Esse sistema Linux perfeito - teria a força de vários sistemas sem suas fraquezas visíveis. A - princípio, a ideia era bastante amedrontadora. Mas eu me mantive - comprometido à ideia de que esse sistema poderia ser construído. -

-

- Após lidar com questões como dependências recíprocas e erros - durante a compilação, eu finalmente construí um sistema Linux - customizado. O sistema era totalmente operacional e perfeitamente - utilizável como qualquer outro sistema Linux disponível na época. - Mas era minha própria criação. Montar um sistema desses foi muito - gratificante. A única coisa que poderia ser melhor seria se eu - mesmo tivesse escrito cada programa. Essa foi a melhor coisa que - se seguiu. -

-

- Conforme eu compartilhei meus objetivos e minhas experiências com - outros membros da comunidade Linux, ficou aparente que havia um - interesse firme nessas ideias. Logo ficou claro que tal sistema - Linux customizado não serviria apenas para as necessidades - específicas dos usuários, mas também como uma oportunidade ideal - para programadores e administradores elevarem suas (existentes) - habilidades com Linux. Como resultado desse interesse amplo, o - Projeto Linux From Scratch - nasceu. -

-

- Este livro Linux From Scratch é o núcleo do projeto. O livro - provê a base e as instruções necessárias para você modelar e - construir seu próprio sistema. Mesmo este livro disponibilizando - instruções que resultarão em um sistema que funciona - corretamente, você é livre para alterar as instruções para - adaptá-las às suas necessidades, o que é, em parte, uma - importante parte deste projeto. Você permanece no controle; nós - só damos uma mão para ajudá-lo a começar sua própria jornada. -

-

- Eu sinceramente espero que você se divirta trabalhando no seu - próprio Linux From Scratch e aproveite os benefícios de ter um - sistema verdadeiramente seu. -

-
-

- --
- Gerard Beekmans
- gerard AT linuxfromscratch D0T org -

-
-
-
-
-
-
-

- Audiência -

-
-
-
-

- Existem muitas razões pelas quais você desejaria ler este livro. - Uma das questões que muitas pessoas levantam é por que ir ao longo de toda a - dificuldade de construir manualmente um sistema Linux desde o - zero quando você pode simplesmente baixar e instalar um - existente? -

-

- Uma importante razão para a existência deste projeto é para te - ajudar a aprender como um sistema Linux funciona de dentro para - fora. Construir um sistema LFS ajuda a demonstrar o que torna o - Linux de interesse, e como as coisas funcionam juntas e dependem - umas das outras. Uma das melhores coisas que essa experiência de - aprendizado pode prover é a habilidade de personalizar um sistema - Linux para se ajustar às suas [de quem construir] próprias - necessidades únicas. -

-

- Outro benefício chave de LFS é que ele te permite ter mais - controle sobre o sistema sem confiar na implementação Linux de - ninguém. Com LFS, você está no banco do motorista e dita cada - aspecto do sistema. -

-

- LFS te permite criar sistemas muito compactos. Quando se instala - distribuições regulares, você frequentemente é forçado a instalar - muitos programas grandes os quais provavelmente nunca serão - usados ou entendidos. Esses programas desperdiçam recursos. Você - talvez argumente que, com os discos rígidos e CPUs de hoje, tais - recursos não mais são uma consideração. As vezes, entretanto, - você ainda está restrito por considerações de tamanho se nenhuma - outra coisa. Pense acerca de CDs inicializáveis, mídias USB e - sistemas embarcados. Essas são áreas onde LFS pode ser benéfico. -

-

- Outra vantagem de um sistema personalizado Linux construído é - segurança. Ao compilar o sistema inteiro desde o zero, você está - empoderado para auditar tudo e aplicar todas as correções de - segurança desejadas. Não mais é necessário aguardar que outra - pessoa compile os pacotes binários para consertar uma brecha de - segurança. A menos que você examine a correção e a implemente - você mesma(o), você não tem garantias de que o novo pacote - binário foi construído corretamente e adequadamente conserta o - problema. -

-

- A finalidade do [projeto] Linux From Scratch é a de construir um - sistema em nível de fundação completo e utilizável. Se você não - estiver afim de construir seu próprio sistema Linux desde o zero, - então você talvez nunca se beneficie das informações neste livro. -

-

- Existem muito mais boas razões para construir seu próprio sistema - LFS para listá-las todas aqui. No final, educação é, de longe, a - mais poderosa das razões. Conforme você continue em sua - experiência LFS, você descobrirá o poder que informação e - conhecimento verdadeiramente trazem. -

-
-
-
-
-
-

- Arquiteturas Alvo do LFS -

-
-
-
-

- A principal arquitetura alvo do LFS são os processadores - AMD/Intel x86 (32 bits) e x86_64 (64 bits). Por outro lado, as - instruções neste livro também são conhecidas por funcionar, com - algumas modificações, com os processadores Power PC e ARM. Para - construir um sistema que utiliza uma dessas CPUs, o principal - pré-requisito, em adição àqueles que estão nas próximas páginas, - é uma distribuição Linux existente, como uma instalação LFS - prévia, Ubuntu, Red Hat/Fedora, SuSE, ou outra distribuição que - abranja a arquitetura que você tem. Note também que uma - distribuição de 32-bits pode ser instalada e usada como um - sistema hospedeiro em um computador AMD/Intel de 64-bits. -

-

- Para construir LFS, o ganho de construção em um sistema 64-bits - comparado a um sistema 32-bits é mínimo. Por exemplo, em uma - construção de LFS-9.1 de teste em um sistema baseado em CPU Core - i7-4790, usando quatro núcleos, as seguintes estatísticas foram - verificadas: -

-
Arquitetura Tempo de Construção Tamanho de Construção
-32-bit       239.9 minutos  3.6 GB
-64-bit       233.2 minutos  4.4 GB
-

- Como você pode ver, no mesmo hardware, a construção de 64-bit é - apenas 3% mais rápida e é 22% maior que a construção de 32-bit. - Se você planeja usar LFS como um servidor LAMP, ou como um - firewall, então uma CPU de 32-bits talvez seja largamente - suficiente. Por outro lado, vários pacotes em BLFS atualmente - precisam de mais que 4GB de RAM para serem construídos e (ou) - para executarem, de forma que se você planeja usar LFS como um - desktop, então os autores de LFS recomendam construir em um - sistema 64-bits. -

-

- A construção de 64-bit padrão que é resultante do LFS é - considerado um sistema 64-bit puro. Ou - seja, ele suporta apenas executáveis 64-bit. Construir um sistema - multi-lib [de múltiplas bibliotecas] - exige a compilação de muitos aplicativos duas vezes, uma vez para - um sistema de 32-bit e outra vez para um sistema de 64-bit. Isso - não é diretamente suportado em LFS, pois interferiria no objetivo - educacional de prover as instruções necessárias para um sistema - Linux base estrito. Alguns editores de LFS/BLFS mantém uma - bifurcação de LFS para multilib, que é acessível em https://www.linuxfromscratch.org/~thomas/multilib/index.html. - Porém, esse é um tópico avançado. -

-
-
-
-
-
-

- Pré-requisitos -

-
-
-
-

- Construir um sistema LFS não é uma tarefa simples. Essa tarefa - exige um certo nível de conhecimento de administração de sistemas - Unix para resolver problemas e corretamente executar os comandos - listados. Em particular, no mínimo, você já deveria ter a - habilidade de usar linha de comando (shell) para copiar ou mover - arquivos e diretórios, listar diretórios e conteúdos de arquivos, - e navegar entre os diretórios. Também é de se esperar que você - tenha um conhecimento razoável sobre como usar e instalar - software [em um sistema] Linux. -

-

- Devido ao fato do livro LFS assumir que você tem pelo menos esse nível básico de - habilidades, os vários fóruns de suporte do LFS não serão - adequados para ajudá-lo nessas áreas. Você vai perceber que suas - perguntas com relação a esse conhecimento básico não serão - respondidas ou serão remetidas à lista de itens essenciais de - pré-leitura. -

-

- Antes de construir um sistema LFS nós recomendamos a leitura do - seguinte: -

-
-
    -
  • -

    - Software-Building-HOWTO http://www.tldp.org/HOWTO/Software-Building-HOWTO.html -

    -

    - Esse é um guia compreensivo de como construir e instalar - pacotes de software Unix genéricos no Linux. Embora - tenha sido escrito há algum tempo, esse guia ainda fornece - um bom resumo das técnicas básicas necessárias para - construir e instalar programas. -

    -
  • -
  • -

    - Beginner's Guide to Installing from Source - http://moi.vonos.net/linux/beginners-installing-from-source/ -

    -

    - Esse guia fornece um bom sumário de habilidades básicas e - de técnicas necessárias para construir software a partir do - código fonte. -

    -
  • -
-
-
-
-
-
-
-

- LFS e Padrões -

-
-
-
-

- A estrutura do LFS segue os padrões Linux tão rigorosamente - quanto possível. Os principais padrões são: -

-
-
    -
  • -

    - POSIX.1-2008. -

    -
  • -
  • -

    - - Filesystem Hierarchy Standard (FHS) Version 3.0 -

    -
  • -
  • -

    - Linux - Standard Base (LSB) Version 5.0 (2015) -

    -

    - O LSB tem quatro padrões separados: Core, Desktop, Runtime - Languages (linguagens em tempo de execução), e Imaging. Em - adição às exigências genéricas, há as exigências - específicas de cada arquitetura. Existem também duas áreas - para uso experimental: Gtk3 e Graphics. LFS tenta ficar de - acordo com as arquiteturas discutidas na sessão anterior. -

    -
    -

    - Nota -

    -

    - Muitas pessoas não concordam com os requisitos do LSB. O - principal propósito de definir tais requisitos é o de - garantir que softwares proprietários possam ser - instalados e executados adequadamente em um sistema que - respeite o referido padrão. Sendo o LFS baseado em código - fonte, a(o) usuária(o) tem total controle sobre quais - pacotes quer e muitas(os) escolhem não instalar alguns - dos pacotes especificados pelo LSB. -

    -
    -
  • -
-
-

- Criar um sistema LFS completo capaz de passar nos testes das - certificações do LSB é possível, mas não sem muitos pacotes - adicionais que estão além do escopo do LFS. Esses pacotes - adicionais tem instruções para instalação no BLFS. -

-
-

- Pacotes disponibilizados pelo LFS que são - necessários para satisfazer os requisitos do LSB -

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- LSB - Core: -

-
-

- Bash, Bc, Binutils, Coreutils, Diffutils, File, - Findutils, Gawk, Grep, Gzip, M4, Man-DB, Ncurses, - Procps, Psmisc, Sed, Shadow, Tar, Util-linux, Zlib -

-
-

- LSB - Desktop: -

-
-

- Nenhum -

-
-

- LSB - Runtime Languages: -

-
-

- Perl, Python -

-
-

- LSB - Imaging: -

-
-

- Nenhum -

-
-

- LSB Gtk3 - e Gráficos LSB (Uso Experimental): -

-
-

- Nenhum -

-
-
-
-

- Pacotes disponibilizados pelo BLFS - necessários para satisfazer os requisitos do LSB -

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- LSB - Core: -

-
-

- At, Batch (uma parte de At), Cpio, Ed, Fcrontab, - LSB-Tools, NSPR, NSS, PAM, Pax, Sendmail (ou Postfix ou - Exim), time -

-
-

- LSB - Desktop: -

-
-

- Alsa, ATK, Cairo, Desktop-file-utils, Freetype, - Fontconfig, Gdk-pixbuf, Glib2, GTK+2, - Icon-naming-utils, Libjpeg-turbo, Libpng, Libtiff, - Libxml2, MesaLib, Pango, Xdg-utils, Xorg -

-
-

- LSB - Runtime Languages: -

-
-

- Libxml2, Libxslt -

-
-

- LSB - Imaging: -

-
-

- CUPS, Cups-filters, Ghostscript, SANE -

-
-

- LSB Gtk3 - e Gráficos LSB (Uso Experimental): -

-
-

- GTK+3 -

-
-
-
-

- Pacotes não suportados pelo LFS ou BLFS - necessários para satisfazer os requisitos do LSB -

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- LSB - Core: -

-
-

- Nenhum -

-
-

- LSB - Desktop: -

-
-

- Qt4 (mas Qt5 é fornecido) -

-
-

- LSB - Runtime Languages: -

-
-

- Nenhum -

-
-

- LSB - Imaging: -

-
-

- Nenhum -

-
-

- LSB Gtk3 - e Gráficos LSB (Uso Experimental): -

-
-

- Nenhum -

-
-
-
-
-
-
-
-

- Justificativa para os pacotes no Livro -

-
-
-
-

- Como declarado anteriormente, a finalidade do [projeto] LFS é a - de construir um sistema em nível de fundação completo e - utilizável. Isso inclui todos os pacotes necessários para - replicá-lo ao tempo que disponibiliza uma base relativamente - pequena sobre a qual a(o) usuária(o) pode personalizar um sistema - mais completo baseado nas escolhas da(o) usuária(o). Isso não - significa que o LFS é o menor sistema possível. Vários pacotes - importantes estão inclusos que não são estritamente necessários. - As listas abaixo documentam a justificativa para cada pacote no - livro. -

-
-
    -
  • -

    - Acl -

    -

    - Esse pacote contém utilitários para administrar Listas de - Controle de Acesso, as quais são usadas para definir - direitos de acesso discricionariamente mais finamente - refinados para arquivos e para diretórios. -

    -
  • -
  • -

    - Attr -

    -

    - Esse pacote contém aplicativos para a administração de - atributos estendidos sobre objetos do sistema de arquivos. -

    -
  • -
  • -

    - Autoconf -

    -

    - Esse pacote contém aplicativos para produzir shell scripts - que podem configurar automaticamente o código fonte a - partir de um modelo do desenvolvedor. É geralmente - necessário para reconstruir um pacote após atualizações - para os procedimentos de construção. -

    -
  • -
  • -

    - Automake -

    -

    - Esse pacote contém aplicativos para gerar arquivos Make a - partir de um modelo. É geralmente necessário para - reconstruir um pacote após atualizações para os - procedimentos de construção. -

    -
  • -
  • -

    - Bash -

    -

    - Esse pacote satisfaz um requisito central do LSB para - disponibilizar uma interface Bourne Shell para o sistema. - Foi escolhido em vez de outros pacotes de shell pelo seu - uso comum e extensas capacidades que transcendem as funções - básicas do shell. -

    -
  • -
  • -

    - Bc -

    -

    - Esse pacote disponibiliza uma linguagem de processamento - numérico com precisão arbitrária. Ele satisfaz requisitos - necessários quando da construção do Kernel do Linux. -

    -
  • -
  • -

    - Binutils -

    -

    - Esse pacote contém um linker, um assembler e outras - ferramentas para manipular arquivos objeto. Os aplicativos - nesse pacote são necessários para compilar a maioria dos - pacotes em um sistema LFS e além. -

    -
  • -
  • -

    - Bison -

    -

    - Esse pacote contém a versão GNU do yacc (Yet Another - Compiler Compiler) necessário para construir vários outros - aplicativos no LFS. -

    -
  • -
  • -

    - Bzip2 -

    -

    - Esse pacote contém aplicativos para compressão e - descompressão de arquivos. É necessário para descomprimir - muitos pacotes do LFS. -

    -
  • -
  • -

    - Check -

    -

    - Esse pacote contém um conjunto de ferramentas de teste para - outros aplicativos. -

    -
  • -
  • -

    - Coreutils -

    -

    - Esse pacote contém um número de aplicativos essenciais para - visualização e manipulação de arquivos e de diretórios. - Esses aplicativos são necessários para o gerenciamento de - arquivos por linha de comando, e são necessários para os - procedimentos de instalação de cada pacote em LFS. -

    -
  • -
  • -

    - DejaGNU -

    -

    - Esse pacote contém um sistema para testar outros - aplicativos. -

    -
  • -
  • -

    - Diffutils -

    -

    - Esse pacote contém aplicativos que mostram as diferenças - entre arquivos ou diretórios. Esses aplicativos podem ser - usados para criar correções, e também são usados em muitos - procedimentos de construção dos pacotes. -

    -
  • -
  • -

    - E2fsprogs -

    -

    - Esse pacote contém os utilitários para manipular os - sistemas de arquivos ext2, ext3 e ext4. Esses são os - sistemas de arquivos mais comuns e amplamente testados que - o Linux suporta. -

    -
  • -
  • -

    - Eudev -

    -

    - Esse pacote é um gerenciador de dispositivo. Ele controla - dinamicamente o dono, permissões, nomes, e links simbólicos - de dispositivos no diretório /dev conforme dispositivos são - adicionados ou removidos do sistema. -

    -
  • -
  • -

    - Expat -

    -

    - Esse pacote contém uma biblioteca relativamente pequena de - análise de XML. Ela é exigida pelo módulo de Perl - XML::Parser. -

    -
  • -
  • -

    - Expect -

    -

    - Esse pacote contém um aplicativo para execução de scripts - de diálogos com outros aplicativos interativos. É comumente - usado para testar outros pacotes. -

    -
  • -
  • -

    - File -

    -

    - Esse pacote contém um utilitário para determinar o tipo de - um dado arquivo ou arquivos. Uns poucos pacotes precisam - dele em seus scripts de construção. -

    -
  • -
  • -

    - Findutils -

    -

    - Esse pacote contém aplicativos para encontrar arquivos em - um sistema de arquivos. É usado em muitos scripts de - construção dos pacotes. -

    -
  • -
  • -

    - Flex -

    -

    - Esse pacote contém um utilitário para gerar aplicativos que - reconhecem padrões em textos. É a versão GNU do aplicativo - lex (lexical analyzer). É necessário para construir vários - pacotes do LFS. -

    -
  • -
  • -

    - Gawk -

    -

    - Esse pacote contém aplicativos para manipular arquivos de - texto. É a versão GNU do awk (Aho-Weinberg-Kernighan). É - usado em muitos outros scripts de construção dos pacotes. -

    -
  • -
  • -

    - GCC -

    -

    - Esse pacote é o Gnu Compiler Collection. Ele contém os - compiladores C e C++ assim como vários outros não - construídos por LFS. -

    -
  • -
  • -

    - GDBM -

    -

    - Esse pacote contém a biblioteca GNU Database Manager. É - usado por um outro pacote do LFS, Man-DB. -

    -
  • -
  • -

    - Gettext -

    -

    - Esse pacote contém utilitários e bibliotecas para - internacionalização e localização de numerosos pacotes. -

    -
  • -
  • -

    - Glibc -

    -

    - Esse pacote contém a biblioteca C principal. Aplicativos - Linux não funcionarão sem ela. -

    -
  • -
  • -

    - GMP -

    -

    - Esse pacote contém bibliotecas matemáticas que fornecem - funções úteis para aritmética de precisão arbitrária. É - necessário para compilar GCC. -

    -
  • -
  • -

    - Gperf -

    -

    - Esse pacote contém um aplicativo que gera uma função - perfeita de hash a partir de uma chave configurada. Ele é - exigido por Eudev. -

    -
  • -
  • -

    - Grep -

    -

    - Esse pacote contém aplicativos para procurar dentro de - arquivos. Esses aplicativos são usados pela maioria dos - scripts de construção dos pacotes. -

    -
  • -
  • -

    - Groff -

    -

    - Esse pacote contém aplicativos para processamento e - formatação de texto. Uma função importante desses - aplicativos é a de formatar páginas de manual. -

    -
  • -
  • -

    - GRUB -

    -

    - Esse pacote é o Grand Unified Boot Loader. Ele é um dos - vários gerenciadores de inicialização disponíveis, mas é o - mais flexível. -

    -
  • -
  • -

    - Gzip -

    -

    - Esse pacote contém aplicativos para compressão e - descompressão de arquivos. Ele é necessário para - descomprimir muitos pacotes em LFS. -

    -
  • -
  • -

    - Iana-etc -

    -

    - Esse pacote fornece dados para serviços e protocolos de - rede. Ele é necessário para habilitar suporte a rede - adequado. -

    -
  • -
  • -

    - Inetutils -

    -

    - Esse pacote contém aplicativos para administração básica de - rede. -

    -
  • -
  • -

    - Intltool -

    -

    - Esse pacote contém ferramentas para a extração de - sequências de caracteres traduzíveis a partir de arquivos - fonte. -

    -
  • -
  • -

    - IProute2 -

    -

    - Esse pacote contém aplicativos para redes IPv4 e IPv6 - básicas e avançadas. Ele foi escolhido em vez de outros - pacotes comuns de ferramentas de rede (net-tools) pelo seu - suporte a IPv6. -

    -
  • -
  • -

    - Kbd -

    -

    - Esse pacote contém arquivos de tabelas chave, utilitários - de teclados que não são estadunidenses, e um número de - fontes de console. -

    -
  • -
  • -

    - Kmod -

    -

    - Esse pacote contém aplicativos necessários para administrar - os módulos de kernel do Linux. -

    -
  • -
  • -

    - Less -

    -

    - Esse pacote contém um visualizador de textos muito bom que - permite rolar para cima ou para baixo quando se visualiza - um arquivo. Ele também é usado pelo Man-DB para visualizar - páginas de manual. -

    -
  • -
  • -

    - Libcap -

    -

    - Esse pacote implementa as interfaces do espaço de usuário - para as capacidades POSIX 1003.1e disponíveis em kernels - Linux. -

    -
  • -
  • -

    - Libelf -

    -

    - O projeto elfutils fornece bibliotecas e ferramentas para - dados de arquivos ELF e DWARF. A maior parte dos - utilitários nesse pacote está disponível em outros pacotes, - porém a biblioteca é necessária para construir o kernel - Linux usando a configuração padrão (e mais eficiente). -

    -
  • -
  • -

    - Libffi -

    -

    - Esse pacote implementa uma interface de programação - portável, de alto nível, para várias convenções de chamada. - Alguns aplicativos talvez não saibam, ao tempo da - compilação, quais argumentos são para serem passados para - uma função. Por exemplo, um interpretador talvez possa ser - informado, ao tempo de execução, acerca do número e dos - tipos de argumentos usados para chamar uma dada função. - Libffi pode ser usada em tais aplicativos para fornecer uma - ponte a partir do aplicativo interpretador para o código - compilado. -

    -
  • -
  • -

    - Libpipeline -

    -

    - O pacote Libpipeline contém uma biblioteca para manipular - pipelines de subprocessos de uma maneira flexível e - conveniente. Ele é exigido pelo pacote Man-DB. -

    -
  • -
  • -

    - Libtool -

    -

    - Esse pacote contém o script GNU de suporte a bibliotecas - genéricas. Ele esconde a complexidade do uso de bibliotecas - compartilhadas em uma interface consistente e portável. Ele - é necessário para as ferramentas de testes em outros - pacotes do LFS. -

    -
  • -
  • -

    - Linux Kernel -

    -

    - Esse pacote é o Sistema Operacional. Ele é o Linux no - ambiente GNU/Linux. -

    -
  • -
  • -

    - M4 -

    -

    - Esse pacote contém um processador geral de macro de texto, - útil como uma ferramenta de construção para outros - aplicativos. -

    -
  • -
  • -

    - Make -

    -

    - Esse pacote contém um aplicativo para direcionar a - construção de pacotes. Ele é exigido por quase todos os - pacotes em LFS. -

    -
  • -
  • -

    - Man-DB -

    -

    - Esse pacote contém aplicativos para encontrar e visualizar - páginas de manual. Ele foi escolhido em vez do pacote - man devido a capacidades - superiores de internacionalização. Ele faz as vezes do - aplicativo man. -

    -
  • -
  • -

    - Man-pages -

    -

    - Esse pacote contém o conteúdo atual das páginas de manual - básicas do Linux. -

    -
  • -
  • -

    - Meson -

    -

    - Esse pacote fornece uma ferramenta de software para - automatizar a construção de software. A finalidade - principal para Meson é a de minimizar a quantidade de tempo - que desenvolvedores de software precisam investir - configurando o sistema de construção deles. Ele é exigido - para construir Systemd, bem como muitos pacotes BLFS. -

    -
  • -
  • -

    - MPC -

    -

    - Esse pacote contém funções para a aritmética de números - complexos. Ele é exigido por GCC. -

    -
  • -
  • -

    - MPFR -

    -

    - Esse pacote contém funções para aritmética de precisão - múltipla. Ele é exigido por GCC. -

    -
  • -
  • -

    - Ninja -

    -

    - Esse pacote contém um sistema pequeno de construção com um - foco em velocidade. Ele é desenhado para ter os arquivos de - entrada dele gerados por um sistema de construção de alto - nível, e para executar construções o mais rápido possível. - Esse pacote é exigido por Meson. -

    -
  • -
  • -

    - Ncurses -

    -

    - Esse pacote contém bibliotecas para manipulação - independente de terminal de telas de carácter. Ele é - frequentemente usado para fornecer controle de cursor para - um sistema com menus. Ele é necessitado por um número de - pacotes em LFS. -

    -
  • -
  • -

    - Openssl -

    -

    - Esse pacote fornece ferramentas e bibliotecas de - gerenciamento relacionadas a criptografia. Essas são úteis - para fornecer funções criptográficas para outros pacotes, - incluindo o kernel Linux. -

    -
  • -
  • -

    - Patch -

    -

    - Esse pacote contém um aplicativo para modificar ou criar - arquivos aplicando um arquivo patch tipicamente criado pelo - aplicativo diff. Ele é - necessitado pelo procedimento de construção para vários - pacotes LFS. -

    -
  • -
  • -

    - Perl -

    -

    - Esse pacote é um interpretador para a linguagem de tempo de - execução PERL. Ele é necessário para a instalação e - ferramentas de teste de vários pacotes do LFS. -

    -
  • -
  • -

    - Pkg-config -

    -

    - Esse pacote fornece um aplicativo que retorna metadados - acerca de uma biblioteca ou pacote instalado. -

    -
  • -
  • -

    - Procps-NG -

    -

    - Esse pacote contém aplicativos para monitorar processos. - Esses aplicativos são úteis para administração de sistema, - e são também usados pelos scripts de inicialização do LFS. -

    -
  • -
  • -

    - Psmisc -

    -

    - Esse pacote contém aplicativos para mostrar informações - acerca de processos em execução. Esses aplicativos são - úteis para administração de sistema. -

    -
  • -
  • -

    - Python 3 -

    -

    - Esse pacote fornece uma linguagem interpretada que tem uma - filosofia de desenho que enfatiza a legibilidade de código. -

    -
  • -
  • -

    - Readline -

    -

    - Esse pacote é um conjunto de bibliotecas que oferecem - capacidades de edição e de histórico de linha de comando. - Ele é usado por Bash. -

    -
  • -
  • -

    - Sed -

    -

    - Esse pacote permite a edição de texto sem abri-lo em um - editor de texto. Ele também é necessitado pela maioria dos - scripts de configuração dos pacotes do LFS. -

    -
  • -
  • -

    - Shadow -

    -

    - Esse pacote contém aplicativos para manipulação de senhas - de uma maneira segura. -

    -
  • -
  • -

    - Sysklogd -

    -

    - Esse pacote contém aplicativos para registro de mensagens - do sistema, tais como aqueles enviadas pelo kernel ou por - processos deamons quando eventos não-usuais acontecem. -

    -
  • -
  • -

    - Sysvinit -

    -

    - Esse pacote fornece o aplicativo init, o qual é o pai de todos os - outros processos no sistema Linux. -

    -
  • -
  • -

    - Tar -

    -

    - Esse pacote fornece capacidades de empacotamento e de - extração de virtualmente todos os pacotes usados em LFS. -

    -
  • -
  • -

    - Tcl -

    -

    - Esse pacote contém a Tool Command Language usada em muitas - ferramentas de teste em pacotes do LFS. -

    -
  • -
  • -

    - Texinfo -

    -

    - Esse pacote contém aplicativos para leitura, escrita e - conversão de páginas info. Ele é usado nos procedimentos de - instalação de muitos pacotes LFS. -

    -
  • -
  • -

    - Util-linux -

    -

    - Esse pacote contém uma variedade de aplicativos - utilitários. Entre eles estão utilitários para manipulação - de sistemas de arquivos, consoles, partições e mensagens. -

    -
  • -
  • -

    - Vim -

    -

    - Esse pacote contém um editor. Ele foi escolhido por causa - da compatibilidade com o clássico editor vi e o seu número - gigante de capacidades poderosas. Um editor é uma escolha - muito pessoal para muitas(os) usuárias(os) e qualquer outro - editor poderia ser substituído se assim desejar. -

    -
  • -
  • -

    - XML::Parser -

    -

    - Esse pacote é um módulo Perl que interage com Expat. -

    -
  • -
  • -

    - XZ Utils -

    -

    - Esse pacote contém aplicativos para compressão e - descompressão de arquivos. Ele fornece a maior compressão - geralmente disponível e é útil para descomprimir pacotes - nos formatos XZ ou LZMA. -

    -
  • -
  • -

    - Zlib -

    -

    - Esse pacote contém rotinas de compressão e descompressão - usadas por alguns aplicativos. -

    -
  • -
  • -

    - Zstd -

    -

    - Esse pacote contém rotinas de compressão e descompressão - usadas por alguns aplicativos. Ele fornece taxas altas de - compressão e um intervalo muito amplo de intercâmbios entre - compressão / velocidade. -

    -
  • -
-
-
-
-
-
-
-

- Tipografia -

-
-
-
-

- Para fazer as coisas mais fáceis de serem seguidas, existem - algumas convenções tipográficas usadas neste livro. Esta sessão - contém alguns exemplos da formatação tipográfica encontrada ao - longo de Linux From Scratch. -

-
./configure --prefix=/usr
-

- Essa forma de texto é desenhada para ser digitada do jeito que - está, a menos que seja dito o contrário no texto que a envolve. É - também usada na sessão de explicação para identificar quais dos - comandos estão sendo referenciados. -

-

- Em alguns casos, uma linha lógica é estendida em duas ou mais - linhas físicas com uma barra invertida no final da linha. -

-
CC="gcc -B/usr/bin/" ../binutils-2.18/configure \
-  --prefix=/tools --disable-nls --disable-werror
-

- Note que a barra invertida deve ser seguida imediatamente por uma - quebra de linha. Outros espaços em branco como tabulação criarão - resultados incorretos. -

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

- Essa forma de texto (largura fixa) mostra a saída em tela, - geralmente como resultado de um comando executado. Esse formato é - também utilizado para mostrar nomes de arquivos, como - /etc/ld.so.conf. -

-

- Emphasis -

-

- Essa forma de texto é usada para vários propósitos neste livro. - Seu propósito principal é o de enfatizar pontos ou itens - importantes. -

-

- https://www.linuxfromscratch.org/ -

-

- Esse formato é usado para hiperlinks tanto dentro da comunidade - LFS e para páginas externas. Isso inclui HOWTOs, locais de - downloads e páginas da Internet. -

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

- Esse formato é usado quando da criação de arquivos de - configuração. O primeiro comando diz para o sistema criar o - arquivo $LFS/etc/group a partir do - que seja digitado nas linhas seguintes até encontrar a sequência - “End Of File” (EOF). Portanto, toda essa sequência é - geralmente digitada da maneira como é vista. -

-

- <REPLACED TEXT> -

-

- Esse formato é usado para encapsular texto que não deve ser - digitado como visto ou para operações de - “copiar-colar”. -

-

- [OPTIONAL TEXT] -

-

- Esse formato é usado para encapsular texto que é opcional. -

-

- passwd(5) -

-

- Esse formato é usado para referir-se a uma página de manual - específica (man). O número entre parênteses indica uma seção - específica dentro dos manuais. Por exemplo, passwd tem duas páginas de - manual. Conforme as instruções de instalação do LFS, essas duas - páginas de manual estarão localizadas em /usr/share/man/man1/passwd.1 e /usr/share/man/man5/passwd.5. Quando o livro - usa passwd(5) ele está se referindo - especificamente a /usr/share/man/man5/passwd.5. man passwd exibirá a primeira - página de manual que corresponde a passwd, a - qual será /usr/share/man/man1/passwd.1. Para esse - exemplo, você precisará executar man 5 passwd para ler a página - sendo especificada. Perceba que a maioria das páginas de manual - não tem nomes duplicados de páginas em diferentes seções. - Portanto, man <nome do - aplicativo> geralmente é - suficiente. -

-
-
-
-
-
-

- Estrutura -

-
-
-
-

- Este livro é dividido nas seguintes partes. -

-
-

- Parte I – Introdução -

-

- A Parte I explica algumas notas importantes sobre como proceder - com a instalação do LFS. Essa seção também fornece - metainformação sobre o livro. -

-
-
-

- Parte II – Preparando para a Construção -

-

- A Parte II descreve como se preparar para o processo de - construção —criando uma partição, baixando os pacotes, e - compilando as ferramentas temporárias. -

-
-
-

- Parte III – Construindo o Conjunto Cruzado de Ferramentas - do LFS e Ferramentas Temporárias -

-

- A Parte III fornece instruções para a construção das - ferramentas necessárias para a construção do sistema LFS final. -

-
-
-

- Parte IV - Construindo o Sistema LFS -

-

- A Parte IV guia o leitor ao longo da construção do sistema LFS - —compilando e instalando todos os pacotes, um por um, - configurando os scripts de inicialização e instalando o kernel. - O sistema Linux resultante é a base sobre a qual outros - aplicativos podem ser construídos para expandir o sistema - conforme desejado. No final deste livro, há uma lista de - referência de fácil uso listando todos os aplicativos, - bibliotecas e arquivos importantes que foram instalados. -

-
-
-

- Parte V - Apêndices -

-

- A Parte V fornece informação acerca do próprio livro incluindo - acrônimos e termos, reconhecimentos, dependências de pacotes, - uma listagem dos scripts de inicialização do LFS, licenças para - a distribuição do livro, e um índice compreensível de pacotes, - aplicativos, bibliotecas, e scripts. -

-
-
-
-
-
-
-

- Errata e Avisos de Segurança -

-
-
-
-

- Os aplicativos utilizados para criar um sistema LFS estão sendo - constantemente atualizados e melhorados. Alertas de segurança e - correções de defeitos talvez se tornem disponíveis após o livro - LFS ter sido lançado. Para checar se versões de pacotes ou - instruções neste lançamento de LFS necessitam de quaisquer - modificações para acomodar vulnerabilidades de segurança ou - outras correções de defeitos, por favor visite https://www.linuxfromscratch.org/lfs/errata/11.1/ - antes de continuar com a sua construção. Você deveria tomar nota - de quaisquer mudanças mostradas e aplicá-las às seções relevantes - do livro conforme você progride com a construção do sistema LFS. -

-

- Adicionalmente, os editores de Linux From Scratch mantém uma - lista de vulnerabilidades de segurança descobertas depois que um - livro foi lançado. Para checar se existem quaisquer - vulnerabilidades ativas de segurança, por favor visite https://www.linuxfromscratch.org/lfs/advisories/ - antes de proceder com sua construção. Você deveria tomar nota de - quaisquer conselhos e executar os passos para corrigir quaisquer - vulnerabilidades de segurança conforme você progride com a - construção do sistema LFS. -

-
-
-
-
-
-
-

- Parte I. Introdução -

-
-
-
-
-
-
-
-

- Capítulo 1. Introdução -

-
-
-
-
-
-
-
-

- 1.1. Como Construir um Sistema - LFS -

-
-
-
-

- O sistema LFS será construído usando uma distribuição Linux já - instalada (tal como Debian, OpenMandriva, Fedora, ou openSUSE). - Esse sistema Linux existente (o anfitrião) será usado como - ponto de partida para fornecer os aplicativos necessários, - incluindo um compilador, um vinculador, e um interpretador de - comandos, para construir o novo sistema. Selecione a opção - desenvolvimento durante a - instalação da distribuição para estar apto a acessar essas - ferramentas. -

-

- Como uma alternativa a instalar uma distribuição separada em - sua máquina, você talvez deseje usar um LiveCD de uma - distribuição comercial. -

-

- Capítulo 2 - deste livro descreve como criar uma nova partição Linux nativa - e sistema de arquivos. Esse é o local onde o novo sistema LFS - será compilado e instalado. Capítulo 3 explica - quais pacotes e patches precisam ser baixados para construir um - sistema LFS e como eles devem ser armazenados no novo sistema - de arquivos. Capítulo 4 discute a - configuração de um ambiente de trabalho apropriado. Por favor, - leia o Capítulo 4 - cuidadosamente, uma vez que ele explica vários assuntos - importantes sobre os quais você deve estar ciente antes de - começar seu trabalho ao longo do Capítulo 5 - e além. -

-

- Capítulo 5, - explica a instalação do conjunto inicial de ferramentas, - (binutils, gcc, e glibc) usando técnicas de compilação cruzada - para isolar as novas ferramentas das do sistema anfitrião. -

-

- Capítulo 6 - te mostra como compilar cruzadamente utilitários básicos usando - o recém construído conjunto cruzado de ferramentas. -

-

- - Capítulo 7 então entra em um ambiente "chroot" e usa - as ferramentas previamente construídas para construir as - ferramentas adicionais necessárias para construir e para testar - o sistema final. -

-

- Esse esforço para isolar o sistema novo do sistema anfitrião - talvez pareça excessivo. Uma explicação técnica completa sobre - o porquê isso é feito é fornecida em Notas Técnicas do - Conjunto de Ferramentas. -

-

- Em Capítulo 8, - o sistema LFS completo é construído. Outra vantagem fornecida - pelo ambiente chroot é que ele te permite continuar usando o - sistema anfitrião enquanto que LFS está sendo construído. - Enquanto espera por compilações de pacotes completarem, você - pode continuar usando seu computador normalmente. -

-

- Para finalizar a instalação, a configuração básica do sistema é - concluída em Capítulo 9, e o - kernel e carregador de inicialização são configurados em - Capítulo 10. - Capítulo 11 contém informação - sobre como continuar a experiência LFS além deste livro. Após - os passos neste livro terem sido implementados, o computador - estará pronto para reiniciar no novo sistema LFS. -

-

- Esse é o processo em poucas palavras. Informação detalhada - sobre cada passo é discutida nos capítulos seguintes e nas - descrições dos pacotes. Itens que talvez pareçam complicados - serão esclarecidos, e tudo ficará em seu devido lugar conforme - você embarcar na aventura do LFS. -

-
-
-
-
-
-

- 1.2. O que há de novo desde - o último lançamento -

-
-
-
-

- Nesta versão de LFS, houve uma grande reorganização do livro - usando técnicas que evitam a modificação do sistema anfitrião e - fornecem um seguimento mais estrito do processo de construção. -

-

- Abaixo está uma lista das atualizações de pacotes feitas desde - o lançamento anterior do livro. -

-
-

- Atualizado para: -

-
    -
  • -

    - Automake-1.16.5 -

    -
  • -
  • -

    - Bash-5.1.16 -

    -
  • -
  • -

    - Bc-5.2.2 -

    -
  • -
  • -

    - Binutils-2.38 -

    -
  • -
  • -

    - Bison-3.8.2 -

    -
  • -
  • -

    - Coreutils-9.0 -

    -
  • -
  • -

    - E2fsprogs-1.46.5 -

    -
  • -
  • -

    - Eudev-3.2.11 -

    -
  • -
  • -

    - Expat-2.4.6 -

    -
  • -
  • -

    - File-5.41 -

    -
  • -
  • -

    - Findutils-4.9.0 -

    -
  • -
  • -

    - Gawk-5.1.1 -

    -
  • -
  • -

    - GDBM-1.23 -

    -
  • -
  • -

    - Glibc-2.35 -

    -
  • -
  • -

    - Gzip-1.11 -

    -
  • -
  • -

    - IANA-Etc-20220207 -

    -
  • -
  • -

    - Inetutils-2.2 -

    -
  • -
  • -

    - IPRoute2-5.16.0 -

    -
  • -
  • -

    - Libcap-2.63 -

    -
  • -
  • -

    - Libelf-0.186 (de: elfutils) -

    -
  • -
  • -

    - Libpipeline-1.5.5 -

    -
  • -
  • -

    - Linux-5.16.9 -

    -
  • -
  • -

    - Man-DB-2.10.1 -

    -
  • -
  • -

    - Meson-0.61.1 -

    -
  • -
  • -

    - Ncurses-6.3 -

    -
  • -
  • -

    - Openssl-3.0.1 -

    -
  • -
  • -

    - Python-3.10.2 -

    -
  • -
  • -

    - Readline-8.1.2 -

    -
  • -
  • -

    - Shadow-4.11.1 -

    -
  • -
  • -

    - SysVinit-3.01 -

    -
  • -
  • -

    - Tcl-8.6.12 -

    -
  • -
  • -

    - Tzdata-2021e -

    -
  • -
  • -

    - Util-Linux-2.37.4 -

    -
  • -
  • -

    - Vim-8.2.4383 -

    -
  • -
  • -

    - Zstd-1.5.2 -

    -
  • -
-
-
-

- Adicionado: -

-
    -
  • -

    - binutils-2.38-lto_fix-1.patch -

    -
  • -
  • -

    - coreutils-9.0-chmod_fix-1.patch -

    -
  • -
  • -

    - file-5.40-upstream_fixes-1.patch -

    -
  • -
  • -

    - shadow-4.10-useradd_segfault-1.patch -

    -
  • -
  • -

    - sysvinit-3.01-consolidated-1.patch -

    -
  • -
-
-
-
-
-
-
-

- 1.3. Registro de Mudanças -

-
-
-
-

- Esta é a versão 11.1 do livro Linux From Scratch, datada de 1º - de março de 2022. Se este livro estiver com mais de seis meses, - então uma versão nova e melhor provavelmente já está - disponível. Para descobrir, por favor verifique um dos sites - via https://www.linuxfromscratch.org/mirrors.html. -

-

- Abaixo está uma lista das mudanças feitas desde o lançamento - anterior do livro. -

-
-

- Entradas de Registro de Mudanças: -

-
    -
  • -

    - 2022-03-01 -

    -
    -
      -
    • -

      - [bdubbs] - LFS-11.1 lançado. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-02-23 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para expat-2.4.6 (correção - de segurança). Corrige - #5011. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-02-15 -

    -
    -
      -
    • -

      - [bdubbs] - LFS-11.1-rc1 lançado. -

      -
    • -
    • -

      - [bdubbs] - Adicionar binutils-2.38 LTO patch. - Corrige - #5011. -

      -
    • -
    • -

      - [bdubbs] - Atualização para util-linux-2.37.4. - Corrige - #5010. -

      -
    • -
    • -

      - [bdubbs] - Atualização para man-db-2.10.1. Corrige - - #5009. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.16.9. Corrige - - #5008. -

      -
    • -
    • -

      - [bdubbs] - Atualização para vim-8.2.4383 - (Atualização de Segurança). Endereça - #4500. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iana-etc-20220207. - Endereça - #5006. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-02-10 -

    -
    -
      -
    • -

      - [xry111] - Contorna um problema que causa os - binários se vincularem a bibliotecas da - distribuição anfitriã para a passagem dois de - binutils. Agora é desnecessário construir zlib em - capítulo 6. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-02-09 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para bc-5.2.2. Corrige - - #5004. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.16.8. Corrige - - #5005. -

      -
    • -
    • -

      - [bdubbs] - Atualização para binutils-2.38. Exige a - adição de zlib para Capítulo 6. Corrige - #5007. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-02-04 -

    -
    -
      -
    • -

      - [xry111] - Remove diretivas bash +h em chroot. Corrige - #4998. -

      -
    • -
    • -

      - [xry111] - Atualização para man-db-2.10.0. Corrige - - #5002. -

      -
    • -
    • -

      - [xry111] - Move OpenSSL para antes de Kmod e - habilita OpenSSL para construção de Kmod. -

      -
    • -
    • -

      - [xry111] - Atualização para gdbm-1.23. Corrige - - #5000. -

      -
    • -
    • -

      - [xry111] - Atualização para tcl-8.6.12. Corrige - - #5001. -

      -
    • -
    • -

      - [thomas] - Remove sed das instruções glibc em - capítulo 8. Foi submetida ao desenvolvedor. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-02-03 -

    -
    -
      -
    • -

      - [bdubbs] - Adicionado patch chmod do coreutils-9.0. - Corrige - #4992. -

      -
    • -
    • -

      - [bdubbs] - Atualização para glibc-2.35. Corrige - - #4999. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.16.5. Corrige - - #4996. -

      -
    • -
    • -

      - [bdubbs] - Atualização para findutils-4.9.0. - Corrige - #4995. -

      -
    • -
    • -

      - [bdubbs] - Atualização para expat-2.4.4. Corrige - - #4993. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iana-etc-20220128. - Corrige - #4994. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-01-29 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para linux-5.16.4. Corrige - - #4991. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-01-27 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para vim-8.2.4236. Endereça - - #4500. -

      -
    • -
    • -

      - [bdubbs] - Atualização para zstd-1.5.2. Corrige - - #4988. -

      -
    • -
    • -

      - [bdubbs] - Atualização para util-linux-2.37.3 - (correção de segurança). Corrige - #4989. -

      -
    • -
    • -

      - [bdubbs] - Atualização para Python-3.10.2. Corrige - - #4987. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.16.2. Corrige - - #4979. -

      -
    • -
    • -

      - [bdubbs] - Atualização para libcap-2.63. Corrige - - #4990. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iproute2-5.16.0. - Corrige - #4982. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iana-etc-20220120. - Corrige - #4975. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-01-20 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para expat-2.4.3 (correções - de segurança). Corrige - #4984. -

      -
    • -
    • -

      - [pierre] - Atualização para meson-0.61.1. Corrige - - #4985. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-01-17 -

    -
    -
      -
    • -

      - [thomas] - Adicionada uma correção de um erro de - digitação para o patch de meson-0.61.0. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-01-15 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para shadow-4.11.1. Corrige - - #4976. -

      -
    • -
    • -

      - [bdubbs] - Atualização para readline-8.1.2. Corrige - - #4980. -

      -
    • -
    • -

      - [bdubbs] - Atualização para meson-0.61.0. Corrige - - #4983. -

      -
    • -
    • -

      - [bdubbs] - Atualização para libpipeline-1.5.5. - Corrige - #4977. -

      -
    • -
    • -

      - [bdubbs] - Atualização para bash-5.1.16. Corrige - - #4978. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-01-01 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para e2fsprogs-1.46.5. - Corrige - #4974. -

      -
    • -
    • -

      - [bdubbs] - Atualização para zstd-1.5.1. Corrige - - #4972. -

      -
    • -
    • -

      - [bdubbs] - Atualização para expat-2.4.2. Corrige - - #4970. -

      -
    • -
    • -

      - [bdubbs] - Atualização para shadow-4.10. Corrige - - #4969. -

      -
    • -
    • -

      - [bdubbs] - Atualização para sysvinit-3.01. Corrige - - #4968. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.15.12. Corrige - - #4967. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iana-etc-20211224. - Corrige - #4962. -

      -
    • -
    • -

      - [bdubbs] - Atualização para openssl-3.0.1. Corrige - - #4922. -

      -
    • -
    • -

      - [bdubbs] - Atualização para eudev-3.2.11. Corrige - - #4914. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-12-30 -

    -
    -
      -
    • -

      - [renodr] - Atualização para meson-0.60.3. Corrige - - #4973. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-12-15 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para python3-3.10.1. Corrige - - #4963. -

      -
    • -
    • -

      - [bdubbs] - Atualização para openssl-1.1.1m. Corrige - - #4966. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.15.7. Corrige - - #4964. -

      -
    • -
    • -

      - [bdubbs] - Atualização para libcap-2.62. Corrige - - #4965. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-12-14 -

    -
    -
      -
    • -

      - [thomas] - Permite a construção de findutils em - sistemas de 32 bits. Commits aplicados a partir da - branch multilib por [pierre]. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-12-01 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para vim-8.2.3704. Endereça - - #4500. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iana-etc-20211124. - Corrige - #4957. -

      -
    • -
    • -

      - [bdubbs] - Atualização para bc-5.2.1. Corrige - - #4959. -

      -
    • -
    • -

      - [bdubbs] - Atualização para meson-0.60.2. Corrige - - #4960. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.15.5. Corrige - - #4956. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-11-15 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para iana-etc-20211112. - Corrige - #4955. -

      -
    • -
    • -

      - [bdubbs] - Atualização para elfutils-0.186. Corrige - - #4954. -

      -
    • -
    • -

      - [bdubbs] - Atualização para bc-5.2.0. Corrige - - #4952. -

      -
    • -
    • -

      - [bdubbs] - Atualização para ncurses-6.3. Corrige - - #4951. -

      -
    • -
    • -

      - [bdubbs] - Atualização para libpipeline-1.5.4. - Corrige - #4950. -

      -
    • -
    • -

      - [bdubbs] - Atualização para meson-0.60.1. Corrige - - #4949. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iproute2-5.15.0. - Corrige - #4948. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.15.2. Corrige - - #4947. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-11-01 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para gawk-5.1.1. Corrige - - #4946. -

      -
    • -
    • -

      - [bdubbs] - Atualização para meson-0.60.0. Corrige - - #4945. -

      -
    • -
    • -

      - [bdubbs] - Atualização para libcap-2.60. Corrige - - #4944. -

      -
    • -
    • -

      - [bdubbs] - Atualização para gdbm-1.22. Corrige - - #4943. -

      -
    • -
    • -

      - [bdubbs] - Atualização para file-5.41. Corrige - - #4942. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.14.15. Corrige - - #4941. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iana-etc-20211025. - Corrige - #4940. -

      -
    • -
    • -

      - [bdubbs] - Atualização para tzdata-2021e. Corrige - - #4939. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-10-15 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para vim-8.2.3508. Endereça - - #4500. -

      -
    • -
    • -

      - [bdubbs] - Atualização para tzdata-2021c. Corrige - - #4934. -

      -
    • -
    • -

      - [bdubbs] - Atualização para Python-3.10.0. Corrige - - #4938. -

      -
    • -
    • -

      - [bdubbs] - Atualização para Jinja2-3.0.2. Corrige - - #4937. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.14.12. Corrige - - #4932. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iana-etc-20211004. - Corrige - #4933. -

      -
    • -
    • -

      - [bdubbs] - Atualização para bc-5.1.1. Corrige - - #4936. -

      -
    • -
    • -

      - [bdubbs] - Atualização para automake-1.16.5. - Corrige - #4935. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-10-01 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para vim-8.2.3458. Endereça - - #4500. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iana-etc-20210924. - Endereça - #4722. -

      -
    • -
    • -

      - [bdubbs] - Atualização para tzdata-2021b. Corrige - - #4929. -

      -
    • -
    • -

      - [bdubbs] - Atualização para sysvinit-3.0.0. Corrige - - #4927. -

      -
    • -
    • -

      - [bdubbs] - Atualização para meson-0.59.2. Corrige - - #4931. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.14.8. Corrige - - #4925. -

      -
    • -
    • -

      - [bdubbs] - Atualização para libcap-2.59. Corrige - - #4926. -

      -
    • -
    • -

      - [bdubbs] - Atualização para coreutils-9.0. Corrige - - #4928. -

      -
    • -
    • -

      - [bdubbs] - Atualização para bison-3.8.2. Corrige - - #4930. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-09-15 -

    -
    -
      -
    • -

      - [bdubbs] - Garante que as instruções de - documentação de tcl estão presentes. Corrige - - #4923. -

      -
    • -
    • -

      - [bdubbs] - Atualização para Python3-3.9.7. Corrige - - #4916. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.14.3. Corrige - - #4913. -

      -
    • -
    • -

      - [bdubbs] - Atualização para libcap-2.57. Corrige - - #4912. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iproute2-5.14.0. - Corrige - #4917. -

      -
    • -
    • -

      - [bdubbs] - Atualização para inetutils-2.2. Corrige - - #4918. -

      -
    • -
    • -

      - [bdubbs] - Atualização para gzip-1.11. Corrige - - #4920. -

      -
    • -
    • -

      - [bdubbs] - Atualização para gdbm-1.21. Corrige - - #4919. -

      -
    • -
    • -

      - [bdubbs] - Atualização para bison-3.8.1. Corrige - - #4921. -

      -
    • -
    • -

      - [bdubbs] - Atualização para bc-5.0.2. Corrige - - #4905. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-09-08 -

    -
    -
      -
    • -

      - [renodr] - Corrige regressões em File que resultam - em detecção inapropriada de texto e arquivos XZ. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-09-06 -

    -
    -
      -
    • -

      - [bdubbs] - Esclarecimentos de texto na seção cópia - de segurança/restauração de Capítulo 7. Grato a - Kevin Buckley pelo patch. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-09-01 -

    -
    -
      -
    • -

      - [bdubbs] - LFS-11.0 lançado. -

      -
    • -
    -
    -
  • -
-
-
-
-
-
-
-

- 1.4. Recursos -

-
-
-
-
-

- 1.4.1. Perguntas - Frequentes -

-

- Se durante a construção do sistema LFS você encontrar - quaisquer erros, tiver quaisquer perguntas, ou entender que - há um erro de digitação no livro, então, por favor, comece - consultando as Perguntas Feitas Frequentemente (FAQ) que - estão localizadas em https://www.linuxfromscratch.org/faq/. -

-
-
-

- 1.4.2. Listas de Correio Eletrônico -

-

- O servidor linuxfromscratch.org - hospeda um número de listas de discussão usadas para o - desenvolvimento do projeto LFS. Essas listas incluem as - principais listas de desenvolvimento e suporte, dentre - outras. Se o FAQ não resolver o problema que você está tendo, - então o próximo passo seria procurar nas listas de discussão - em https://www.linuxfromscratch.org/search.html. -

-

- Para informação sobre as diversas listas, como se inscrever, - localização de arquivos e informações adicionais, visite - https://www.linuxfromscratch.org/mail.html. -

-
-
-

- 1.4.3. IRC -

-

- Vários membros da comunidade LFS oferecem assistência no - Internet Relay Chat (IRC). Antes de usar esse suporte, por - favor certifique-se de que sua pergunta já não foi respondida - no FAQ do LFS ou nos arquivos das listas de discussão. Você - pode encontrar a rede IRC em irc.libera.chat. O canal de suporte é chamado de - #lfs-support. -

-
-
-

- 1.4.4. - Sítios Espelho -

-

- O projeto LFS tem um número de espelhos mundo afora para - fazer com que o acesso ao site do projeto e o download dos - pacotes exigidos seja mais conveniente. Por favor visite o - site do LFS em https://www.linuxfromscratch.org/mirrors.html - para uma lista dos espelhos atuais. -

-
-
-

- 1.4.5. Informação de Contato -

-

- Por favor, direcione todas as suas questões e comentários - para uma das listas de discussão (veja acima). -

-
-
-
-
-
-
-

- 1.5. Ajuda -

-
-
-
-

- Se um problema ou uma pergunta for encontrado durante o - trabalho com este livro, então, por favor, verifique a página - de Perguntas Frequentes em https://www.linuxfromscratch.org/faq/#generalfaq. - Perguntas frequentemente já estão respondidas lá. Se sua - pergunta não estiver respondida nessa página, então, por favor, - tente encontrar a origem do problema. A dica seguinte te dará - alguma orientação com relação à resolução de problemas: - - https://www.linuxfromscratch.org/hints/downloads/files/errors.txt. -

-

- Se você não puder achar seu problema listado nas Perguntas - Frequentes, então procure nas listas de discussão em https://www.linuxfromscratch.org/search.html. -

-

- Nós também temos uma comunidade LFS maravilhosa que está - disposta a oferecer assistência por meio das listas de - discussão e IRC (veja a seção Seção 1.4, - “Recursos” deste livro). Entretanto, nós temos - várias perguntas de suporte todos os dias e muitas delas podem - ser facilmente respondidas indo para as Perguntas Frequentes e - procurando nas listas de discussão primeiro. Então, para que - nós possamos oferecer a melhor assistência possível, você - precisa fazer alguma pesquisa por conta própria primeiro. Isso - nos permite focar nas necessidades menos usuais de suporte. Se - suas buscas não produzirem uma solução, então, por favor, - inclua todas as informações relevantes (mencionadas abaixo) no - seu pedido de ajuda. -

-
-

- 1.5.1. Coisas a Mencionar -

-

- Além de uma breve explanação do problema sendo vivenciado, as - coisas essenciais a incluir em qualquer pedido de ajuda são: -

-
-
    -
  • -

    - A versão do livro sendo usado (neste caso 11.1) -

    -
  • -
  • -

    - A distribuição anfitriã e versão sendo usada para criar - LFS -

    -
  • -
  • -

    - A saída do script Exigências do Sistema Anfitrião -

    -
  • -
  • -

    - O pacote ou seção onde o problema foi encontrado -

    -
  • -
  • -

    - A mensagem de erro exata ou o sintoma sendo recebido -

    -
  • -
  • -

    - Nota se você se desviou do livro afinal -

    -
  • -
-
-
-

- Nota -

-

- Desviar-se deste livro não significa que nós não vamos - te ajudar. Afinal de contas, LFS é acerca de preferência - pessoal. Ser sincero sobre quaisquer mudanças nos - procedimentos estabelecidos nos ajuda a avaliar e - determinar possíveis causas do seu problema. -

-
-
-
-

- 1.5.2. Problemas de Script de Configuração -

-

- Se algo der errado quando executar o script configure, então revise o - arquivo config.log. Esse - arquivo talvez contenha erros encontrados durante [a execução - de] configure - os quais não foram exibidos na tela. Inclua as linhas - relevantes se você - precisar pedir ajuda. -

-
-
-

- 1.5.3. Problemas de Compilação -

-

- Tanto a saída da tela quando o conteúdo de vários arquivos - são úteis para determinar a causa de problemas de compilação. - A saída da tela do script configure e do make executado podem ser - úteis. Não é necessário incluir toda a saída, mas inclua - informações relevantes suficientes. Abaixo está um exemplo do - tipo de informação a incluir a partir da saída de tela do - make: -

-
gcc -DALIASPATH=\"/mnt/lfs/usr/share/locale:.\"
--DLOCALEDIR=\"/mnt/lfs/usr/share/locale\"
--DLIBDIR=\"/mnt/lfs/usr/lib\"
--DINCLUDEDIR=\"/mnt/lfs/usr/include\" -DHAVE_CONFIG_H -I. -I.
--g -O2 -c getopt1.c
-gcc -g -O2 -static -o make ar.o arscan.o commands.o dir.o
-expand.o file.o function.o getopt.o implicit.o job.o main.o
-misc.o read.o remake.o rule.o signame.o variable.o vpath.o
-default.o remote-stub.o version.o opt1.o
--lutil job.o: In function `load_too_high':
-/lfs/tmp/make-3.79.1/job.c:1565: undefined reference
-to `getloadavg'
-collect2: ld returned 1 exit status
-make[2]: *** [make] Error 1
-make[2]: Leaving directory `/lfs/tmp/make-3.79.1'
-make[1]: *** [all-recursive] Error 1
-make[1]: Leaving directory `/lfs/tmp/make-3.79.1'
-make: *** [all-recursive-am] Error 2
-

- Nesse caso, muitas pessoas incluiriam apenas a seção final: -

-
make [2]: *** [make] Error 1
-

- Essa não é informação suficiente para diagnosticar - adequadamente o problema, pois essa linha apenas mostra que - algo deu errado, não o - quê deu errado. A seção inteira, como no exemplo - acima, é o que deveria ser salva, porque ela inclui o comando - que foi executado e a(s) mensagem(ns) de erro associada(s). -

-

- Um artigo excelente sobre como pedir ajuda na Internet está - disponível em http://catb.org/~esr/faqs/smart-questions.html. - Leia e siga as dicas nesse documento para aumentar a - possibilidade receber a ajuda que você precisa. -

-
-
-
-
-
-
-
-
-

- Parte II. Preparando para a - Construção -

-
-
-
-
-
-
-
-

- Capítulo 2. Preparando o - Sistema Anfitrião -

-
-
-
-
-
-
-
-

- 2.1. Introdução -

-
-
-
-

- Neste capítulo, as ferramentas do anfitrião necessárias para - construção de LFS são verificadas e, se necessário, instaladas. - Então uma partição que hospedará o sistema LFS é preparada. Nós - criaremos a própria partição, criaremos um sistema de arquivos - nela, e a montaremos. -

-
-
-
-
-
-

- 2.2. Exigências do - Sistema Anfitrião -

-
-
-
-

- Seu sistema anfitrião deveria ter o software seguinte com as - versões mínimas indicadas. Isso não deveria ser um problema - para a maioria das distribuições Linux modernas. Também, - perceba que muitas distribuições colocarão cabeçalhos de - aplicativos dentro de pacotes separados, frequentemente na - forma de <nome-pacote>-devel ou - <nome-pacote>-dev. - Certifique-se de instalá-los se sua distribuição os fornecer. -

-

- Versões anteriores dos pacotes de software listados talvez - funcionem, porém não foram testados. -

-
-
    -
  • -

    - Bash-3.2 - (/bin/sh deveria ser um link simbólico ou real para bash) -

    -
  • -
  • -

    - Binutils-2.13.1 (Versões - maiores que 2.38 não são recomendadas dado que elas não - foram testadas) -

    -
  • -
  • -

    - Bison-2.7 - (/usr/bin/yacc deveria ser um link para bison ou script - pequeno que executa bison) -

    -
  • -
  • -

    - Coreutils-6.9 -

    -
  • -
  • -

    - Diffutils-2.8.1 -

    -
  • -
  • -

    - Findutils-4.2.31 -

    -
  • -
  • -

    - Gawk-4.0.1 - (/usr/bin/awk deveria ser um link para gawk) -

    -
  • -
  • -

    - GCC-4.8 - incluindo o compilador C++, g++ (Versões maiores - que 11.2.0 não são recomendadas dado que elas não foram - testadas). As bibliotecas C e C++ padrão (com cabeçalhos) - também devem estar presentes, de forma que o compilador - C++ possa construir aplicativos hospedados -

    -
  • -
  • -

    - Grep-2.5.1a -

    -
  • -
  • -

    - Gzip-1.3.12 -

    -
  • -
  • -

    - Linux - Kernel-3.2 -

    -

    - A razão para a exigência da versão de kernel é que nós - especificamos essa versão quando da construção de - glibc em - Capítulo 5 e Capítulo 8, - por recomendação dos desenvolvedores. Ela também é - exigida por udev. -

    -

    - Se o kernel do anfitrião for anterior a 3.2, então você - precisará substituir o kernel com uma versão mais - atualizada. Existem duas maneiras de você fazer isso. - Primeira, veja se seu fornecedor Linux fornece um pacote - de kernel 3.2 ou mais atual. Se sim, então você talvez - deseje instalá-lo. Se seu fornecedor não oferecer um - pacote de kernel aceitável, ou você preferisse não - instalá-lo, então você mesmo pode compilar um kernel. - Instruções para a compilação de kernel e configuração de - carregador de inicialização (presumindo que o anfitrião - usa GRUB) estão localizadas em Capítulo 10. -

    -
  • -
  • -

    - M4-1.4.10 -

    -
  • -
  • -

    - Make-4.0 -

    -
  • -
  • -

    - Patch-2.5.4 -

    -
  • -
  • -

    - Perl-5.8.8 -

    -
  • -
  • -

    - Python-3.4 -

    -
  • -
  • -

    - Sed-4.1.5 -

    -
  • -
  • -

    - Tar-1.22 -

    -
  • -
  • -

    - Texinfo-4.7 -

    -
  • -
  • -

    - Xz-5.0.0 -

    -
  • -
-
-
-

- Importante -

-

- Perceba que os links simbólicos mencionados acima são - exigidos para construir um sistema LFS usando as instruções - contidas neste livro. Links simbólicos que apontem para outro - software (tais como dash, mawk, etc.) talvez funcionem, porém - não são testados ou suportados pela equipe de desenvolvimento - de LFS, e talvez exijam ou desvio das instruções ou correções - adicionais para alguns pacotes. -

-
-

- -

-

- Para ver se seu sistema anfitrião tem todas as versões - apropriadas, e a habilidade de compilar aplicativos, execute o - seguinte: -

-
cat > version-check.sh << "EOF"
-#!/bin/bash
-# Script simples para listar números de versão de ferramentas críticas de desenvolvimento
-export LC_ALL=C
-bash --version | head -n1 | cut -d" " -f2-4
-MYSH=$(readlink -f /bin/sh)
-echo "/bin/sh -> $MYSH"
-echo $MYSH | grep -q bash || echo "ERRO: /bin/sh não aponta para bash"
-unset MYSH
-
-echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3-
-bison --version | head -n1
-
-if [ -h /usr/bin/yacc ]; then
-  echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`";
-elif [ -x /usr/bin/yacc ]; then
-  echo yacc is `/usr/bin/yacc --version | head -n1`
-else
-  echo "yacc não encontrado"
-fi
-
-echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2
-diff --version | head -n1
-find --version | head -n1
-gawk --version | head -n1
-
-if [ -h /usr/bin/awk ]; then
-  echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`";
-elif [ -x /usr/bin/awk ]; then
-  echo awk é `/usr/bin/awk --version | head -n1`
-else
-  echo "awk não encontrado"
-fi
-
-gcc --version | head -n1
-g++ --version | head -n1
-grep --version | head -n1
-gzip --version | head -n1
-cat /proc/version
-m4 --version | head -n1
-make --version | head -n1
-patch --version | head -n1
-echo Perl `perl -V:version`
-python3 --version
-sed --version | head -n1
-tar --version | head -n1
-makeinfo --version | head -n1  # versão texinfo
-xz --version | head -n1
-
-echo 'int main(){}' > dummy.c && g++ -o dummy dummy.c
-if [ -x dummy ]
-  then echo "g++ compilação OK";
-  else echo "g++ compilação falhou"; fi
-rm -f dummy.c dummy
-EOF
-
-bash version-check.sh
-
-
-
-
-
-

- 2.3. Construindo LFS - em Estágios -

-
-
-
-

- LFS está desenhado para ser construído em uma sessão. Isto é, - as instruções assumem que o sistema não será desligado durante - o processo. Isso não significa que o sistema tenha que estar - pronto de uma só vez. O problema é que certos procedimentos tem - que ser realizados outra vez após uma inicialização se - retomando LFS em pontos diferentes. -

-
-

- 2.3.1. Capítulos 1–4 -

-

- Esses capítulos são realizados no sistema anfitrião. Quando - da reinicialização, seja cuidadosa(o) com o seguinte: -

-
-
    -
  • -

    - Procedimentos feitos como a(o) usuária(o) root após a Seção 2.4 precisam ter - a variável de ambiente LFS configurada PARA A(O) USUÁRIA(O) ROOT. -

    -
  • -
-
-
-
-

- 2.3.2. Capítulos 5–6 -

-
-
    -
  • -

    - A partição /mnt/lfs deve estar montada. -

    -
  • -
  • -

    - Esses dois capítulos devem ser feitos como a(o) - usuária(o) lfs. Um - su - lfs - precisa ser feito antes de qualquer tarefa nesses - capítulos. Ao falhar em fazer isso, você está no risco - de instalar pacotes no sistema anfitrião, e - potencialmente torná-lo inutilizável. -

    -
  • -
  • -

    - Os procedimentos em Instruções Gerais de - Compilação são críticos. Se existir qualquer dúvida - acerca da instalação de um pacote, então certifique-se - de que qualquer arquivo tar descomprimido previamente - foi removido, então extraia novamente os arquivos do - pacote, e complete todas as instruções nessa seção. -

    -
  • -
-
-
-
-

- 2.3.3. Capítulos 7–10 -

-
-
    -
  • -

    - A partição /mnt/lfs deve estar montada. -

    -
  • -
  • -

    - Umas poucas operações, de Mudando - Dono até Entrando no Ambiente - Chroot devem ser feitas como a(o) - usuária(o) root, com a - variável de ambiente LFS configurada para a(o) - usuária(o) root. -

    -
  • -
  • -

    - Quando entrar em chroot, a variável de ambiente LFS - deve estar configurada para root. A variável LFS não mais é - usada posteriormente. -

    -
  • -
  • -

    - Os sistemas virtuais de arquivo devem estar montados. - Isso pode ser feito antes ou depois de entrar em chroot - mudando para um terminal virtual do anfitrião e, como - root, executando os - comandos em Seção 7.3.2, - “Montando e Povoando /dev” e - Seção 7.3.3, “Montando Sistemas de Arquivos - Virtuais de Kernel”. -

    -
  • -
-
-
-
-
-
-
-
-

- 2.4. - Criando uma Nova Partição -

-
-
-
-

- Como a maior parte dos outros sistemas operacionais, LFS - geralmente é instalado em uma partição dedicada. A abordagem - recomendada para construir um sistema LFS é a de usar uma - partição disponível vazia ou, se você tiver espaço suficiente - não particionado, criar uma. -

-

- Um sistema mínimo exige uma partição com cerca de dez (10) - gigabytes (GB). Isso é suficiente para armazenar todos os - arquivos tar dos códigos fontes e compilar os pacotes. - Entretanto, se o sistema LFS for concebido para ser o sistema - Linux principal, então aplicativos adicionais provavelmente - serão instalados os quais exigirão espaço adicional. Uma - partição de trinta (30) GB é um tamanho razoável para permitir - o crescimento. O sistema LFS em si não ocupará esse espaço - todo. Uma boa parte dessa exigência é para fornecer espaço - livre suficiente de armazenamento temporário. Adicionalmente, a - compilação de pacotes pode exigir muito espaço de disco que - será recuperado após o pacote ser instalado. -

-

- Como nem sempre existe Memória de Acesso Aleatório (RAM) - suficiente disponível para processos de compilação, é uma boa - ideia usar uma pequena partição de disco como espaço de - swap. Ele é usado pelo kernel - para armazenar dados raramente usados e deixa mais memória - disponível para processos ativos. A partição de swap para um sistema LFS pode ser a mesma - que aquela usada pelo sistema anfitrião, caso no qual não é - necessário criar outra. -

-

- Inicie um aplicativo de particionamento de disco como - cfdisk ou - fdisk com uma - opção de linha de comando indicando o disco rígido no qual a - nova partição será criada—por exemplo /dev/sda para o controlador primário de - disco. Crie uma partição nativa Linux e uma partição - swap, se necessária. Por favor, - recorra a cfdisk(8) ou - fdisk(8) se você ainda não sabe - como usar os aplicativos. -

-
-

- Nota -

-

- Para usuários experientes, outros esquemas de partição são - possíveis. O novo sistema LFS pode estar em um vetor de - software - RAID ou um volume lógico - LVM. Entretanto, algumas dessas opções exigem um - - initramfs, o que é um tópico avançado. Essas metodologias - de particionamento não são recomendadas para usuárias(os) de - LFS pela primeira vez. -

-
-

- Lembre-se da designação da nova partição (por exemplo, - sda5). Este livro se referirá a - essa como a partição LFS. Lembre-se também da designação da - partição swap. Esses nomes - serão necessários posteriormente para o arquivo /etc/fstab. -

-
-

- 2.4.1. Outros Problemas de Partição -

-

- Pedidos de ajuda com relação a particionamento de disco - frequentemente são enviados à lista de discussão do LFS. Esse - é um assunto altamente subjetivo. O padrão para a maioria das - distribuições é o de usar todo o disco com a exceção de uma - pequena partição swap. Isso não é ideal para LFS por várias - razões. Isso reduz flexibilidade; torna o compartilhamento de - dados entre múltiplas distribuições ou construções LFS mais - difícil; torna as cópias de segurança mais demoradas; e podem - desperdiçar espaço de disco devido à alocação ineficiente de - estruturas de sistema de arquivo. -

-
-
-
-
-

- 2.4.1.1. A Partição Raiz -

-
-
-
-

- Uma partição raiz de LFS (não confundir com o diretório - /root) de vinte (20) - gigabytes é uma boa escolha para a maior parte dos - sistemas. Ela fornece espaço suficiente para construir LFS - e a maior parte de BLFS, mas é pequena o suficiente de - forma que múltiplas partições podem ser criadas facilmente - para experimentação. -

-
-
-
-
-
-

- 2.4.1.2. A Partição Swap -

-
-
-
-

- A maioria das distribuições automaticamente cria uma - partição swap. Geralmente o tamanho recomendado da partição - swap é o de cerca de o dobro da quantidade de RAM física, - entretanto isso raramente é necessário. Se espaço de disco - for limitado, então mantenha a partição swap com dois (2) - gigabytes e monitore a quantidade de troca de disco. -

-

- Se você quer usar a característica de hibernação do Linux - (suspend-to-disk), copia o conteúdo da RAM para a partição - swap antes de desligar a máquina. Nesse caso o tamanho da - partição swap deveria ser pelo menos tão grande quanto a - RAM instalada do sistema. -

-

- O uso de swap nunca é bom. Para discos rígidos mecânicos - você geralmente pode dizer se um sistema está usando swap - simplesmente monitorando a atividade de disco e observando - como o sistema reage a comandos. Para um drive SSD você não - estará apta(o) a monitorar swap, porém você pode dizer - quanto espaço de swap está sendo usado via aplicativos - top ou - free. O uso - de um drive SSD para uma partição swap deveria ser evitado - se possível. A primeira reação em caso de uso de swap - deveria ser verificar se existe um comando irracional como - tentar editar um arquivo de cinco gigabytes. Se o uso de - swap se tornar uma ocorrência recorrente, então a melhor - solução é a de comprar mais RAM para seu sistema. -

-
-
-
-
-
-

- 2.4.1.3. A Partição de Bios Grub -

-
-
-
-

- Se o disco de - inicialização tiver sido particionado com a - Tabela de Partição GUID (GPT), então uma partição pequena, - tipicamente um (1) MB, deve ser criada se ela já não - existir. Essa partição não é formatada, porém deve estar - disponível para GRUB usar durante a instalação do - carregador de inicialização. Essa partição normalmente será - rotulada 'BIOS Boot' se usar fdisk ou terá um código - de EF02 se usar - gdisk. -

-
-

- Nota -

-

- A Partição de Bios Grub deve estar no drive que o BIOS - usa para inicializar o sistema. Esse não é - necessariamente o mesmo drive onde a partição raiz de LFS - está localizada. Discos em um sistema talvez usem tipos - diferentes de tabela de partição. A exigência para essa - partição depende apenas do tipo de tabela de partição do - disco de inicialização. -

-
-
-
-
-
-
-

- 2.4.1.4. Partições de - Conveniência -

-
-
-
-

- Existem várias outras partições que não são exigidas, porém - deveriam ser consideradas ao se projetar um layout de - disco. A lista seguinte não é abrangente, mas é entendida - como um guia. -

-
-
    -
  • -

    - /boot – Altamente recomendada. Use essa - partição para armazenar kernels e outras informações - de inicialização. Para minimizar potenciais problemas - de inicialização com discos maiores, torne essa a - primeira partição física no seu primeiro controlador - de disco. Um tamanho de partição de duzentos (200) - megabytes é bastante adequado. -

    -
  • -
  • -

    - /home – Altamente recomendada. Compartilhe seu - diretório home e personalizações de usuário entre - múltiplas distribuições ou construções LFS. O tamanho - geralmente é bastante grande e depende do espaço de - disco disponível. -

    -
  • -
  • -

    - /usr – Em LFS, /bin, /lib, e /sbin são links simbólicos para - seus homólogos em /usr. - Assim /usr contém todos - os binários necessários para o sistema executar. Para - LFS, uma partição separada para /usr normalmente não é necessária. - Se você precisar dela de qualquer maneira, então você - deveria tornar uma partição grande o suficiente para - acomodar todos os aplicativos e bibliotecas no - sistema. A partição raiz pode ser bem pequena (talvez - apenas um gigabyte) nessa configuração, de forma que - ela seja adequada para um "thin client" ou estação de - trabalho sem disco (onde /usr é montado a partir de um - servidor remoto). Entretanto, você deveria tomar - cuidado que um initramfs (não coberto por LFS) será - necessário para inicializar um sistema com partição - /usr separada. -

    -
  • -
  • -

    - /opt – Esse diretório é mais útil para BLFS - onde múltiplas instalações de pacotes grandes como - Gnome ou KDE podem ser instalados sem embutir os - arquivos na hierarquia /usr. Se usado, 5 a 10 - gigabytes geralmente é adequado. -

    -
  • -
  • -

    - /tmp – Um diretório /tmp separado é raro, mas - útil ao se configurar um "thin client". Essa - partição, se usada, geralmente não precisará exceder - alguns gigabytes. -

    -
  • -
  • -

    - /usr/src – Essa partição é muito útil para - disponibilizar uma localização para armazenar os - arquivos fontes de BLFS e compartilhá-los entre - construções LFS. Ela também pode ser usada como uma - localização para construir pacotes BLFS. Uma partição - razoavelmente grande de 30 a 50 gigabytes permite - muito espaço. -

    -
  • -
-
-

- Qualquer partição separada que você queira que seja montada - automaticamente durante a inicialização precisa ser - especificada no /etc/fstab. - Detalhes sobre como especificar partições serão discutidos - em Seção 10.2, - “Criando o Arquivo /etc/fstab”. -

-
-
-
-
-
-
-
-

- 2.5. - Criando um Sistema de Arquivos na Partição -

-
-
-
-

- Agora que uma partição em branco foi configurada, o sistema de - arquivos pode ser criado. LFS pode usar qualquer sistema de - arquivos reconhecido pelo kernel Linux, mas os tipos mais - comuns são ext3 e ext4. A escolha do sistema de arquivos pode - ser complexa e depende das características dos arquivos e o - tamanho da partição. Por exemplo: -

-
-
-
- ext2 -
-
-

- é adequado para partições pequenas que são atualizadas - com pouca frequência tais como /boot. -

-
-
- ext3 -
-
-

- é uma atualização do ext2 que inclui journal para ajudar - a recuperar o status da partição no caso de desligamento - inadequado. É comumente usada como sistema de arquivos de - propósito geral. -

-
-
- ext4 -
-
-

- é a versão mais nova da família de sistema de arquivos - ext de tipos de partição. Ela fornece várias capacidades - novas incluindo marcas temporais em nano segundos, - criação e uso de arquivos muito grandes (16 TB), e - melhoramentos de velocidade. -

-
-
-
-

- Outros sistemas de arquivos, incluindo FAT32, NTFS, ReiserFS, - JFS, e XFS são úteis para propósitos especializados. Mais - informação sobre esses sistemas de arquivos pode ser encontrada - em http://en.wikipedia.org/wiki/Comparison_of_file_systems. -

-

- LFS assume que o sistema de arquivos raiz (/) é do tipo ext4. - Para criar um sistema de arquivos ext4 na partição LFS, execute o seguinte: -

-
mkfs -v -t ext4 /dev/<xxx>
-

- Substitua <xxx> - com o nome da partição LFS. -

-

- Se você está usando uma partição swap existente, então não há necessidade de - formatá-la. Se uma nova partição swap foi criada, então ela precisará ser - inicializada com este comando: -

-
mkswap /dev/<yyy>
-

- Substitua <yyy> - com o nome da partição swap. -

-
-
-
-
-
-

- 2.6. Configurando a - Variável $LFS -

-
-
-
-

- Ao longo deste livro, a variável de ambiente LFS será usada muitas vezes. Você deveria se - assegurar de que essa variável sempre está definida no decorrer - do processo de construção de LFS. Ela deveria ser configurada - para o nome do diretório onde você estará construindo seu - sistema LFS - nós usaremos /mnt/lfs como um exemplo, porém a escolha do - diretório cabe totalmente a você. Se você está construindo LFS - em uma partição separada, então esse diretório será o ponto de - montagem para a partição. Escolha uma localização de diretório - e configure a variável com o seguinte comando: -

-
export LFS=/mnt/lfs
-

- Ter essa variável configurada é benéfico naqueles comandos tais - como mkdir -v - $LFS/tools os quais podem ser digitados - literalmente. O interpretador de comandos automaticamente - substituirá $LFS com /mnt/lfs (ou para o que a variável - foi configurada) quando ele processar a linha de comando. -

-
-

- Cuidado -

-

- Não se esqueça de verificar se LFS - está configurada quando você deixar e entrar novamente no - ambiente atual de trabalho (como quando fizer um su para root ou outra(o) usuária(o)). Verifique - se a variável LFS está configurada - apropriadamente com: -

-
echo $LFS
-

- Tenha certeza de que a saída mostra o caminho para sua - localização de construção do sistema LFS, a qual é - /mnt/lfs se o exemplo fornecido - foi seguido. Se a saída estiver incorreta, então use o - comando dado anteriormente nesta página para configurar - $LFS para o nome correto de - diretório. -

-
-
-

- Nota -

-

- Uma maneira de assegurar que a variável LFS sempre está configurada é editar o arquivo - .bash_profile tanto em seu - diretório home pessoal quanto em /root/.bash_profile e inserir o comando - export acima. Adicionalmente, o interpretador de comandos - especificado no arquivo /etc/passwd para todas(os) as(os) - usuárias(os) que precisam da variável LFS precisa ser bash para assegurar que o - arquivo /root/.bash_profile é - incorporado como parte do processo de login. -

-

- Outra consideração é o método que é usado para logar no - sistema anfitrião. Se logando por intermédio de um - gerenciador gráfico de tela, então o .bash_profile da(o) usuária(o) normalmente - não é usado quando um terminal virtual é iniciado. Nesse - caso, adicione o comando export ao arquivo .bashrc para a(o) usuária(o) e root. Adicionalmente, algumas - distribuições tem instruções para não executar as instruções - de .bashrc em uma invocação não - interativa de bash. Certifique-se de adicionar o comando - export antes do teste para uso não interativo. -

-
-
-
-
-
-
-

- 2.7. Montando a Nova - Partição -

-
-
-
-

- Agora que um sistema de arquivos foi criado, a partição precisa - se tornar acessível. Para fazer isso, a partição precisa ser - montada em um ponto de montagem escolhido. Para os propósitos - deste livro, assume-se que o sistema de arquivos está montado - sob o diretório especificado pela variável de ambiente - LFS conforme descrito na seção - anterior. -

-

- Crie o ponto de montagem e monte o sistema de arquivos de LFS - executando: -

-
mkdir -pv $LFS
-mount -v -t ext4 /dev/<xxx> $LFS
-

- Substitua <xxx> - com a designação da partição LFS. -

-

- Se estiver usando múltiplas partições para LFS (por exemplo, - uma para / e outra para - /home), então monte-as usando: -

-
mkdir -pv $LFS
-mount -v -t ext4 /dev/<xxx> $LFS
-mkdir -v $LFS/home
-mount -v -t ext4 /dev/<yyy> $LFS/home
-

- Substitua <xxx> - e <yyy> com os - nomes apropriados das partições. -

-

- Assegure-se de que essa nova partição não está montada com - permissões que são muito restritivas (tais como as opções - nosuid ou nodev). Execute o comando mount sem quaisquer - parâmetros para ver quais opções estão configuradas para a - partição LFS montada. Se nosuid e - (ou) nodev estiverem configuradas, - então a partição precisará ser remontada. -

-
-

- Atenção -

-

- As instruções acima assumem que você não estará reiniciando - seu computador no decorrer do processo LFS. Se você desligar - seu sistema, então você precisará remontar a partição LFS a - cada vez que você reiniciar o processo de construção ou - modificar seu arquivo /etc/fstab do sistema anfitrião para - remontá-la automaticamente após inicialização. Por exemplo: -

-
/dev/<xxx>  /mnt/lfs ext4   defaults      1     1
-

- Se você usa partições adicionais opcionais, então - certifique-se de adicioná-las também. -

-
-

- Se você estiver usando uma partição swap, então assegure-se de que ela está - habilitada usando o comando swapon: -

-
/sbin/swapon -v /dev/<zzz>
-

- Substitua <zzz> - com o nome da partição swap. -

-

- Agora que existe um lugar estabelecido para trabalhar, é tempo - de baixar os pacotes. -

-
-
-
-
-
-
-

- Capítulo 3. Pacotes e - Patches -

-
-
-
-
-
-
-
-

- 3.1. Introdução -

-
-
-
-

- Este capítulo inclui uma lista de pacotes que precisam ser - baixados para construir um sistema Linux básico. Os números de - versão listados correspondem a versões dos aplicativos que são - conhecidos por funcionar, e este livro é baseado no uso deles. - Nós recomendamos veementemente contra o uso de versões - diferentes, pois os comandos de construção para uma versão - talvez não funcionem com uma versão diferente, a menos que a - versão diferente seja especificada por uma errata de LFS ou - conselho de segurança. As versões mais novas de pacote talvez - também tenham problemas que exigem contornos. Essas correções - serão desenvolvidas e estabilizadas na versão de - desenvolvimento do livro. -

-

- Para alguns pacotes, o tarball de lançamento e o tarball - instantâneo de repositório (Git ou SVN) para este lançamento - talvez seja publicado com nome semelhante de arquivo. Um - tarball de lançamento contém arquivos generalizados (por - exemplo, o script configure gerado por - autoconf), em - adição aos conteúdos do correspondente instantâneo de - repositório. O livro usa tarballs de lançamento quando - possível. Usar um instantâneo de repositório em vez de um - tarball de lançamento especificado pelo livro causará - problemas. -

-

- Localizações de downloads nem sempre podem estar acessíveis. Se - uma localização de download mudou desde que este livro foi - publicado, então o Google (http://www.google.com/) fornece um - motor de busca útil para a maioria dos pacotes. Se essa busca - for mal sucedida, então tente um dos meios alternativos de - download em https://www.linuxfromscratch.org/lfs/mirrors.html#files. -

-

- Pacotes e patches baixados precisarão ser armazenados em algum - lugar que esteja convenientemente disponível durante a - construção inteira. Um diretório de trabalho também é exigido - para desempacotar os fontes e construí-los. $LFS/sources pode ser usado tanto como o - lugar para armazenar os tarballs e patches quanto como - diretório de trabalho. Usando esse diretório, os elementos - exigidos estarão localizados na partição LFS e estarão - disponíveis durante todos os estágios do processo de - construção. -

-

- Para criar esse diretório, execute o seguinte comando, como - usuária(o) root, antes de - começar a sessão de download: -

-
mkdir -v $LFS/sources
-

- Torne esse diretório gravável e "sticky". Sticky - significa que mesmo se múltiplas(os) usuárias(os) tenham - permissão de escrita, só a(o) dona(o) de um arquivo pode - deletar o arquivo dentro de um diretório sticky. O seguinte - comando habilitará os modos escrita e sticky: -

-
chmod -v a+wt $LFS/sources
-

- Existem muitas maneiras para obter todos os pacotes e patches - necessários para construir LFS: -

-
-
    -
  • -

    - Os arquivos podem ser baixados individualmente conforme - descrito nas próximas duas seções. -

    -
  • -
  • -

    - Para versões estáveis do livro, um tarball de todos os - arquivos necessários pode ser baixado a partir de um dos - espelhos de arquivos de LFS listados em https://www.linuxfromscratch.org/mirrors.html#files. -

    -
  • -
  • -

    - Os arquivos podem ser baixados usando wget e uma lista wget - conforme descrito abaixo. -

    -
  • -
-
-

- Para baixar todos os pacotes e patches usando lista-wget como uma entrada para o - comando wget, - use: -

-
wget --input-file=lista-wget --continue --directory-prefix=$LFS/sources
-
-

- Nota -

-

- O arquivo lista-wget mencionado - acima recupera todos os pacotes para as versões sysV e - systemd de LFS. Existe um total de cinco pacotes pequenos - adicionais não necessários para o livro atual. O arquivo - md5sums mencionado abaixo é - específico para o livro atual. -

-
-

- Adicionalmente, começando com LFS-7.0, existe um arquivo - separado, md5sums, que - pode ser usado para verificar se todos os pacotes corretos - estão disponíveis antes de prosseguir. Coloque esse arquivo em - $LFS/sources e execute: -

-
pushd $LFS/sources
-  md5sum -c md5sums
-popd
-

- Essa verificação pode ser usada após recuperar os arquivos - necessários com qualquer dos métodos listados acima. -

-
-
-
-
-
-

- 3.2. Todos os Pacotes -

-
-
-
-

- Baixe ou de outra forma obtenha os seguintes pacotes: -

-
-
-
-
- Acl (2.3.1) - 348 - KB: -
-
-

- Home page: https://savannah.nongnu.org/projects/acl -

-

- Download: - https://download.savannah.gnu.org/releases/acl/acl-2.3.1.tar.xz -

-

- MD5 sum: 95ce715fe09acca7c12d3306d0f076b2 -

-
-
- Attr (2.5.1) - 456 - KB: -
-
-

- Home page: https://savannah.nongnu.org/projects/attr -

-

- Download: - https://download.savannah.gnu.org/releases/attr/attr-2.5.1.tar.gz -

-

- MD5 sum: ac1c5a7a084f0f83b8cace34211f64d8 -

-
-
- Autoconf (2.71) - 1,263 KB: -
-
-

- Home page: https://www.gnu.org/software/autoconf/ -

-

- Download: - https://ftp.gnu.org/gnu/autoconf/autoconf-2.71.tar.xz -

-

- MD5 sum: 12cfa1687ffa2606337efe1a64416106 -

-
-
- Automake (1.16.5) - 1,565 KB: -
-
-

- Home page: https://www.gnu.org/software/automake/ -

-

- Download: - https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.xz -

-

- MD5 sum: 4017e96f89fca45ca946f1c5db6be714 -

-

- SHA256 sum: 80facc09885a57e6d49d06972c0ae1089c5fa8f4d4c7cfe5baea58e5085f136d -

-
-
- Bash (5.1.16) - 10,277 KB: -
-
-

- Home page: https://www.gnu.org/software/bash/ -

-

- Download: https://ftp.gnu.org/gnu/bash/bash-5.1.16.tar.gz -

-

- MD5 sum: c17b20a09fc38d67fb303aeb6c130b4e -

-
-
- Bc (5.2.2) - 428 - KB: -
-
-

- Home page: https://git.yzena.com/gavin/bc -

-

- Download: - https://github.com/gavinhoward/bc/releases/download/5.2.2/bc-5.2.2.tar.xz -

-

- MD5 sum: 632344cdb052af0e06087bd3b0034126 -

-
-
- Binutils (2.38) - 23,098 KB: -
-
-

- Home page: https://www.gnu.org/software/binutils/ -

-

- Download: - https://ftp.gnu.org/gnu/binutils/binutils-2.38.tar.xz -

-

- MD5 sum: 6e39cad1bb414add02b5b1169c18fdc5 -

-
-
- Bison (3.8.2) - 2,752 KB: -
-
-

- Home page: https://www.gnu.org/software/bison/ -

-

- Download: https://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.xz -

-

- MD5 sum: c28f119f405a2304ff0a7ccdcc629713 -

-
-
- Bzip2 (1.0.8) - 792 KB: -
-
-

- Download: - https://www.sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz -

-

- MD5 sum: 67e051268d0c475ea773822f7500d0e5 -

-
-
- Check (0.15.2) - 760 KB: -
-
-

- Home page: https://libcheck.github.io/check -

-

- Download: - https://github.com/libcheck/check/releases/download/0.15.2/check-0.15.2.tar.gz -

-

- MD5 sum: 50fcafcecde5a380415b12e9c574e0b2 -

-
-
- Coreutils (9.0) - 5,482 KB: -
-
-

- Home page: https://www.gnu.org/software/coreutils/ -

-

- Download: - https://ftp.gnu.org/gnu/coreutils/coreutils-9.0.tar.xz -

-

- MD5 sum: 0d79ae8a6124546e3b94171375e5e5d0 -

-
-
- DejaGNU (1.6.3) - 608 KB: -
-
-

- Home page: https://www.gnu.org/software/dejagnu/ -

-

- Download: https://ftp.gnu.org/gnu/dejagnu/dejagnu-1.6.3.tar.gz -

-

- MD5 sum: 68c5208c58236eba447d7d6d1326b821 -

-
-
- Diffutils (3.8) - 1,548 KB: -
-
-

- Home page: https://www.gnu.org/software/diffutils/ -

-

- Download: - https://ftp.gnu.org/gnu/diffutils/diffutils-3.8.tar.xz -

-

- MD5 sum: 6a6b0fdc72acfe3f2829aab477876fbc -

-
-
- E2fsprogs (1.46.5) - 9,307 KB: -
-
-

- Home page: http://e2fsprogs.sourceforge.net/ -

-

- Download: - https://downloads.sourceforge.net/project/e2fsprogs/e2fsprogs/v1.46.5/e2fsprogs-1.46.5.tar.gz -

-

- MD5 sum: 3da91854c960ad8a819b48b2a404eb43 -

-
-
- Elfutils (0.186) - 9,015 KB: -
-
-

- Home page: https://sourceware.org/elfutils/ -

-

- Download: - https://sourceware.org/ftp/elfutils/0.186/elfutils-0.186.tar.bz2 -

-

- MD5 sum: 2c095e31e35d6be7b3718477b6d52702 -

-
-
- Eudev (3.2.11) - 2,075 KB: -
-
-

- Download: - https://github.com/eudev-project/eudev/releases/download/v3.2.11/eudev-3.2.11.tar.gz -

-

- MD5 sum: 417ba948335736d4d81874fba47a30f7 -

-
-
- Expat (2.4.6) - 444 KB: -
-
-

- Home page: https://libexpat.github.io/ -

-

- Download: - https://prdownloads.sourceforge.net/expat/expat-2.4.6.tar.xz -

-

- MD5 sum: 22a30c888752fdda9f8dd1b7281c54b0 -

-
-

- Nota -

-

- A(O) Desenvolvedora(or) talvez remova tarballs dos - lançamentos específicos de Expat quando esses lançamentos - contenham uma vulnerabilidade de segurança. Você - deveria se referir a Avisos - de Segurança de LFS para saber qual versão (com a - vulnerabilidade corrigida) deveria ser usada. Você - talvez baixe a versão vulnerável a partir de um - espelho, porém isso não é recomendado. -

-
-
-
- Expect (5.45.4) - 618 KB: -
-
-

- Home page: https://core.tcl.tk/expect/ -

-

- Download: - https://prdownloads.sourceforge.net/expect/expect5.45.4.tar.gz -

-

- MD5 sum: 00fce8de158422f5ccd2666512329bd2 -

-
-
- File (5.41) - 1040 - KB: -
-
-

- Home page: https://www.darwinsys.com/file/ -

-

- Download: https://astron.com/pub/file/file-5.41.tar.gz -

-

- MD5 sum: 18233bb0a0089dfdc7dfbc93b96f231b -

-
-
- Findutils (4.9.0) - 1,999 KB: -
-
-

- Home page: https://www.gnu.org/software/findutils/ -

-

- Download: - https://ftp.gnu.org/gnu/findutils/findutils-4.9.0.tar.xz -

-

- MD5 sum: 4a4a547e888a944b2f3af31d789a1137 -

-
-
- Flex (2.6.4) - 1,386 KB: -
-
-

- Home page: https://github.com/westes/flex -

-

- Download: - https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz -

-

- MD5 sum: 2882e3179748cc9f9c23ec593d6adc8d -

-
-
- Gawk (5.1.1) - 3,075 KB: -
-
-

- Home page: https://www.gnu.org/software/gawk/ -

-

- Download: https://ftp.gnu.org/gnu/gawk/gawk-5.1.1.tar.xz -

-

- MD5 sum: 83650aa943ff2fd519b2abedf8506ace -

-
-
- GCC (11.2.0) - 78,996 KB: -
-
-

- Home page: https://gcc.gnu.org/ -

-

- Download: - https://ftp.gnu.org/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.xz -

-

- MD5 sum: 31c86f2ced76acac66992eeedce2fce2 -

-

- SHA256 sum: d08edc536b54c372a1010ff6619dd274c0f1603aa49212ba20f7aa2cda36fa8b -

-
-
- GDBM (1.23) - 1,092 KB: -
-
-

- Home page: https://www.gnu.org/software/gdbm/ -

-

- Download: https://ftp.gnu.org/gnu/gdbm/gdbm-1.23.tar.gz -

-

- MD5 sum: 8551961e36bf8c70b7500d255d3658ec -

-
-
- Gettext (0.21) - 9,487 KB: -
-
-

- Home page: https://www.gnu.org/software/gettext/ -

-

- Download: https://ftp.gnu.org/gnu/gettext/gettext-0.21.tar.xz -

-

- MD5 sum: 40996bbaf7d1356d3c22e33a8b255b31 -

-
-
- Glibc (2.35) - 17,741 KB: -
-
-

- Home page: https://www.gnu.org/software/libc/ -

-

- Download: https://ftp.gnu.org/gnu/glibc/glibc-2.35.tar.xz -

-

- MD5 sum: dd571c67d85d89d7f60b854a4e207423 -

-
-
- GMP (6.2.1) - 1,980 KB: -
-
-

- Home page: https://www.gnu.org/software/gmp/ -

-

- Download: https://ftp.gnu.org/gnu/gmp/gmp-6.2.1.tar.xz -

-

- MD5 sum: 0b82665c4a92fd2ade7440c13fcaa42b -

-
-
- Gperf (3.1) - 1,188 KB: -
-
-

- Home page: https://www.gnu.org/software/gperf/ -

-

- Download: https://ftp.gnu.org/gnu/gperf/gperf-3.1.tar.gz -

-

- MD5 sum: 9e251c0a618ad0824b51117d5d9db87e -

-
-
- Grep (3.7) - 1,603 - KB: -
-
-

- Home page: https://www.gnu.org/software/grep/ -

-

- Download: https://ftp.gnu.org/gnu/grep/grep-3.7.tar.xz -

-

- MD5 sum: 7c9cca97fa18670a21e72638c3e1dabf -

-
-
- Groff (1.22.4) - 4,044 KB: -
-
-

- Home page: https://www.gnu.org/software/groff/ -

-

- Download: https://ftp.gnu.org/gnu/groff/groff-1.22.4.tar.gz -

-

- MD5 sum: 08fb04335e2f5e73f23ea4c3adbf0c5f -

-
-
- GRUB (2.06) - 6,428 KB: -
-
-

- Home page: https://www.gnu.org/software/grub/ -

-

- Download: https://ftp.gnu.org/gnu/grub/grub-2.06.tar.xz -

-

- MD5 sum: cf0fd928b1e5479c8108ee52cb114363 -

-
-
- Gzip (1.11) - 786 - KB: -
-
-

- Home page: https://www.gnu.org/software/gzip/ -

-

- Download: https://ftp.gnu.org/gnu/gzip/gzip-1.11.tar.xz -

-

- MD5 sum: d1e93996dba00cab0caa7903cd01d454 -

-
-
- Iana-Etc (20220207) - 580 KB: -
-
-

- Home page: https://www.iana.org/protocols -

-

- Download: - https://github.com/Mic92/iana-etc/releases/download/20220207/iana-etc-20220207.tar.gz -

-

- MD5 sum: 81d865ce7fe4240d5abed48c3ca5fa9f -

-
-
- Inetutils (2.2) - 1,494 KB: -
-
-

- Home page: https://www.gnu.org/software/inetutils/ -

-

- Download: - https://ftp.gnu.org/gnu/inetutils/inetutils-2.2.tar.xz -

-

- MD5 sum: de8c1b49cbde2b30e481c61c65357ad4 -

-

- SHA256 sum: 01b9a4bc73a47e63f6e8a07b76122d9ad2a2e46ebf14870e9c91d660b5647a22 -

-
-
- Intltool (0.51.0) - 159 KB: -
-
-

- Home page: https://freedesktop.org/wiki/Software/intltool -

-

- Download: - https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz -

-

- MD5 sum: 12e517cac2b57a0121cda351570f1e63 -

-
-
- IPRoute2 (5.16.0) - 843 KB: -
-
-

- Home page: https://www.kernel.org/pub/linux/utils/net/iproute2/ -

-

- Download: - https://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-5.16.0.tar.xz -

-

- MD5 sum: 994c1bad2a24aa9d70e89670c5b5dfcb -

-
-
- Kbd (2.4.0) - 1,095 KB: -
-
-

- Home page: https://kbd-project.org/ -

-

- Download: - https://www.kernel.org/pub/linux/utils/kbd/kbd-2.4.0.tar.xz -

-

- MD5 sum: 3cac5be0096fcf7b32dcbd3c53831380 -

-
-
- Kmod (29) - 548 - KB: -
-
-

- Download: - https://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-29.tar.xz -

-

- MD5 sum: e81e63acd80697d001c8d85c1acb38a0 -

-
-
- Less (590) - 348 - KB: -
-
-

- Home page: https://www.greenwoodsoftware.com/less/ -

-

- Download: - https://www.greenwoodsoftware.com/less/less-590.tar.gz -

-

- MD5 sum: f029087448357812fba450091a1172ab -

-
-
- LFS-Bootscripts (20210608) - - 32 KB: -
-
-

- Download: - https://www.linuxfromscratch.org/lfs/downloads/11.1/lfs-bootscripts-20210608.tar.xz -

-

- MD5 sum: 0f51a074cc4faaff93b3c80e9ab27b0c -

-
-
- Libcap (2.63) - 171 KB: -
-
-

- Home page: https://sites.google.com/site/fullycapable/ -

-

- Download: - https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-2.63.tar.xz -

-

- MD5 sum: 18410cec436f827e698ee9ea16ada9b7 -

-
-
- Libffi (3.4.2) - 1,320 KB: -
-
-

- Home page: https://sourceware.org/libffi/ -

-

- Download: - https://github.com/libffi/libffi/releases/download/v3.4.2/libffi-3.4.2.tar.gz -

-

- MD5 sum: 294b921e6cf9ab0fbaea4b639f8fdbe8 -

-
-
- Libpipeline (1.5.5) - 934 KB: -
-
-

- Home page: http://libpipeline.nongnu.org/ -

-

- Download: - https://download.savannah.gnu.org/releases/libpipeline/libpipeline-1.5.5.tar.gz -

-

- MD5 sum: 3e725c76bfea1985e87e851ee50c2e29 -

-
-
- Libtool (2.4.6) - 951 KB: -
-
-

- Home page: https://www.gnu.org/software/libtool/ -

-

- Download: https://ftp.gnu.org/gnu/libtool/libtool-2.4.6.tar.xz -

-

- MD5 sum: 1bfb9b923f2c1339b4d2ce1807064aa5 -

-
-
- Linux (5.16.9) - 124,577 KB: -
-
-

- Home page: https://www.kernel.org/ -

-

- Download: - https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.16.9.tar.xz -

-

- MD5 sum: 4d6a704bf3e249ef6189b6f17457084b -

-
-

- Nota -

-

- O kernel Linux é atualizado com relativa frequência, - muitas vezes devido às descobertas de - vulnerabilidades de segurança. A versão estável de - kernel mais atual disponível pode ser usada, a menos - que a página de errata diga o contrário. -

-

- Para usuárias(os) com largura de banda de velocidade - limitada ou cara que desejem atualizar o kernel - Linux, uma versão básica do pacote e patches pode ser - baixada separadamente. Isso talvez economize algum - tempo ou custo para uma posterior atualização de - nível de patch contendo um lançamento menor. -

-
-
-
- M4 (1.4.19) - 1,617 KB: -
-
-

- Home page: https://www.gnu.org/software/m4/ -

-

- Download: https://ftp.gnu.org/gnu/m4/m4-1.4.19.tar.xz -

-

- MD5 sum: 0d90823e1426f1da2fd872df0311298d -

-
-
- Make (4.3) - 2,263 - KB: -
-
-

- Home page: https://www.gnu.org/software/make/ -

-

- Download: https://ftp.gnu.org/gnu/make/make-4.3.tar.gz -

-

- MD5 sum: fc7a67ea86ace13195b0bce683fd4469 -

-
-
- Man-DB (2.10.1) - 1,847 KB: -
-
-

- Home page: https://www.nongnu.org/man-db/ -

-

- Download: - https://download.savannah.gnu.org/releases/man-db/man-db-2.10.1.tar.xz -

-

- MD5 sum: b03b76a9a00d0d6b2299b823fba4f579 -

-
-
- Man-pages (5.13) - 1,752 KB: -
-
-

- Home page: https://www.kernel.org/doc/man-pages/ -

-

- Download: - https://www.kernel.org/pub/linux/docs/man-pages/man-pages-5.13.tar.xz -

-

- MD5 sum: 3ac24e8c6fae26b801cb87ceb63c0a30 -

-
-
- Meson (0.61.1) - 1,963 KB: -
-
-

- Home page: https://mesonbuild.com -

-

- Download: - https://github.com/mesonbuild/meson/releases/download/0.61.1/meson-0.61.1.tar.gz -

-

- MD5 sum: 8ed66d5537275df3defffb66d1fb897f -

-
-
- MPC (1.2.1) - 820 - KB: -
-
-

- Home page: http://www.multiprecision.org/ -

-

- Download: https://ftp.gnu.org/gnu/mpc/mpc-1.2.1.tar.gz -

-

- MD5 sum: 9f16c976c25bb0f76b50be749cd7a3a8 -

-
-
- MPFR (4.1.0) - 1,490 KB: -
-
-

- Home page: https://www.mpfr.org/ -

-

- Download: https://www.mpfr.org/mpfr-4.1.0/mpfr-4.1.0.tar.xz -

-

- MD5 sum: bdd3d5efba9c17da8d83a35ec552baef -

-
-
- Ncurses (6.3) - 3,500 KB: -
-
-

- Home page: https://www.gnu.org/software/ncurses/ -

-

- Download: - https://invisible-mirror.net/archives/ncurses/ncurses-6.3.tar.gz -

-

- MD5 sum: a2736befde5fee7d2b7eb45eb281cdbe -

-
-
- Ninja (1.10.2) - 209 KB: -
-
-

- Home page: https://ninja-build.org/ -

-

- Download: - https://github.com/ninja-build/ninja/archive/v1.10.2/ninja-1.10.2.tar.gz -

-

- MD5 sum: 639f75bc2e3b19ab893eaf2c810d4eb4 -

-
-
- OpenSSL (3.0.1) - 14,660 KB: -
-
-

- Home page: https://www.openssl.org/ -

-

- Download: https://www.openssl.org/source/openssl-3.0.1.tar.gz -

-

- MD5 sum: 7d07e849d77d276891edd579a8832bb3 -

-
-
- Patch (2.7.6) - 766 KB: -
-
-

- Home page: https://savannah.gnu.org/projects/patch/ -

-

- Download: https://ftp.gnu.org/gnu/patch/patch-2.7.6.tar.xz -

-

- MD5 sum: 78ad9937e4caadcba1526ef1853730d5 -

-
-
- Perl (5.34.0) - 12,580 KB: -
-
-

- Home page: https://www.perl.org/ -

-

- Download: https://www.cpan.org/src/5.0/perl-5.34.0.tar.xz -

-

- MD5 sum: df7ecb0653440b26dc951ad9dbfab517 -

-
-
- Pkg-config (0.29.2) - 1,970 KB: -
-
-

- Home page: https://www.freedesktop.org/wiki/Software/pkg-config -

-

- Download: - https://pkg-config.freedesktop.org/releases/pkg-config-0.29.2.tar.gz -

-

- MD5 sum: f6e931e319531b736fadc017f470e68a -

-
-
- Procps (3.3.17) - 985 KB: -
-
-

- Home page: https://sourceforge.net/projects/procps-ng -

-

- Download: - https://sourceforge.net/projects/procps-ng/files/Production/procps-ng-3.3.17.tar.xz -

-

- MD5 sum: d60613e88c2f442ebd462b5a75313d56 -

-
-
- Psmisc (23.4) - 362 KB: -
-
-

- Home page: https://gitlab.com/psmisc/psmisc -

-

- Download: - https://sourceforge.net/projects/psmisc/files/psmisc/psmisc-23.4.tar.xz -

-

- MD5 sum: 8114cd4489b95308efe2509c3a406bbf -

-
-
- Python (3.10.2) - 18,341 KB: -
-
-

- Home page: https://www.python.org/ -

-

- Download: - https://www.python.org/ftp/python/3.10.2/Python-3.10.2.tar.xz -

-

- MD5 sum: 14e8c22458ed7779a1957b26cde01db9 -

-
-
- Documentação de Python (3.10.2) - - 7,102 KB: -
-
-

- Download: - https://www.python.org/ftp/python/doc/3.10.2/python-3.10.2-docs-html.tar.bz2 -

-

- MD5 sum: ffa52f0017baf72df9d32dec785fd6ab -

-
-
- Readline (8.1.2) - 2,923 KB: -
-
-

- Home page: https://tiswww.case.edu/php/chet/readline/rltop.html -

-

- Download: - https://ftp.gnu.org/gnu/readline/readline-8.1.2.tar.gz -

-

- MD5 sum: 12819fa739a78a6172400f399ab34f81 -

-
-
- Sed (4.8) - 1,317 - KB: -
-
-

- Home page: https://www.gnu.org/software/sed/ -

-

- Download: https://ftp.gnu.org/gnu/sed/sed-4.8.tar.xz -

-

- MD5 sum: 6d906edfdb3202304059233f51f9a71d -

-
-
- Shadow (4.11.1) - 1,618 KB: -
-
-

- Home page: https://shadow-maint.github.io/shadow/ -

-

- Download: - https://github.com/shadow-maint/shadow/releases/download/v4.11.1/shadow-4.11.1.tar.xz -

-

- MD5 sum: 5a95ec069aa91508167d02fecafaa912 -

-
-
- Sysklogd (1.5.1) - 88 KB: -
-
-

- Home page: https://www.infodrom.org/projects/sysklogd/ -

-

- Download: - https://www.infodrom.org/projects/sysklogd/download/sysklogd-1.5.1.tar.gz -

-

- MD5 sum: c70599ab0d037fde724f7210c2c8d7f8 -

-
-
- Sysvinit (3.01) - 124 KB: -
-
-

- Home page: https://savannah.nongnu.org/projects/sysvinit -

-

- Download: - https://download.savannah.gnu.org/releases/sysvinit/sysvinit-3.01.tar.xz -

-

- MD5 sum: dc14f92af715bcfa33cc25341730452e -

-
-
- Tar (1.34) - 2,174 - KB: -
-
-

- Home page: https://www.gnu.org/software/tar/ -

-

- Download: https://ftp.gnu.org/gnu/tar/tar-1.34.tar.xz -

-

- MD5 sum: 9a08d29a9ac4727130b5708347c0f5cf -

-
-
- Tcl (8.6.12) - 10,112 KB: -
-
-

- Home page: http://tcl.sourceforge.net/ -

-

- Download: - https://downloads.sourceforge.net/tcl/tcl8.6.12-src.tar.gz -

-

- MD5 sum: 87ea890821d2221f2ab5157bc5eb885f -

-
-
- Documentação de Tcl (8.6.12) - - 1,176 KB: -
-
-

- Download: - https://downloads.sourceforge.net/tcl/tcl8.6.12-html.tar.gz -

-

- MD5 sum: a0d1a5b60bbb68f2f0bd3066a19c527a -

-
-
- Texinfo (6.8) - 4,848 KB: -
-
-

- Home page: https://www.gnu.org/software/texinfo/ -

-

- Download: https://ftp.gnu.org/gnu/texinfo/texinfo-6.8.tar.xz -

-

- MD5 sum: a91b404e30561a5df803e6eb3a53be71 -

-
-
- Dados de Zona de Tempo (2021e) - - 413 KB: -
-
-

- Home page: https://www.iana.org/time-zones -

-

- Download: - https://www.iana.org/time-zones/repository/releases/tzdata2021e.tar.gz -

-

- MD5 sum: 4fdfad906ebc85fef30221c10964cce9 -

-
-
- Udev-lfs Tarball (udev-lfs-20171102) - - 11 KB: -
-
-

- Download: - https://anduin.linuxfromscratch.org/LFS/udev-lfs-20171102.tar.xz -

-

- MD5 sum: 27cd82f9a61422e186b9d6759ddf1634 -

-
-
- Util-linux (2.37.4) - 5,971 KB: -
-
-

- Home page: - https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/ -

-

- Download: - https://www.kernel.org/pub/linux/utils/util-linux/v2.37/util-linux-2.37.4.tar.xz -

-

- MD5 sum: 755919e658c349cad9e1c7c771742d48 -

-
-
- Vim (8.2.4383) - 15,622 KB: -
-
-

- Home page: https://www.vim.org -

-

- Download: - https://anduin.linuxfromscratch.org/LFS/vim-8.2.4383.tar.gz -

-

- MD5 sum: 3168ff48e382a1201bd0cbd0209bd3e0 -

-
-

- Nota -

-

- A versão de vim muda diariamente. Para conseguir a - versão mais atual, vá para https://github.com/vim/vim/tags. -

-
-
-
- XML::Parser (2.46) - 249 KB: -
-
-

- Home page: https://github.com/chorny/XML-Parser -

-

- Download: - https://cpan.metacpan.org/authors/id/T/TO/TODDR/XML-Parser-2.46.tar.gz -

-

- MD5 sum: 80bb18a8e6240fcf7ec2f7b57601c170 -

-
-
- Xz Utils (5.2.5) - 1,122 KB: -
-
-

- Home page: https://tukaani.org/xz -

-

- Download: https://tukaani.org/xz/xz-5.2.5.tar.xz -

-

- MD5 sum: aa1621ec7013a19abab52a8aff04fe5b -

-
-
- Zlib (1.2.11) - 457 KB: -
-
-

- Home page: https://www.zlib.net/ -

-

- Download: https://zlib.net/zlib-1.2.11.tar.xz -

-

- MD5 sum: 85adef240c5f370b308da8c938951a68 -

-
-
- Zstd (1.5.2) - 1,892 KB: -
-
-

- Home page: https://facebook.github.io/zstd/ -

-

- Download: - https://github.com/facebook/zstd/releases/download/v1.5.2/zstd-1.5.2.tar.gz -

-

- MD5 sum: 072b10f71f5820c24761a65f31f43e73 -

-
-
-
-
-

- Tamanho total desses pacotes: cerca de 446 MB -

-
-
-
-
-
-

- 3.3. Patches Necessários -

-
-
-
-

- Em adição aos pacotes, vários patches também são exigidos. - Esses patches corrigem quaisquer erros nos pacotes que deveriam - ser consertados pela(o) Mantenedora(or). Os patches também - fazem pequenas modificações para tornar os pacotes mais fáceis - de se trabalhar. Os seguintes patches serão necessários para - construir um sistema LFS: -

-
-
-
-
- Binutils LTO Fix Patch - 3.5 KB: -
-
-

- Download: - https://www.linuxfromscratch.org/patches/lfs/11.1/binutils-2.38-lto_fix-1.patch -

-

- MD5 sum: 3df11b6123d5bbdb0fc83862a003827a -

-
-
- Patch de Documentação de Bzip2 - - 1.6 KB: -
-
-

- Download: - https://www.linuxfromscratch.org/patches/lfs/11.1/bzip2-1.0.8-install_docs-1.patch -

-

- MD5 sum: 6a5ac7e89b791aae556de0f745916f7f -

-
-
- Patch de Correções de - Internacionalização de Coreutils - 166 KB: -
-
-

- Download: - https://www.linuxfromscratch.org/patches/lfs/11.1/coreutils-9.0-i18n-1.patch -

-

- MD5 sum: 1eeba2736dfea013509f9975365e4e32 -

-
-
- Patch de Correção de Chmod de - Coreutils - 3.8 KB: -
-
-

- Download: - https://www.linuxfromscratch.org/patches/lfs/11.1/coreutils-9.0-chmod_fix-1.patch -

-

- MD5 sum: 4709df88e68279e6ef357aa819ba5b1a -

-
-
- Glibc FHS Patch - 2.8 KB: -
-
-

- Download: - https://www.linuxfromscratch.org/patches/lfs/11.1/glibc-2.35-fhs-1.patch -

-

- MD5 sum: 9a5997c3452909b1769918c759eff8a2 -

-
-
- Patch de Correção de Backspace/Delete - de Kbd - 12 KB: -
-
-

- Download: - https://www.linuxfromscratch.org/patches/lfs/11.1/kbd-2.4.0-backspace-1.patch -

-

- MD5 sum: f75cca16a38da6caa7d52151f7136895 -

-
-
- Patch de Correção de - Desenvolvedora(or) de Perl - 1.6 - KB: -
-
-

- Download: - https://www.linuxfromscratch.org/patches/lfs/11.1/perl-5.34.0-upstream_fixes-1.patch -

-

- MD5 sum: fb42558b59ed95ee00eb9f1c1c9b8056 -

-
-
- Patch Consolidado de Sysvinit - - 2.4 KB: -
-
-

- Download: - https://www.linuxfromscratch.org/patches/lfs/11.1/sysvinit-3.01-consolidated-1.patch -

-

- MD5 sum: 4900322141d493e74020c9cf437b2cdc -

-
-
-
-
-

- Tamanho total desses patches: cerca de 193.7 KB -

-

- Em adição aos patches exigidos acima, existe um número de - patches opcionais criados pela comunidade LFS. Esses patches - opcionais solucionam problemas menores ou habilitam - funcionalidade que não está habilitada por padrão. Sinta-se à - vontade para examinar o banco de dados de patches localizado em - https://www.linuxfromscratch.org/patches/downloads/ - e adquirir quaisquer patches adicionais para atender às - necessidades do seu sistema. -

-
-
-
-
-
-
-

- Capítulo 4. Preparações - Finais -

-
-
-
-
-
-
-
-

- 4.1. Introdução -

-
-
-
-

- Neste capítulo, nós realizaremos umas poucas tarefas adicionais - para preparar para construção o sistema temporário. Nós - criaremos um conjunto de diretórios em $LFS para a instalação das ferramentas - temporárias; adicionaremos uma(m) usuária(o) desprivilegiada(o) - para reduzir risco; e criaremos um ambiente apropriado de - construção para aquela(e) usuária(o). Nós também explicaremos a - unidade de tempo que usamos para medir quanto tempo pacotes de - LFS levam para construir, ou SBUs, e - daremos alguma informação acerca de suítes de teste de pacote. -

-
-
-
-
-
-

- 4.2. Criando um - layout limitado de diretório em sistema de arquivos de - LFS -

-
-
-
-

- A primeira tarefa realizada na partição LFS é a de criar uma - hierarquia limitada de diretório de forma que aplicativos - compilados em Capítulo 6 - (bem como glibc e libstdc++ em Capítulo 5) - possam ser instalados no local final deles. Isso é necessário - de maneira que aqueles aplicativos temporários sejam - sobrescritos quando reconstruí-los em Capítulo 8. -

-

- Crie o layout exigido de diretório executando o seguinte como - root: -

-
mkdir -pv $LFS/{etc,var} $LFS/usr/{bin,lib,sbin}
-
-for i in bin lib sbin; do
-  ln -sv usr/$i $LFS/$i
-done
-
-case $(uname -m) in
-  x86_64) mkdir -pv $LFS/lib64 ;;
-esac
-

- Aplicativos em Capítulo 6 - serão compilados com um compilador cruzado (mais detalhes na - seção Notas - Técnicas do Conjunto de Ferramentas). Com a finalidade de - separar esse compilador cruzado de outros aplicativos, ele será - instalado em um diretório especial. Crie esse diretório com: -

-
mkdir -pv $LFS/tools
-
-
-
-
-
-

- 4.3. Adicionando a(o) - Usuária(o) LFS -

-
-
-
-

- Enquanto logada(o) como usuária(o) root, cometer um simples erro pode - danificar ou destruir um sistema. Portanto, os pacotes nos - próximos dois capítulos são construídos como uma(m) usuária(o) - sem privilégios. Você poderia usar seu próprio nome de - usuária(o), mas para facilitar a configuração de um ambiente de - trabalho limpo, crie uma(m) nova(o) usuária(o) chamada(o) - lfs como um membro de um novo - grupo (também chamado lfs) e - use essa(e) usuária(o) durante o processo de instalação. Como - root, emita os seguintes - comandos para adicionar a(o) nova(o) usuária(o): -

-
groupadd lfs
-useradd -s /bin/bash -g lfs -m -k /dev/null lfs
-
-

- O significado das opções de linha de - comando: -

-
-
- -s - /bin/bash -
-
-

- Isso torna bash o interpretador de - comandos padrão para a(o) usuária(o) lfs. -

-
-
- -g - lfs -
-
-

- Essa opção adiciona usuária(o) lfs ao grupo lfs. -

-
-
- -m -
-
-

- Isso cria um diretório home para lfs. -

-
-
- -k - /dev/null -
-
-

- Esse parâmetro previne possível cópia de arquivos a - partir de um diretório esqueleto (padrão é /etc/skel) mudando a localização de - entrada para o dispositivo especial null. -

-
-
- lfs -
-
-

- Esse é o nome atual para a(o) usuária(o) criada(o). -

-
-
-
-

- Para se logar como lfs (em - oposição a mudar para a(o) usuária(o) lfs quando logada(o) como root, que não exige que a(o) usuária(o) - lfs tenha uma senha), dê a - lfs uma senha: -

-
passwd lfs
-

- Conceda a lfs acesso total a - todos os diretórios sob $LFS - tornando lfs a(o) dona(o) do - diretório: -

-
chown -v lfs $LFS/{usr{,/*},lib,var,etc,bin,sbin,tools}
-case $(uname -m) in
-  x86_64) chown -v lfs $LFS/lib64 ;;
-esac
-

- Se um diretório de trabalho separado foi criado como sugerido, - então dê à(ao) usuária(o) lfs a - propriedade desse diretório: -

-
chown -v lfs $LFS/sources
-
-

- Nota -

-

- Em alguns sistemas anfitrião, o seguinte comando não completa - adequadamente e suspende o login para a(o) usuária(o) lfs - para o segundo plano. Se o prompt "lfs:~$" não aparecer - imediatamente, então emitir o comando fg corrigirá o problema. -

-
-

- Em seguida, logue-se como usuária(o) lfs. Isso pode ser feito via um console - virtual; por intermédio de um gerenciador de tela; ou com o - seguinte comando de substituir/comutar usuária(o): -

-
su - lfs
-

- O - instrui - su a iniciar um - shell de login em vez de um shell de não-login. A diferença - entre esses dois tipos de shells pode ser encontrada em - detalhes em bash(1) e - info bash. -

-
-
-
-
-
-

- 4.4. Configurando o - Ambiente -

-
-
-
-

- Configure um bom ambiente de trabalho criando dois novos - arquivos de inicialização para o shell bash. Enquanto logada(o) como - usuária(o) lfs, emita o - seguinte comando para criar um novo .bash_profile: -

-
cat > ~/.bash_profile << "EOF"
-exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
-EOF
-

- Enquanto logada(o) como usuária(o) lfs, o shell inicial é geralmente um shell - de login que lê o - /etc/profile do anfitrião - (provavelmente contendo algumas configurações e variáveis de - ambiente) e então .bash_profile. - O comando exec env - -i.../bin/bash no arquivo .bash_profile substitui o shell em execução - por um novo com um ambiente completamente vazio, exceto pelas - variáveis HOME, TERM, e PS1. Isso - garante que nenhuma variável de ambiente indesejada e - potencialmente danosa oriunda do sistema anfitrião vaze para o - ambiente de construção. A técnica usada aqui alcança o objetivo - de assegurar um ambiente limpo. -

-

- A nova instância do shell é um shell de não-login, que não lê, e executa, o - conteúdo dos arquivos /etc/profile ou .bash_profile, porém, ao invés, lê, e - executa, o arquivo .bashrc. Crie - o arquivo .bashrc agora: -

-
cat > ~/.bashrc << "EOF"
-set +h
-umask 022
-LFS=/mnt/lfs
-LC_ALL=POSIX
-LFS_TGT=$(uname -m)-lfs-linux-gnu
-PATH=/usr/bin
-if [ ! -L /bin ]; then PATH=/bin:$PATH; fi
-PATH=$LFS/tools/bin:$PATH
-CONFIG_SITE=$LFS/usr/share/config.site
-export LFS LC_ALL LFS_TGT PATH CONFIG_SITE
-EOF
-
-

- O significado das configurações em .bashrc -

-
-
- set - +h -
-
-

- O comando set - +h desliga a função hash do bash. - “Hashing” geralmente é uma característica - útil—bash usa uma tabela - hash para lembrar o caminho completo de arquivos - executáveis para evitar procurar o PATH várias vezes para encontrar o mesmo - executável. Entretanto, as novas ferramentas deveriam ser - usadas tão logo sejam instaladas. Desativando a função - hash, o shell sempre vai procurar no PATH quando um aplicativo estiver para ser - executado. Dessa forma, o shell encontrará as ferramentas - recém compiladas em $LFS/tools/bin tão logo elas estejam - disponíveis sem lembrar da versão anterior do mesmo - aplicativo fornecida pela distribuição anfitriã, em - /usr/bin ou /bin. -

-
-
- umask - 022 -
-
-

- Configurar a máscara de criação de arquivos da(o) - usuária(o) (umask) para 022 garante que recém criados - arquivos e diretórios são graváveis somente por suas(eus) - donas(os), mas são legíveis e executáveis por qualquer - pessoa (assumindo que os modos padrão são usados pelas - chamadas de sistema open(2), novos arquivos terminarão com - modo de permissão 644 e diretórios com modo 755). -

-
-
- LFS=/mnt/lfs -
-
-

- A variável LFS deveria ser - configurada para o ponto de montagem escolhido. -

-
-
- LC_ALL=POSIX -
-
-

- A variável LC_ALL controla a - localização de certos aplicativos, fazendo suas mensagens - seguirem as convenções de um país especificado. - Configurar LC_ALL para - POSIX ou C - (as duas são equivalentes) garante que tudo vai funcionar - como esperado dentro do ambiente chroot. -

-
-
- LFS_TGT=(uname - -m)-lfs-linux-gnu -
-
-

- A variável LFS_TGT configura - uma não padrão, porém compatível descrição de máquina - para uso quando da construção do nosso compilador cruzado - e vinculador e quando da compilação cruzada do nosso - conjunto de ferramentas temporárias. Mais informação está - contida em Notas - Técnicas do Conjunto de Ferramentas. -

-
-
- PATH=/usr/bin -
-
-

- Muitas distribuições modernas de Linux mesclaram - /bin e /usr/bin. Quando esse for o caso, a - variável PATH padrão apenas - precisa ser configurada para /usr/bin/ para o ambiente de - Capítulo 6. Quando esse não for o caso, a - seguinte linha adiciona /bin ao caminho. -

-
-
- if [ ! -L - /bin ]; then PATH=/bin:$PATH; fi -
-
-

- Se /bin não for um link - simbólico, então ele tem de ser adicionado à variável - PATH. -

-
-
- PATH=$LFS/tools/bin:$PATH -
-
-

- Ao se colocar $LFS/tools/bin a frente do PATH padrão, o compilador cruzado - instalado no início de - Capítulo 5 é imediatamente pego pelo shell após - sua instalação. Isso, combinado com a desativação do - hashing, limita o risco de que o compilador originário do - anfitrião seja usado em vez do compilador cruzado. -

-
-
- CONFIG_SITE=$LFS/usr/share/config.site -
-
-

- Em - Capítulo 5 e - Capítulo 6, se essa variável não estiver - configurada, então os scripts configure talvez tentem - carregar itens de configuração específicos para algumas - distribuições a partir de /usr/share/config.site no sistema - anfitrião. Substitua-o para prevenir uma potencial - contaminação oriunda do anfitrião. -

-
-
- export - ... -
-
-

- Ao tempo que os comandos acima configuraram algumas - variáveis, com a finalidade de torná-las visíveis dentro - de quaisquer sub-shells, nós as exportamos. -

-
-
-
-
-

- Importante -

-

- Muitas distribuições comerciais adicionam uma instância não - documentada de /etc/bash.bashrc - à inicialização de bash. Esse arquivo tem o - potencial de modificar o ambiente da(o) usuária(o) - lfs de formas que podem - afetar a construção de pacotes LFS críticos. Para assegurar - que o ambiente da(o) usuária(o) lfs esteja limpo, verifique a presença de - /etc/bash.bashrc e, se - presente, mova-o para fora do caminho. Como a(o) usuária(o) - root, execute: -

-
[ ! -e /etc/bash.bashrc ] || mv -v /etc/bash.bashrc /etc/bash.bashrc.NOUSE
-

- Após o uso da(o) usuária(o) lfs for finalizado no início de - Capítulo 7, você pode restaurar /etc/bash.bashrc (se desejado). -

-

- Perceba que o pacote Bash de LFS que nós construiremos em - Seção 8.34, - “Bash-5.1.16” não é configurado para carregar - ou executar /etc/bash.bashrc, - de modo que esse arquivo é inútil em um sistema LFS completo. -

-
-

- Finalmente, para ter o ambiente totalmente preparado para - construção das ferramentas temporárias, carregue o recém criado - perfil de usuária(o): -

-
source ~/.bash_profile
-
-
-
-
-
-

- 4.5. Sobre UPCs -

-
-
-
-

- Muitas pessoas gostariam de saber de antemão aproximadamente - quanto tempo leva para compilar e instalar cada pacote. Devido - a Linux From Scratch poder ser construído em muitos sistemas, é - impossível fornecer estimativas de tempo precisas. O maior - pacote (Glibc) levará aproximadamente vinte (20) minutos em - sistemas mais rápidos, mas poderia levar até três (03) dias em - sistemas mais lentos! Em vez de fornecer tempos atuais, a - medida Unidade Padrão de Construção (UPC) será usada. -

-

- A medida UPC funciona como segue. O primeiro pacote a ser - compilado neste livro é binutils em Capítulo 5. - O tempo necessário para compilar esse pacote é que será - referenciado como a Unidade Padrão de Construção ou UPC. Todos - os outros tempos de compilação serão expressos relativamente a - esse tempo. -

-

- Por exemplo, considere um pacote cujo tempo de compilação é - quatro e meio (4,5) UPCs. Isso significa que, se um sistema - precisou de dez (10) minutos para compilar e instalar a - primeira passagem de binutils, então será necessário - aproximadamente quarenta - e cinco (45) minutos para construir esse pacote de exemplo. - Felizmente, a maioria dos tempos de construção é menor que o - tempo para binutils. -

-

- Em geral, UPCs não são totalmente precisas, pois dependem de - muitos fatores, incluindo a versão de GCC do sistema anfitrião. - Elas são fornecidas aqui para dar uma estimativa de quanto - tempo pode levar para instalar um pacote, mas os números podem - variar tanto quanto dúzias de minutos em alguns casos. -

-
-

- Nota -

-

- Para muitos sistemas modernos com múltiplos processadores (ou - cores) o tempo de compilação para um pacote pode ser reduzido - realizando um “parallel make”, seja configurando - uma variável de ambiente; ou dizendo para o aplicativo - make quantos - processadores estão disponíveis. Por exemplo, uma CPU Intel - i5-6500 pode suportar quatro processos simultâneos com: -

-
export MAKEFLAGS='-j4'
-

- ou somente construindo com: -

-
make -j4
-

- Quando múltiplos processadores são usados dessa maneira, as - unidades UPC no livro irão variar ainda mais do que - normalmente aconteceria. Em alguns casos, o passo make - simplesmente falhará. Analisar a saída dos processos de - construção também será mais difícil, pois as linhas de - diferentes processos estarão intercaladas. Se você tiver um - problema com um passo de construção, então retorne para uma - construção de processador único para analisar adequadamente - as mensagens de erro. -

-
-
-
-
-
-
-

- 4.6. Sobre as Suítes - de Teste -

-
-
-
-

- A maioria dos pacotes fornece uma suíte de teste. Rodar a suíte - de teste para um pacote recém construído é uma boa ideia, pois - pode fornecer uma verificação de sanidade indicando - que tudo compilou corretamente. Uma suíte de teste que executa - seu conjunto de verificações geralmente prova que o pacote está - funcionando como a(o) desenvolvedora(r) pretendia. Entretanto - isso não garante que o pacote está totalmente livre de - defeitos. -

-

- Algumas suítes de teste são mais importantes que outras. Por - exemplo, as suítes de teste para o conjunto de ferramentas - central—GCC, binutils, e glibc—são de máxima - importância devido a seu papel central em um sistema que - funcione adequadamente. As suítes de teste para GCC e glibc - podem levar bastante tempo para completarem, especialmente em - uma máquina lenta, mas são fortemente recomendadas. -

-
-

- Nota -

-

- Executar as suítes de teste em Capítulo 5 - e - Capítulo 6 é impossível, dado que os aplicativos são - compilados com um compilador cruzado, de forma que não se - supõe que sejam aptos a executar no anfitrião de construção. -

-
-

- Um problema comum com a execução de suítes de teste para - binutils e GCC é ficar sem pseudo terminais (PTYs). Isso pode - resultar em um alto número de testes com falhas. Isso pode - acontecer por muitas razões, mas a causa mais provável é que o - sistema anfitrião não tem o sistema de arquivos devpts configurado corretamente. Esse - problema é discutido em maiores detalhes em https://www.linuxfromscratch.org/lfs/faq.html#no-ptys. -

-

- Algumas vezes suítes de testes de pacotes falharão, mas por - razões as quais as(os) desenvolvedoras(es) estão cientes e - consideraram não-críticas. Consulte os registros localizados em - https://www.linuxfromscratch.org/lfs/build-logs/11.1/ - para verificar quando essas falhas são esperadas ou não. Esse - site é válido para todos os testes ao longo deste livro. -

-
-
-
-
-
-
-
-

- Parte III. Construindo o Conjunto - de Ferramentas Cruzadas de LFS e Ferramentas Temporárias -

-
-
-
-
-
-
-
-

- Material Preliminar - Importante -

-
-
-
-
-
-
-
-

- Introdução -

-
-
-
-

- Esta parte é dividida em três estágios: primeiro construindo um - compilador cruzado e suas bibliotecas associadas; segundo, usar - esse conjunto de ferramentas cruzado para construir vários - utilitários de uma forma que os isola da distribuição anfitriã; - terceiro, entrar no ambiente chroot, o qual melhora ainda mais - o isolamento do anfitrião, e construir as ferramentas restantes - necessárias para construir o sistema final. -

-
-

- Importante -

-

- Com esta parte inicia o trabalho real de construir um novo - sistema. Exige muito cuidado em assegurar que as instruções - sejam seguidas exatamente conforme o livro as mostra. Você - deveria tentar entender o que elas fazem, e qualquer que seja - sua ânsia para finalizar sua construção, você deveria evitar - digitá-las cegamente como mostrado, mas ler documentação - quando houver algo que você não entenda. Além disso, - acompanhe sua digitação e da saída de comandos, enviando-as - para um arquivo, usando o utilitário tee. Isso permite um melhor - diagnóstico se algo der errado. -

-
-

- A próxima seção dá uma introdução técnica ao processo de - construção, enquanto que a seguinte contém instruções gerais - muito importantes. -

-
-
-
-
-
-

- Notas Técnicas do - Conjunto de Ferramentas -

-
-
-
-

- Esta seção explana algumas das razões e detalhes técnicos por - trás do método completo de construção. Não é essencial entender - imediatamente tudo nesta seção. A maior parte desta informação - ficará mais clara após executar uma construção atual. Esta - seção pode e deve ser consultada a qualquer momento durante o - processo. -

-

- O objetivo geral do Capítulo 5 - e do Capítulo 6 - é o de produzir uma área temporária que contém um conjunto - reconhecidamente bom de ferramentas que pode ser isolado do - sistema anfitrião. Usando-se chroot, os comandos nos - capítulos subsequentes estarão confinados naquele ambiente, - assegurando uma construção limpa e livre de problemas do - sistema LFS alvo. O processo de construção foi desenhado para - minimizar os riscos para leitores novatos e para prover o maior - valor educacional ao mesmo tempo. -

-

- O processo de construção é baseado no processo de compilação cruzada. A compilação - cruzada normalmente é usada para construir um compilador e o - conjunto de ferramentas dele para uma máquina diferente daquela - que é usada para a construção. Isso não é estritamente - necessário para LFS, dado que a máquina onde o novo sistema - executará é a mesma usada para a construção. Porém, a - compilação cruzada tem a grande vantagem de que tudo o que é - compilado cruzadamente não pode depender do ambiente do - anfitrião. -

-
-

- Acerca da - Compilação Cruzada -

-
-

- Nota -

-

- O livro LFS não é, e não contém, um tutorial geral para - construir um conjunto de ferramentas cruzado (ou nativo). - Não use os comandos no livro para um conjunto de - ferramentas cruzado o qual será usado para algum outro - propósito que não construir LFS, a menos que você realmente - entenda o que está fazendo. -

-
-

- Compilação cruzada envolve alguns conceitos que merecem uma - seção por si próprios. Apesar que esta seção pode ser omitida - em uma primeira leitura, retornar até ela mais tarde será - benéfico para o seu completo entendimento do processo. -

-

- Permita-nos primeiro definir alguns termos usados nesse - contexto -

-
-
-
- build -
-
-

- é a máquina onde nós construímos aplicativos. Note que - essa máquina é referenciada como sendo a anfitriã em outras seções. -

-
-
- host -
-
-

- é a máquina/sistema onde os aplicativos construídos - executarão. Note que esse uso de host não é o mesmo que o - uso em outras seções. -

-
-
- target -
-
-

- é usado apenas para compiladores. Ele é a máquina para - a qual o compilador produz código. Ele pode ser - diferente de ambos build e host. -

-
-
-
-

- Como um exemplo, permita-nos imaginar o seguinte cenário (as - vezes rotulado de Cruzado Canadense): nós podemos - ter um compilador somente em uma máquina lenta, vamos - rotulá-la de máquina A, e o compilador de - ccA. Nós também podemos ter uma - máquina rápida (B), porém sem compilador, e nós eventualmente - desejamos produzir código para outra máquina lenta (C). Para - construir um compilador para a máquina C, - nós teríamos três estágios: -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Estágio - - Build - - Host - - Target - - Ação -
- 1 - - A - - A - - B - - construir compilador cruzado cc1 usando ccA na - máquina A -
- 2 - - A - - B - - C - - construir compilador cruzado cc2 usando cc1 na - máquina A -
- 3 - - B - - C - - C - - construir compilador ccC usando cc2 na máquina B -
-
-

- Então, todos os outros programas necessários para a máquina C - podem ser compilados usando cc2 na rápida máquina B. Note que - a menos que B possa executar aplicativos produzidos por C, - não existe maneira de testar os aplicativos construídos até - que a própria máquina C esteja em execução. Por exemplo, para - testar ccC, nós eventualmente desejamos adicionar um quarto - estágio: -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
- Estágio - - Build - - Host - - Target - - Ação -
- 4 - - C - - C - - C - - reconstruir e testar ccC usando o próprio na máquina - C -
-
-

- No exemplo acima, somente cc1 e cc2 são compiladores - cruzados, isto é, eles produzem código para uma máquina - diferente daquela na qual estão sendo executados. Tais - compiladores são rotulados de compiladores nativos. -

-
-
-

- Implementação de - Compilação Cruzada para LFS -

-
-

- Nota -

-

- Quase todos os sistemas de construção usam nomes da forma - cpu-vendor-kernel-os rotulados como o trio de máquina. Um - leitor atento eventualmente questionará porque um - trio rotula um nome de quatro - componentes. A razão é histórica: inicialmente, três nomes - de componente eram suficientes para designar uma máquina - inequivocamente, porém com novas máquinas e sistemas - aparecendo, isso se provou insuficiente. A palavra - trio subsistiu. Uma maneira - simples de determinar seu trio de máquina é executar o - script config.guess que vem com - o fonte para muitos pacotes. Desempacote os fontes do - pacote binutils e execute o script: - ./config.guess e observe - a saída. Por exemplo, para um processador Intel de 32-bits, - a saída será i686-pc-linux-gnu. Em um sistema - de 64-bits, a saída será x86_64-pc-linux-gnu. -

-

- Esteja também ciente do nome do vinculador dinâmico da - plataforma, frequentemente rotulado de carregador dinâmico - (não confundir com o vinculador padrão ld o qual é parte do - pacote binutils). O vinculador - dinâmico provido por Glibc encontra e carrega as - bibliotecas compartilhadas necessárias para um aplicativo, - prepara o aplicativo para execução, e então o executa. O - nome do vinculador dinâmico para uma máquina Intel de - 32-bits é ld-linux.so.2 e é - ld-linux-x86-64.so.2 para - sistemas 64-bits. Uma maneira infalível de determinar o - nome do vinculador dinâmico é inspecionar uma biblioteca - aleatória do sistema anfitrião executando: readelf -l <nome de binário> | grep - interpreter e observando a saída. A - referência oficial cobrindo todas as plataformas está no - arquivo shlib-versions na - raiz da árvore do fonte do Glibc. -

-
-

- Para falsificar uma compilação cruzada em LFS, o nome do trio - do anfitrião é ligeiramente ajustado modificando-se o campo - "vendor" na variável LFS_TGT. Nós - também usamos a opção --with-sysroot quando da - construção do vinculador dinâmico e do compilador cruzado - para informá-los onde encontrar os necessários arquivos do - anfitrião. Isso assegura que nenhum dos outros aplicativos - construídos em - Capítulo 6 pode se vincular a bibliotecas na máquina - de construção. Somente dois estágios são obrigatórios, e mais - um para testes: -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Estágio - - Build - - Host - - Target - - Ação -
- 1 - - pc - - pc - - lfs - - construir compilador cruzado cc1 usando cc-pc em pc -
- 2 - - pc - - lfs - - lfs - - construir compilador cc-lfs usando cc1 em pc -
- 3 - - lfs - - lfs - - lfs - - reconstruir e testar cc-lfs usando o próprio em lfs -
-
-

- Na tabela acima, em pc significa que os comandos - são executados em uma máquina usando a distribuição já - instalada. Em - lfs significa que os comandos são - executados dentro de um ambiente enjaulado. -

-

- Agora, existe mais acerca de compilação cruzada: a linguagem - C não é apenas um compilador, mas também define uma - biblioteca padrão. Neste livro, a biblioteca GNU C, rotulada - de glibc, é usada. Essa biblioteca - deve ser compilada para a máquina lfs, isto é, usando o - compilador cruzado cc1. Porém, o próprio compilador usa uma - biblioteca interna implementando complexas instruções não - disponíveis no conjunto de instruções do montador. Essa - biblioteca interna é rotulada de libgcc, e deve ser vinculada à - biblioteca glibc para ser completamente - funcional! Além disso, a biblioteca padrão para C++ - (libstdc++) também precisa estar vinculada à glibc. A solução para esse - problema de ovo e galinha é primeiro construir uma libgcc - degradada baseada em cc1, faltando algumas funcionalidades - tais como camadas e manipulação de exceções, então construir - glibc usando esse compilador degradado (o próprio glibc não - degradado), então construir libstdc++. Porém, nessa última - biblioteca faltarão as mesmas funcionalidades que libgcc. -

-

- Esse não é o fim da história: a conclusão do parágrafo - precedente é a de que cc1 é incapaz de construir uma - libstdc++ completamente funcional, porém esse é o único - compilador disponível para construir as bibliotecas C/C++ - durante o estágio 2! Certamente, o compilador construído - durante o estágio 2, cc-lfs, seria capaz de construir aquelas - bibliotecas, porém (1) o sistema de construção do GCC não - sabe que está utilizável em pc; e (2) usá-lo em pc estaria - sob o risco de vinculamento às bibliotecas de pc, dado que - cc-lfs é um compilador nativo. Assim, nós temos de construir - libstdc++ mais tarde, em jaula. -

-
-
-

- Outros - detalhes procedurais -

-

- O compilador cruzado será instalado em um diretório - $LFS/tools separado, dado que - ele não será parte do sistema final. -

-

- Binutils é instalado primeiro, pois a execução de - configure de - ambos GCC e Glibc executa vários testes de características no - montador e no vinculador para determinar quais - características de software habilitar ou desabilitar. Isso é - mais importante do que, inicialmente, alguém possa perceber. - Um GCC ou Glibc configurado incorretamente pode resultar em - um conjunto de ferramentas sutilmente quebrado, onde o - impacto de tal quebra talvez não se manifeste até próximo do - final da construção de uma distribuição inteira. Uma falha de - teste de suíte normalmente destacará tal erro antes que muito - mais trabalho adicional seja realizado. -

-

- O Binutils instala o montador e o vinculador dele em dois - locais, $LFS/tools/bin e - $LFS/tools/$LFS_TGT/bin. As - ferramentas em uma localização são rigidamente vinculadas à - outra. Uma faceta importante do vinculador é a ordem de - procura de biblioteca dele. Informações detalhadas podem ser - obtidas de ld - passando a flag --verbose. Por exemplo, - $LFS_TGT-ld --verbose | grep - SEARCH exibirá os caminhos atuais de procura - e a ordem deles. Isso mostra quais arquivos estão vinculados - por ld pela - compilação de um aplicativo fictício e passagem do - modificador --verbose - ao vinculador. Por exemplo, $LFS_TGT-gcc dummy.c -Wl,--verbose - 2>&1 | grep succeeded exibirá todos os - arquivos abertos com sucesso durante o vinculamento. -

-

- O próximo pacote instalado é o GCC. Um exemplo do que pode - ser visto durante a execução dele de configure é: -

-
checking what assembler to use... /mnt/lfs/tools/i686-lfs-linux-gnu/bin/as
-checking what linker to use... /mnt/lfs/tools/i686-lfs-linux-gnu/bin/ld
-

- Isso é importante pelas razões mencionadas acima. Também - demonstra que o script de configuração do GCC não busca os - diretórios do PATH para encontrar quais ferramentas usar. - Entretanto, durante a operação atual do próprio gcc, os mesmos caminhos de - busca não são necessariamente usados. Para descobrir qual - vinculador padrão gcc usará, execute: - $LFS_TGT-gcc - -print-prog-name=ld. -

-

- Informação detalhada pode ser obtida de gcc passando-se a opção de - linha de comando -v - durante a compilação de um aplicativo fictício. Por exemplo, - gcc -v dummy.c - exibirá informação detalhada acerca do preprocessador, - compilação e estágios da montagem, incluindo os caminhos de - busca incluídos do gcc e a ordem deles. -

-

- Os próximos instalados são os cabeçalhos sanitizados da API - do Linux. Eles permitem a interface da biblioteca C padrão - (Glibc) com características que o kernel Linux proverá. -

-

- O próximo pacote instalado é Glibc. As considerações mais - importantes para a construção do Glibc são o compilador, - ferramentas binárias e os cabeçalhos do kernel. O compilador - geralmente não é um problema dado que Glibc sempre usará o - compilador relacionado ao parâmetro --host passado ao script de - configuração dele; por exemplo, em nosso caso, o compilador - será $LFS_TGT-gcc. As - ferramentas binárias e os cabeçalhos do kernel podem ser um - bocado mais complicados. Dessa maneira, nós não nos - arriscamos e usamos os modificadores de configuração - disponíveis para forçar as seleções corretas. Após a execução - de configure, - verifique o conteúdo do arquivo config.make no diretório build para todos os detalhes importantes. - Observe o uso de CC="$LFS_TGT-gcc" (com - $LFS_TGT expandida) para controlar - quais ferramentas binárias são usadas e o uso das flags - -nostdinc e - -isystem para - controlar o caminho de busca incluído do compilador. Esses - itens destacam um importante aspecto do pacote - Glibc—ele é muito autossuficiente em termos de - maquinário de construção e geralmente não confia em padrões - de conjuntos de ferramentas. -

-

- Como dito acima, a biblioteca C++ padrão é compilada depois, - seguida em - Capítulo 6 por todos os aplicativos que necessitam - deles próprios para serem construídos. O passo de instalação - de todos aqueles pacotes usa os aplicativos instalados no - sistema de arquivos do LFS. -

-

- Ao final do - Capítulo 6 o compilador nativo do LFS é instalado. - Primeiro binutils-pass2 é construído, com a mesma instalação - DESTDIR como os outros programas, - então a segunda passagem de GCC é construída, omitindo - libstdc++ e outras bibliotecas não importantes. Devido a - algumas lógicas estranhas no script configure do GCC, - CC_FOR_TARGET termina como - cc quando o - host for o mesmo que o target, porém for diferente do sistema - de construção. Essa é a razão pela qual CC_FOR_TARGET=$LFS_TGT-gcc é - colocado explicitamente nas opções de configuração. -

-

- Uma vez dentro do ambiente chroot no - Capítulo 7, a primeira tarefa é instalar libstdc++. - Então instalações temporárias de programas necessários para a - operação apropriada do conjunto de ferramentas são - executadas. Deste ponto em diante, o conjunto central de - ferramentas está autocontido e auto-hospedado. No Capítulo 8, - as versões finais de todos os pacotes necessários para um - sistema completamente funcional são construídos, testados e - instalados. -

-
-
-
-
-
-
-

- Instruções - Gerais de Compilação -

-
-
-
-

- Quando da construção de pacotes existem várias suposições - feitas dentro das instruções: -

-
-
    -
  • -

    - Vários dos pacotes recebem patches antes da compilação, - mas apenas quando o patch é necessário para evitar um - problema. Um patch frequentemente é necessário tanto - neste quanto nos seguintes capítulos, mas algumas vezes - em apenas uma localização. Portanto, não se preocupe se - as instruções para um patch baixado pareçam estar - faltando. Mensagens de alerta acerca de offset ou fuzz também talvez sejam - encontradas quando da aplicação de um patch. Não se - preocupe com esses alertas, uma vez que o patch ainda foi - aplicado com sucesso. -

    -
  • -
  • -

    - Durante a compilação da maior parte dos pacotes, - existirão vários alertas que rolarão na tela. Esses são - normais e seguramente podem ser ignorados. Esses alertas - são o que parecem—alertas acerca de uso de sintaxe - C ou C++ obsoleta, mas não inválida. Padrões C mudam com - ampla frequência, e alguns pacotes ainda usam o padrão - antigo. Isso não é um problema, mas gera o alerta. -

    -
  • -
  • -

    - Verifique uma última vez que a variável de ambiente - LFS está configurada - adequadamente: -

    -
    echo $LFS
    -

    - Certifique-se de que a saída mostra o caminho para o - ponto de montagem da partição LFS, que é /mnt/lfs, usando nosso exemplo. -

    -
  • -
  • -

    - Finalmente, dois itens importantes devem ser enfatizados: -

    -
    -

    - Importante -

    -

    - As instruções de construção assumem que as Exigências do - Sistema Anfitrião, incluindo links simbólicos, - foram configuradas adequadamente: -

    -
    -
      -
    • -

      - bash é o shell - em uso. -

      -
    • -
    • -

      - sh - é um link simbólico para bash. -

      -
    • -
    • -

      - /usr/bin/awk é - um link simbólico para gawk. -

      -
    • -
    • -

      - /usr/bin/yacc é - um link simbólico para bison ou um - script pequeno que executa bison. -

      -
    • -
    -
    -
    -
    -

    - Importante -

    -

    - Para reenfatizar o processo de construção: -

    -
    -
      -
    1. -

      - Coloque todos os pacotes e patches em um - diretório que estará acessível a partir do - ambiente chroot, tal como /mnt/lfs/sources/. -

      -
    2. -
    3. -

      - Mude para o diretório dos fontes. -

      -
    4. -
    5. -

      - Para cada pacote: -

      -
      -
        -
      1. -

        - Usando o aplicativo tar, - extraia o pacote para ser construído. Em - - Capítulo 5 e - Capítulo 6, certifique-se de que - você seja a(o) usuária(o) lfs quando - extrair o pacote. -

        -

        - Todos os métodos para obter a árvore de - código fonte sendo construído em-posição, - exceto extrair o tarball de pacote, não são - suportados. Notadamente, usar cp -R - para copiar a árvore de código fonte para - outro lugar pode destruir links e marcas - temporais na árvore de fontes e causar - falha de construção. -

        -
      2. -
      3. -

        - Mude para o diretório criado quando o - pacote foi extraído. -

        -
      4. -
      5. -

        - Siga as instruções do livro para construir - o pacote. -

        -
      6. -
      7. -

        - Mude de volta para o diretório de fontes. -

        -
      8. -
      9. -

        - Delete o diretório de fonte extraído a - menos que instruído o contrário. -

        -
      10. -
      -
      -
    6. -
    -
    -
    -
  • -
-
-
-
-
-
-
-
-

- Capítulo 5. Compilando um - Conjunto de Ferramentas Cruzado -

-
-
-
-
-
-
-
-

- 5.1. Introdução -

-
-
-
-

- Este capítulo mostra como construir um compilador cruzado e - suas ferramentas associadas. Apesar de aqui a compilação - cruzada ser falseada, os princípios são os mesmos que aqueles - para um conjunto de ferramentas cruzado real. -

-

- Os aplicativos compilados neste capítulo serão instalados sob o - diretório $LFS/tools para - mantê-los separados dos arquivos instalados nos capítulos - seguintes. As bibliotecas, por outro lado, são instaladas em - seus locais finais, dado que elas pertencem ao sistema que - queremos construir. -

-
-
-
-
-
-

- 5.2. Binutils-2.38 - - Passagem 1 -

-
-
-
-
-

- O pacote Binutils contém um vinculador, um montador, e outras - ferramentas para manusear arquivos objeto. -

-
-
-
- Tempo aproximado de - construção: 1 UPC -
-
- Espaço em disco - exigido: 620 MB -
-
-
-
-
-

- 5.2.1. Instalação de Binutils Cruzado -

-
-

- Nota -

-

- Volte e releia as notas na seção intitulada Instruções Gerais de - Compilação. Entender as notas rotuladas como importante - pode salvar você de um monte de problemas depois. -

-
-

- É importante que Binutils seja o primeiro pacote compilado, - pois ambos Glibc e GCC realizam vários testes sobre o - vinculador e montador disponíveis para determinar quais de - suas próprias características habilitar. -

-

- A documentação de Binutils recomenda construir Binutils em um - diretório dedicado à construção: -

-
mkdir -v build
-cd       build
-
-

- Nota -

-

- Com a finalidade de que os valores de UPC listados no resto - do livro sejam de qualquer uso, meça o tempo que leva para - construir este pacote desde a configuração até e incluindo - a primeira instalação. Para fazer isso facilmente, - encapsule os comandos em um time desta forma: - time { ../configure ... - && make && make install; }. -

-
-

- Agora prepare Binutils para compilação: -

-
../configure --prefix=$LFS/tools \
-             --with-sysroot=$LFS \
-             --target=$LFS_TGT   \
-             --disable-nls       \
-             --disable-werror
-
-

- O significado das opções do configure: -

-
-
- --prefix=$LFS/tools -
-
-

- Isso diz para o script configure para preparar para - instalar os aplicativos de binutils no diretório - $LFS/tools. -

-
-
- --with-sysroot=$LFS -
-
-

- Para compilação cruzada, isso diz ao sistema de - construção para procurar em $LFS pelas bibliotecas alvo - de sistema conforme necessário. -

-
-
- --target=$LFS_TGT -
-
-

- Por causa da descrição de máquina na variável - LFS_TGT ser ligeiramente - diferente do valor retornado pelo script config.guess, essa - chave dirá ao script configure para - ajustar o sistema de construção do binutils para - construir um vinculador cruzado. -

-
-
- --disable-nls -
-
-

- Isso desabilita internacionalização, uma vez que i18n - não é necessária para as ferramentas temporárias. -

-
-
- --disable-werror -
-
-

- Isso evita que a construção pare no caso de existirem - alertas originários do compilador do anfitrião. -

-
-
-
-

- Continue compilando o pacote: -

-
make
-

- Instale o pacote: -

-
make install
-
-
-

- Detalhes deste pacote estão localizados em Seção 8.18.2, - “Conteúdo de Binutils.” -

-
-
-
-
-
-
-

- 5.3. GCC-11.2.0 - Passagem - 1 -

-
-
-
-
-

- O pacote GCC contém a GNU compiler collection, o qual inclui - os compiladores C e C++. -

-
-
-
- Tempo aproximado de - construção: 11 UPC -
-
- Espaço em disco - exigido: 3,3 GB -
-
-
-
-
-

- 5.3.1. Instalação de GCC Cruzado -

-

- GCC exige os pacotes GMP, MPFR e MPC. Uma vez que esses - pacotes talvez não estejam incluídos na sua distribuição - anfitriã, eles serão construídos com GCC. Desempacote cada - pacote dentro do diretório de fonte de GCC e renomeie os - diretórios resultantes de forma que os procedimentos de - construção de GCC automaticamente os usarão: -

-
-

- Nota -

-

- Existem mal-entendidos frequentes sobre este capítulo. Os - procedimentos são os mesmos que todos os outros capítulos - explicados anteriormente (Instruções de construção de pacote). - Primeiro extraia o tarball de gcc a partir do diretório de - fontes e então mude para o diretório criado. Somente então - deveria você prosseguir com as instruções abaixo. -

-
-
tar -xf ../mpfr-4.1.0.tar.xz
-mv -v mpfr-4.1.0 mpfr
-tar -xf ../gmp-6.2.1.tar.xz
-mv -v gmp-6.2.1 gmp
-tar -xf ../mpc-1.2.1.tar.gz
-mv -v mpc-1.2.1 mpc
-

- Em anfitriões x86_64, configure o nome padrão de diretório - para bibliotecas de 64 bits para lib: -

-
case $(uname -m) in
-  x86_64)
-    sed -e '/m64=/s/lib64/lib/' \
-        -i.orig gcc/config/i386/t-linux64
- ;;
-esac
-

- A documentação de GCC recomenda construir GCC em um diretório - de construção dedicado: -

-
mkdir -v build
-cd       build
-

- Prepare GCC para compilação: -

-
../configure                  \
-    --target=$LFS_TGT         \
-    --prefix=$LFS/tools       \
-    --with-glibc-version=2.35 \
-    --with-sysroot=$LFS       \
-    --with-newlib             \
-    --without-headers         \
-    --enable-initfini-array   \
-    --disable-nls             \
-    --disable-shared          \
-    --disable-multilib        \
-    --disable-decimal-float   \
-    --disable-threads         \
-    --disable-libatomic       \
-    --disable-libgomp         \
-    --disable-libquadmath     \
-    --disable-libssp          \
-    --disable-libvtv          \
-    --disable-libstdcxx       \
-    --enable-languages=c,c++
-
-

- O significado das opções de configure: -

-
-
- --with-glibc-version=2.35 -
-
-

- Essa opção especifica a versão de glibc a qual será - usada no alvo. Ela não é relevante para a libc da - distro anfitriã, pois tudo compilado por gcc passagem 1 - executará no ambiente chroot, o qual é isolado de libc - da distro anfitriã. -

-
-
- --with-newlib -
-
-

- Uma vez que uma biblioteca C funcional ainda não está - disponível, isso assegura que a constante inhibit_libc - esteja definida quando da construção de libgcc. Isso - evita a compilação de qualquer código que exija suporte - de libc. -

-
-
- --without-headers -
-
-

- Quando da criação de um compilador cruzado completo, - GCC exige cabeçalhos padrão compatíveis com o sistema - alvo. Para nossos propósitos esses cabeçalhos não serão - necessários. Essa chave evita que GCC procure por eles. -

-
-
- --enable-initfini-array -
-
-

- Essa chave força o uso de algumas estruturas internas - de dados que são necessárias, porém não podem ser - detectadas quando da construção de um compilador - cruzado. -

-
-
- --disable-shared -
-
-

- Essa chave força GCC a vincular suas bibliotecas - internas estaticamente. Nós precisamos disso, pois as - bibliotecas compartilhadas exigem glibc, que ainda não - está instalado no sistema alvo. -

-
-
- --disable-multilib -
-
-

- Em x86_64, LFS não suporta uma configuração multilib. - Essa chave é inofensiva para x86. -

-
-
- --disable-decimal-float, - --disable-threads, --disable-libatomic, - --disable-libgomp, --disable-libquadmath, - --disable-libssp, --disable-libvtv, - --disable-libstdcxx -
-
-

- Essas chaves desabilitam suporte para a extensão de - ponto flutuante decimal, threading, libatomic, libgomp, - libquadmath, libssp, libvtv, e a biblioteca padrão C++ - respectivamente. Essas características falharão na - compilação quando da construção de um compilador - cruzado e não são necessárias para a tarefa de compilar - cruzadamente a libc temporária. -

-
-
- --enable-languages=c,c++ -
-
-

- Essa opção garante que apenas os compiladores C e C++ - sejam construídos. Essas são as únicas linguagens - necessárias agora. -

-
-
-
-

- Compile GCC executando: -

-
make
-

- Instale o pacote: -

-
make install
-

- Essa construção de GCC instalou um par de cabeçalhos internos - de sistema. Normalmente um deles, limits.h, sequencialmente incluiria o - cabeçalho limits.h de sistema - correspondente, nesse caso, $LFS/usr/include/limits.h. Entretanto, ao - tempo dessa construção de GCC, $LFS/usr/include/limits.h não existe, de - forma que o cabeçalho interno recém instalado é um arquivo - parcial, autocontido, e não inclui as características - estendidas do cabeçalho de sistema. Isso é adequado para a - construção de glibc, porém o cabeçalho interno completo será - necessário mais tarde. Crie uma versão completa do cabeçalho - interno usando um comando que é idêntico ao que o sistema de - construção de GCC faz em circunstâncias normais: -

-
cd ..
-cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \
-  `dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/install-tools/include/limits.h
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.26.2, “Conteúdo - de GCC.” -

-
-
-
-
-
-
-

- 5.4. Cabeçalhos da API - do Linux-5.16.9 -

-
-
-
-
-

- Os Cabeçalhos da API do Linux (em linux-5.16.9.tar.xz) expõem - a API do kernel para uso por Glibc. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 1,2 GB -
-
-
-
-
-

- 5.4.1. Instalação dos Cabeçalhos da API do Linux -

-

- O kernel Linux precisa expor uma Interface de Programação de - Aplicativos (API) para a biblioteca C do sistema (Glibc em - LFS) usar. Isso é feito por meio de sanitizar vários arquivos - de cabeçalho C que são incluídos no tarball de fonte de - kernel Linux. -

-

- Certifique-se de que não existem arquivos obsoletos embutidos - no pacote: -

-
make mrproper
-

- Agora extraia os cabeçalhos de kernel visíveis ao usuário a - partir do fonte. O alvo recomendado de make headers_install não pode ser - usado, pois ele exige rsync, - que talvez não esteja disponível. Os cabeçalhos são primeiro - colocados em ./usr, então - copiados para a localização necessária. -

-
make headers
-find usr/include -name '.*' -delete
-rm usr/include/Makefile
-cp -rv usr/include $LFS/usr
-
-
-

- 5.4.2. Conteúdo dos Cabeçalhos - da API do Linux -

-
-
-
- Cabeçalhos instalados: - /usr/include/asm/*.h, - /usr/include/asm-generic/*.h, /usr/include/drm/*.h, - /usr/include/linux/*.h, /usr/include/misc/*.h, - /usr/include/mtd/*.h, /usr/include/rdma/*.h, - /usr/include/scsi/*.h, /usr/include/sound/*.h, - /usr/include/video/*.h, and /usr/include/xen/*.h -
-
- Diretórios instalados: - /usr/include/asm, - /usr/include/asm-generic, /usr/include/drm, - /usr/include/linux, /usr/include/misc, /usr/include/mtd, - /usr/include/rdma, /usr/include/scsi, /usr/include/sound, - /usr/include/video, and /usr/include/xen -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- /usr/include/asm/*.h -

-
-

- Os Cabeçalhos API ASM Linux -

-
-

- /usr/include/asm-generic/*.h -

-
-

- Os Cabeçalhos Genéricos API ASM Linux -

-
-

- /usr/include/drm/*.h -

-
-

- Os Cabeçalhos API DRM Linux -

-
-

- /usr/include/linux/*.h -

-
-

- Os Cabeçalhos Linux API Linux -

-
-

- /usr/include/misc/*.h -

-
-

- Os Cabeçalhos Miscelâneas API Linux -

-
-

- /usr/include/mtd/*.h -

-
-

- Os Cabeçalhos API MTD Linux -

-
-

- /usr/include/rdma/*.h -

-
-

- Os Cabeçalhos API RDMA Linux -

-
-

- /usr/include/scsi/*.h -

-
-

- Os Cabeçalhos API SCSI Linux -

-
-

- /usr/include/sound/*.h -

-
-

- Os Cabeçalhos de Som API Linux -

-
-

- /usr/include/video/*.h -

-
-

- Os Cabeçalhos de Vídeo API Linux -

-
-

- /usr/include/xen/*.h -

-
-

- Os Cabeçalhos Xen API Linux -

-
-
-
-
-
-
-
-
-

- 5.5. Glibc-2.35 -

-
-
-
-
-

- O pacote Glibc contém a biblioteca C principal. Essa - biblioteca fornece as rotinas básicas para alocação de - memória, busca em diretórios, abertura e fechamento de - arquivos, leitura e escrita de arquivos, manuseio de - sequências de caracteres, correspondência de padrões, - aritmética, e daí por diante. -

-
-
-
- Tempo aproximado de - construção: 4,3 UPC -
-
- Espaço em disco - exigido: 818 MB -
-
-
-
-
-

- 5.5.1. Instalação de Glibc -

-

- Primeiro, crie um link simbólico para conformidade com LSB. - Adicionalmente, para x86_64, crie um link simbólico de - compatibilidade exigido para a operação adequada do - carregador dinâmico de biblioteca: -

-
case $(uname -m) in
-    i?86)   ln -sfv ld-linux.so.2 $LFS/lib/ld-lsb.so.3
-    ;;
-    x86_64) ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64
-            ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3
-    ;;
-esac
-
-

- Nota -

-

- O comando acima está correto. O comando ln tem umas poucas - versões sintáticas, de forma que tenha certeza de verificar - info coreutils - ln e ln(1) - antes de relatar o que você talvez pense que seja um erro. -

-
-

- Alguns dos aplicativos Glibc usam o diretório não conforme - com FHS /var/db para armazenar - seus dados em tempo de execução. Aplique a seguinte correção - para fazer com que tais aplicativos armazenem seus dados em - tempo de execução nos locais conformes com FHS: -

-
patch -Np1 -i ../glibc-2.35-fhs-1.patch
-

- A documentação de Glibc recomenda construir Glibc em um - diretório dedicado à construção: -

-
mkdir -v build
-cd       build
-

- Assegure que os utilitários ldconfig e sln sejam instalados em - /usr/sbin: -

-
echo "rootsbindir=/usr/sbin" > configparms
-

- A seguir, prepare Glibc para compilação: -

-
../configure                             \
-      --prefix=/usr                      \
-      --host=$LFS_TGT                    \
-      --build=$(../scripts/config.guess) \
-      --enable-kernel=3.2                \
-      --with-headers=$LFS/usr/include    \
-      libc_cv_slibdir=/usr/lib
-
-

- O significado das opções de configure: -

-
-
- --host=$LFS_TGT, - --build=$(../scripts/config.guess) -
-
-

- O efeito combinado dessas chaves é o de que o sistema - de construção do Glibc se autoconfigura para ser - compilado cruzadamente, usando o vinculador cruzado e - compilador cruzado em $LFS/tools. -

-
-
- --enable-kernel=3.2 -
-
-

- Isso diz a Glibc para compilar a biblioteca com suporte - para kernels Linux 3.2 e posteriores. Contornos para - kernels antigos não estão habilitados. -

-
-
- --with-headers=$LFS/usr/include -
-
-

- Isso diz a Glibc para compilar a si mesmo com os - cabeçalhos recentemente instalados no diretório - $LFS/usr/include, de forma que ele saiba exatamente - quais características o kernel tem e possa otimizar-se - adequadamente. -

-
-
- libc_cv_slibdir=/usr/lib -
-
-

- Isso garante que a biblioteca seja instalada em - /usr/lib em vez do padrão /lib64 em máquinas de 64 - bits. -

-
-
-
-

- Durante este estágio o seguinte alerta pode aparecer: -

-
-
-
configure: WARNING:
-*** These auxiliary programs are missing or
-*** incompatible versions: msgfmt
-*** some features will be disabled.
-*** Check the INSTALL file for required versions.
-
-
-

- O aplicativo msgfmt faltando ou - incompatível geralmente é inofensivo. Esse aplicativo - msgfmt é parte - do pacote Gettext que a distribuição anfitriã deveria - fornecer. -

-
-

- Nota -

-

- Tem havido relatos de que esse pacote talvez falhe quando - da construção como um "parallel make". Se isso ocorrer, - então reexecute o comando make com uma opção "-j1". -

-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
-

- Atenção -

-

- Se LFS não estiver adequadamente - configurada, e a despeito das recomendações, você estiver - construindo como root, - então o próximo comando instalará a recém construída glibc - em seu sistema anfitrião, o que possivelmente o tornará - inutilizável. Portanto, verifique duas vezes se o ambiente - está corretamente configurado, antes de executar o seguinte - comando. -

-
-
make DESTDIR=$LFS install
-
-

- O significado da opção make install: -

-
-
- DESTDIR=$LFS -
-
-

- A variável DESTDIR de make é - usada por quase todos os pacotes para definir a - localização onde o pacote deveria ser instalado. Se ela - não estiver configurada, então o padrão é o diretório - raiz (/). Aqui nós - especificamos que o pacote seja instalado em - $LFS, que se tornará a - raiz após Seção 7.4, - “Entrando no Ambiente Chroot”. -

-
-
-
-

- Corrija caminho codificado rigidamente para o carregador de - executável em script ldd: -

-
sed '/RTLDLIST=/s@/usr@@g' -i $LFS/usr/bin/ldd
-
-

- Cuidado -

-

- Neste ponto, é imperativo parar e certificar-se de que as - funções básicas (compilar e lincar) do novo conjunto de - ferramentas estão funcionando como esperado. Para realizar - uma verificação de sanidade, execute os seguintes comandos: -

-
echo 'int main(){}' > dummy.c
-$LFS_TGT-gcc dummy.c
-readelf -l a.out | grep '/ld-linux'
-

- Se tudo estiver funcionando corretamente, então não - deveriam existir quaisquer erros, e a saída do último - comando será na forma: -

-
[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
-

- Note que para máquinas de 32 bits, o nome do interpretador - será /lib/ld-linux.so.2. -

-

- Se a saída não for mostrada como acima ou não existir saída - nenhuma, então alguma coisa está errada. Investigue e - retrace os passos para encontrar onde está o problema e - corrija-o. Esse problema deve ser resolvido antes de - continuar. -

-

- Uma vez que tudo esteja bem, limpe os arquivos de teste: -

-
rm -v dummy.c a.out
-
-
-

- Nota -

-

- Construir pacotes no próximo capítulo servirá como uma - verificação adicional de que o conjunto de ferramentas foi - construído adequadamente. Se algum pacote, especialmente - binutils-passagem 2 ou gcc-passagem 2, falhar na - construção, então isso é uma indicação de que alguma coisa - deu errado com as instalações anteriores de Binutils, GCC - ou Glibc. -

-
-

- Agora que nosso conjunto de ferramentas cruzadas está - completa, finalize a instalação do cabeçalho limits.h. Para - fazer isso, execute um utilitário fornecido pelas(os) - desenvolvedoras(os) de GCC: -

-
$LFS/tools/libexec/gcc/$LFS_TGT/11.2.0/install-tools/mkheaders
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.5.3, “Conteúdo - de Glibc.” -

-
-
-
-
-
-
-

- 5.6. Libstdc++ - oriundo de GCC-11.2.0, Passagem 1 -

-
-
-
-
-

- Libstdc++ é a biblioteca padrão C++. Ela é necessária para - compilar código C++ (parte de GCC é escrito em C++), porém - nós tivemos que adiar sua instalação quando construímos - gcc-pass1, pois ela - depende de glibc, que ainda não estava disponível no - diretório alvo. -

-
-
-
- Tempo aproximado de - construção: 0,4 UPC -
-
- Espaço em disco - exigido: 818 MB -
-
-
-
-
-

- 5.6.1. Instalação de Libstdc++ Alvo -

-
-

- Nota -

-

- Libstdc++ é parte dos - fontes de GCC. Você deveria primeiro desempacotar o tarball - de GCC e mudar para o diretório gcc-11.2.0. -

-
-

- Crie um diretório de construção separado para libstdc++ e - entre nele: -

-
mkdir -v build
-cd       build
-

- Prepare libstdc++ para compilação: -

-
../libstdc++-v3/configure           \
-    --host=$LFS_TGT                 \
-    --build=$(../config.guess)      \
-    --prefix=/usr                   \
-    --disable-multilib              \
-    --disable-nls                   \
-    --disable-libstdcxx-pch         \
-    --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/11.2.0
-
-

- O significado das opções de configure: -

-
-
- --host=... -
-
-

- Especifica que o compilador cruzado que nós acabamos de - construir deveria ser usado em vez daquele em - /usr/bin. -

-
-
- --disable-libstdcxx-pch -
-
-

- Essa chave evita a instalação de arquivos include - pré-compilados, os quais não são necessários neste - estágio. -

-
-
- --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/11.2.0 -
-
-

- Isso especifica o diretório de instalação para arquivos - include. Por causa de libstdc++ ser a biblioteca padrão - C++ para LFS, esse diretório deveria coincidir com a - localização onde o compilador C++ ($LFS_TGT-g++) - procuraria pelos arquivos include C++ padrão. Em uma - construção normal, essa informação é automaticamente - passada para as opções configure de - libstdc++ a partir do diretório de nível de topo. Em - nosso caso, essa informação deve ser explicitamente - dada. O compilador C++ precederá o caminho raiz de - sistema $LFS - (especificado quando da construção de GCC passagem 1) - para o caminho de pesquisa de arquivo include, de forma - que ele atualmente pesquisará em $LFS/tools/$LFS_TGT/include/c++/11.2.0. - A combinação da variável DESTDIR (no comando - make - install abaixo) e essa chave garante - instalar os cabeçalhos lá. -

-
-
-
-

- Compile libstdc++ executando: -

-
make
-

- Instale a biblioteca: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.26.2, “Conteúdo - de GCC.” -

-
-
-
-
-
-
-
-

- Capítulo 6. Compilando - Cruzadamente Ferramentas Temporárias -

-
-
-
-
-
-
-
-

- 6.1. Introdução -

-
-
-
-

- Este capítulo mostra como compilar cruzadamente utilitários - básicos usando o recém construído conjunto de ferramentas - cruzadas. Esses utilitários são instalados no local final - deles, porém ainda não podem ser usados. Tarefas básicas ainda - dependem das ferramentas do anfitrião. Apesar disso, as - bibliotecas instaladas são usadas quando da vinculação. -

-

- O uso dos utilitários será possível no próximo capítulo após - entrada no ambiente chroot. Porém, todos os pacotes - construídos no presente capítulo precisam ser construídos antes - que façamos isso. Dessa forma nós ainda não podemos ficar - independentes do sistema anfitrião. -

-

- Uma vez mais, permita-nos relembrar que a configuração - inapropriada de LFS junto com a - construção como root, talvez - torne seu computador inutilizável. Este capítulo inteiro - precisa ser feito como usuária(o) lfs, com o ambiente conforme descrito em - Seção 4.4, - “Configurando o Ambiente”. -

-
-
-
-
-
-

- 6.2. M4-1.4.19 -

-
-
-
-
-

- O pacote M4 contém um processador de macro. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 31 MB -
-
-
-
-
-

- 6.2.1. Instalação de M4 -

-

- Prepare M4 para compilação: -

-
./configure --prefix=/usr   \
-            --host=$LFS_TGT \
-            --build=$(build-aux/config.guess)
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.12.2, “Conteúdo - de M4.” -

-
-
-
-
-
-
-

- 6.3. Ncurses-6.3 -

-
-
-
-
-

- O pacote Ncurses contém bibliotecas para manipulação de telas - de caracteres independente de terminal. -

-
-
-
- Tempo aproximado de - construção: 0,7 UPC -
-
- Espaço em disco - exigido: 50 MB -
-
-
-
-
-

- 6.3.1. Instalação de Ncurses -

-

- Primeiro, assegure que gawk é encontrado primeiro - durante a configuração: -

-
sed -i s/mawk// configure
-

- Então, execute os seguintes comandos para construir o - aplicativo tic no anfitrião de construção: -

-
mkdir build
-pushd build
-  ../configure
-  make -C include
-  make -C progs tic
-popd
-

- Prepare Ncurses para compilação: -

-
./configure --prefix=/usr                \
-            --host=$LFS_TGT              \
-            --build=$(./config.guess)    \
-            --mandir=/usr/share/man      \
-            --with-manpage-format=normal \
-            --with-shared                \
-            --without-debug              \
-            --without-ada                \
-            --without-normal             \
-            --disable-stripping          \
-            --enable-widec
-
-

- O significado das novas opções de - configure: -

-
-
- --with-manpage-format=normal -
-
-

- Isso evita que Ncurses instale páginas comprimidas de - manual, o que talvez aconteceu se a própria - distribuição anfitriã tiver páginas comprimidas de - manual. -

-
-
- --without-ada -
-
-

- Isso assegura que Ncurses não construa suporte para o - compilador Ada, o qual talvez esteja presente no - anfitrião, porém não estará disponível até que nós - entremos no ambiente chroot. -

-
-
- --disable-stripping -
-
-

- Essa chave impede o sistema de construção de despojar - os aplicativos usando o aplicativo strip oriundo do - anfitrião. O uso de ferramentas de anfitrião em - aplicativo compilado cruzadamente pode causar falha. -

-
-
- --enable-widec -
-
-

- Essa chave faz com que bibliotecas de caracteres largos - (por exemplo, libncursesw.so.6.3) sejam construídas - em vez de bibliotecas normais (por exemplo, - libncurses.so.6.3). Essas - bibliotecas de caracteres largos são utilizáveis tanto - em locales de múltiplos bytes quanto em tradicionais de - oito (08) bits, enquanto bibliotecas normais funcionam - adequadamente só em locales de oito (08) bits. - Bibliotecas de caracteres largos e bibliotecas normais - são compatíveis em fonte, mas não são compatíveis em - binário. -

-
-
- --without-normal -
-
-

- Essa chave desabilita a construção e instalação da - maioria das bibliotecas estáticas. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS TIC_PATH=$(pwd)/build/progs/tic install
-echo "INPUT(-lncursesw)" > $LFS/usr/lib/libncurses.so
-
-

- O significado das opções de install: -

-
-
- TIC_PATH=$(pwd)/build/progs/tic -
-
-

- Nós precisamos passar o caminho do recém construído - tic apto - para executar na máquina de construção, de forma que a - base de dados de terminal possa ser criada sem erros. -

-
-
- echo - "INPUT(-lncursesw)" > - $LFS/usr/lib/libncurses.so -
-
-

- A biblioteca libncurses.so é necessária para uns - poucos pacotes que nós construiremos breve. Nós criamos - esse pequeno script vinculador, pois isso é o que é - feito em - Capítulo 8. -

-
-
-
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.28.2, - “Conteúdo de Ncurses.” -

-
-
-
-
-
-
-

- 6.4. Bash-5.1.16 -

-
-
-
-
-

- O pacote Bash contém o Bourne-Again SHell. -

-
-
-
- Tempo aproximado de - construção: 0,4 UPC -
-
- Espaço em disco - exigido: 64 MB -
-
-
-
-
-

- 6.4.1. Instalação de Bash -

-

- Prepare Bash para compilação: -

-
./configure --prefix=/usr                   \
-            --build=$(support/config.guess) \
-            --host=$LFS_TGT                 \
-            --without-bash-malloc
-
-

- O significado das opções de configure: -

-
-
- --without-bash-malloc -
-
-

- Essa opção desliga o uso da função de alocação de - memória do Bash (malloc) - a qual é conhecida por causar falhas de segmentação. Ao - se desligar essa opção, Bash usará as funções - malloc originárias de - Glibc que são mais estáveis. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-

- Faça um link para os aplicativos que usam sh para um shell: -

-
ln -sv bash $LFS/bin/sh
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.34.2, “Conteúdo - do Bash.” -

-
-
-
-
-
-
-

- 6.5. Coreutils-9.0 -

-
-
-
-
-

- O pacote Coreutils contém utilitários para mostrar e - configurar as características básicas de sistema. -

-
-
-
- Tempo aproximado de - construção: 0,6 UPC -
-
- Espaço em disco - exigido: 158 MB -
-
-
-
-
-

- 6.5.1. Instalação de Coreutils -

-

- Prepare Coreutils para compilação: -

-
./configure --prefix=/usr                     \
-            --host=$LFS_TGT                   \
-            --build=$(build-aux/config.guess) \
-            --enable-install-program=hostname \
-            --enable-no-install-program=kill,uptime
-
-

- O significado das opções de configure: -

-
-
- --enable-install-program=hostname -
-
-

- Isso habilita o binário hostname para ser - construído e instalado – ele é desabilitado por - padrão, porém é exigido pela suíte de teste de Perl. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-

- Mova aplicativos para seus locais finais esperados. Apesar de - isso não ser necessário neste ambiente temporário, nós - precisamos fazer isso, pois alguns aplicativos codificam - rigidamente locais de executável: -

-
mv -v $LFS/usr/bin/chroot              $LFS/usr/sbin
-mkdir -pv $LFS/usr/share/man/man8
-mv -v $LFS/usr/share/man/man1/chroot.1 $LFS/usr/share/man/man8/chroot.8
-sed -i 's/"1"/"8"/'                    $LFS/usr/share/man/man8/chroot.8
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.53.2, - “Conteúdo do Coreutils.” -

-
-
-
-
-
-
-

- 6.6. Diffutils-3.8 -

-
-
-
-
-

- O pacote Diffutils contém aplicativos que mostram as - diferenças entre arquivos ou diretórios. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 27 MB -
-
-
-
-
-

- 6.6.1. Instalação de Diffutils -

-

- Prepare Diffutils para compilação: -

-
./configure --prefix=/usr --host=$LFS_TGT
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.55.2, - “Conteúdo do Diffutils.” -

-
-
-
-
-
-
-

- 6.7. File-5.41 -

-
-
-
-
-

- O pacote File contém um utilitário para determinar o tipo de - um dado arquivo ou arquivos. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 32 MB -
-
-
-
-
-

- 6.7.1. Instalação de File -

-

- O comando file - no anfitrião de construção precisa ser da mesma versão que - aquele que nós estamos construindo com a finalidade de criar - o arquivo de assinatura. Execute os seguintes comandos para - construí-lo: -

-
mkdir build
-pushd build
-  ../configure --disable-bzlib      \
-               --disable-libseccomp \
-               --disable-xzlib      \
-               --disable-zlib
-  make
-popd
-
-

- O significado da nova opção de configure: -

-
-
- --disable-* -
-
-

- O script de configuração tenta usar alguns pacotes - originários da distribuição anfitriã se os arquivos de - biblioteca correspondentes existirem. Isso talvez cause - falha de compilação se um arquivo de biblioteca - existir, porém os arquivos de cabeçalhos - correspondentes não. Essas opções impedem o uso dessas - capacidades desnecessárias a partir do anfitrião. -

-
-
-
-

- Prepare File para compilação: -

-
./configure --prefix=/usr --host=$LFS_TGT --build=$(./config.guess)
-

- Compile o pacote: -

-
make FILE_COMPILE=$(pwd)/build/src/file
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.10.2, “Conteúdo - de File.” -

-
-
-
-
-
-
-

- 6.8. Findutils-4.9.0 -

-
-
-
-
-

- O pacote Findutils contém aplicativos para procurar arquivos. - Esses aplicativos são fornecidos para procurar recursivamente - dentro de uma árvore de diretório e para criar, manter e - buscar um banco de dados (geralmente mais rápido que o find - recursivo, porém não é confiável se o banco de dados não for - atualizado recentemente). -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 42 MB -
-
-
-
-
-

- 6.8.1. Instalação de Findutils -

-

- Prepare Findutils para compilação: -

-
./configure --prefix=/usr                   \
-            --localstatedir=/var/lib/locate \
-            --host=$LFS_TGT                 \
-            --build=$(build-aux/config.guess)
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.57.2, - “Conteúdo do Findutils.” -

-
-
-
-
-
-
-

- 6.9. Gawk-5.1.1 -

-
-
-
-
-

- O pacote Gawk contém aplicativos para manipular arquivos de - texto. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 45 MB -
-
-
-
-
-

- 6.9.1. Instalação de Gawk -

-

- Primeiro, garanta que alguns arquivos desnecessários não - sejam instalados: -

-
sed -i 's/extras//' Makefile.in
-

- Prepare Gawk para compilação: -

-
./configure --prefix=/usr   \
-            --host=$LFS_TGT \
-            --build=$(build-aux/config.guess)
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.56.2, “Conteúdo - do Gawk.” -

-
-
-
-
-
-
-

- 6.10. Grep-3.7 -

-
-
-
-
-

- O pacote Grep contém aplicativos para procura ao longo do - conteúdo de arquivos. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 26 MB -
-
-
-
-
-

- 6.10.1. Instalação de Grep -

-

- Prepare Grep para compilação: -

-
./configure --prefix=/usr   \
-            --host=$LFS_TGT
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.33.2, “Conteúdo - do Grep.” -

-
-
-
-
-
-
-

- 6.11. Gzip-1.11 -

-
-
-
-
-

- O pacote Gzip contém aplicativos para compressão e - descompressão de arquivos. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 11 MB -
-
-
-
-
-

- 6.11.1. Instalação de Gzip -

-

- Prepare Gzip para compilação: -

-
./configure --prefix=/usr --host=$LFS_TGT
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.60.2, “Conteúdo - do Gzip.” -

-
-
-
-
-
-
-

- 6.12. Make-4.3 -

-
-
-
-
-

- O pacote Make contém um aplicativo para controlar a geração - de executáveis e outros arquivos não fonte de um pacote a - partir de arquivos fonte. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 15 MB -
-
-
-
-
-

- 6.12.1. Instalação de Make -

-

- Prepare Make para compilação: -

-
./configure --prefix=/usr   \
-            --without-guile \
-            --host=$LFS_TGT \
-            --build=$(build-aux/config.guess)
-
-

- O significado da nova opção de configure: -

-
-
- --without-guile -
-
-

- Apesar de nós estarmos compilando cruzadamente, - configure tenta usar guile a partir do anfitrião de - construção se encontrá-lo. Isso provoca falha de - compilação, de forma que essa chave impede o uso de - guile. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.64.2, “Conteúdo - do Make.” -

-
-
-
-
-
-
-

- 6.13. Patch-2.7.6 -

-
-
-
-
-

- O pacote Patch contém um aplicativo para modificar ou criar - arquivos por aplicação de um arquivo patch - tipicamente criado pelo aplicativo diff. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 12 MB -
-
-
-
-
-

- 6.13.1. Instalação de Patch -

-

- Prepare Patch para compilação: -

-
./configure --prefix=/usr   \
-            --host=$LFS_TGT \
-            --build=$(build-aux/config.guess)
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.65.2, - “Conteúdo do Patch.” -

-
-
-
-
-
-
-

- 6.14. Sed-4.8 -

-
-
-
-
-

- O pacote Sed contém um editor de fluxo. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 20 MB -
-
-
-
-
-

- 6.14.1. Instalação de Sed -

-

- Prepare Sed para compilação: -

-
./configure --prefix=/usr   \
-            --host=$LFS_TGT
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.29.2, “Conteúdo - do Sed.” -

-
-
-
-
-
-
-

- 6.15. Tar-1.34 -

-
-
-
-
-

- O pacote Tar fornece a habilidade para criar arquivamentos - tar bem como realizar vários outros tipos de manipulação de - arquivamento. Tar pode ser usado em arquivamentos previamente - criados para extrair arquivos, para armazenar arquivos - adicionais, ou para atualizar ou listar arquivos que já foram - armazenados. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 38 MB -
-
-
-
-
-

- 6.15.1. Instalação de Tar -

-

- Prepare Tar para compilação: -

-
./configure --prefix=/usr                     \
-            --host=$LFS_TGT                   \
-            --build=$(build-aux/config.guess)
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.66.2, “Conteúdo - do Tar.” -

-
-
-
-
-
-
-

- 6.16. Xz-5.2.5 -

-
-
-
-
-

- O pacote Xz contém aplicativos para compressão e - descompressão de arquivos. Ele fornece capacidades para os - formatos de compressão lzma e o mais novo xz. Comprimir - arquivos de texto com xz gera uma melhor - percentagem de compressão que os tradicionais comandos - gzip ou - bzip2. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 15 MB -
-
-
-
-
-

- 6.16.1. Instalação de Xz -

-

- Prepare Xz para compilação: -

-
./configure --prefix=/usr                     \
-            --host=$LFS_TGT                   \
-            --build=$(build-aux/config.guess) \
-            --disable-static                  \
-            --docdir=/usr/share/doc/xz-5.2.5
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.8.2, “Conteúdo de - Xz.” -

-
-
-
-
-
-
-

- 6.17. Binutils-2.38 - - Passagem 2 -

-
-
-
-
-

- O pacote Binutils contém um vinculador, um montador, e outras - ferramentas para manusear arquivos objeto. -

-
-
-
- Tempo aproximado de - construção: 1,3 UPC -
-
- Espaço em disco - exigido: 520 MB -
-
-
-
-
-

- 6.17.1. Instalação de Binutils -

-

- Binutils entrega uma cópia desatualizada de libtool no - tarball. Ela carece de suporte de raiz de sistema de forma - que os binários produzidos serão erroneamente vinculados à - bibliotecas originárias da distribuição anfitriã. Contorne - esse problema: -

-
sed '6009s/$add_dir//' -i ltmain.sh
-

- Crie um diretório de construção separado novamente: -

-
mkdir -v build
-cd       build
-

- Prepare Binutils para compilação: -

-
../configure                   \
-    --prefix=/usr              \
-    --build=$(../config.guess) \
-    --host=$LFS_TGT            \
-    --disable-nls              \
-    --enable-shared            \
-    --disable-werror           \
-    --enable-64-bit-bfd
-
-

- O significado das novas opções de - configure: -

-
-
- --enable-shared -
-
-

- Constrói libbfd como uma - biblioteca compartilhada. -

-
-
- --enable-64-bit-bfd -
-
-

- Habilita suporte de 64 bits (em anfitriões com tamanhos - de palavra mais estreitos). Talvez não seja necessário - em sistemas de 64 bits, porém não causa dano. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.18.2, - “Conteúdo de Binutils.” -

-
-
-
-
-
-
-

- 6.18. GCC-11.2.0 - - Passagem 2 -

-
-
-
-
-

- O pacote GCC contém a GNU compiler collection, o qual inclui - os compiladores C e C++. -

-
-
-
- Tempo aproximado de - construção: 11 UPC -
-
- Espaço em disco - exigido: 3,3 GB -
-
-
-
-
-

- 6.18.1. Instalação de GCC -

-

- Como na primeira construção de GCC, os pacotes GMP, MPFR, e - MPC são exigidos. Desempacote os tarballs e mova-os para os - nomes de diretório exigidos: -

-
tar -xf ../mpfr-4.1.0.tar.xz
-mv -v mpfr-4.1.0 mpfr
-tar -xf ../gmp-6.2.1.tar.xz
-mv -v gmp-6.2.1 gmp
-tar -xf ../mpc-1.2.1.tar.gz
-mv -v mpc-1.2.1 mpc
-

- Se construindo em x86_64, então mude o nome padrão de - diretório para bibliotecas de 64 bits para lib: -

-
case $(uname -m) in
-  x86_64)
-    sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64
-  ;;
-esac
-

- Crie um diretório de construção separado novamente: -

-
mkdir -v build
-cd       build
-

- Crie um link simbólico que permite que libgcc seja construída - com suporte posix de camadas: -

-
mkdir -pv $LFS_TGT/libgcc
-ln -s ../../../libgcc/gthr-posix.h $LFS_TGT/libgcc/gthr-default.h
-

- Antes de iniciar a construção de GCC, lembre-se de - desconfigurar quaisquer variáveis de ambiente que substituam - os sinalizadores de otimização padrão. -

-

- Agora prepare GCC para compilação: -

-
../configure                                       \
-    --build=$(../config.guess)                     \
-    --host=$LFS_TGT                                \
-    --prefix=/usr                                  \
-    CC_FOR_TARGET=$LFS_TGT-gcc                     \
-    --with-build-sysroot=$LFS                      \
-    --enable-initfini-array                        \
-    --disable-nls                                  \
-    --disable-multilib                             \
-    --disable-decimal-float                        \
-    --disable-libatomic                            \
-    --disable-libgomp                              \
-    --disable-libquadmath                          \
-    --disable-libssp                               \
-    --disable-libvtv                               \
-    --disable-libstdcxx                            \
-    --enable-languages=c,c++
-
-

- O significado das novas opções de - configure: -

-
-
- -with-build-sysroot=$LFS -
-
-

- Normalmente, usar --host garante que um - compilador cruzado seja usado para construir GCC, e que - o compilador sabe que tem que procurar por cabeçalhos e - bibliotecas em $LFS. - Porém, o sistema de construção de GCC usa outras - ferramentas, que não estão cientes dessa localização. - Essa chave é necessária para que elas busquem os - arquivos necessários em $LFS, e não no anfitrião. -

-
-
- --enable-initfini-array -
-
-

- Essa opção é automaticamente habilitada quando da - construção de um compilador nativo com um compilador - nativo em x86. Porém, aqui, nós construímos com um - compilador cruzado, de forma que nós precisamos - explicitamente configurar essa opção. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-

- Como um toque final, crie um link simbólico utilitário. - Muitos aplicativos e scripts executam cc em vez de gcc, o que é usado para - manter genéricos os aplicativos e, assim, utilizáveis em - todos os tipos de sistemas UNIX onde o compilador C de GNU - nem sempre está instalado. Executar cc deixa a(o) - administradora(r) de sistema livre para decidir qual - compilador C instalar: -

-
ln -sv gcc $LFS/usr/bin/cc
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.26.2, “Conteúdo - de GCC.” -

-
-
-
-
-
-
-
-

- Capítulo 7. - Entrando em Chroot e Construindo Ferramentas Temporárias - Adicionais -

-
-
-
-
-
-
-
-

- 7.1. Introdução -

-
-
-
-

- Este capítulo mostra como construir os últimos bits que faltam - no sistema temporário: as ferramentas necessárias para o - maquinário de construção de vários pacotes. Agora que todas as - dependências circulares foram resolvidas, um ambiente - chroot, completamente isolado do - sistema operacional anfitrião (exceto pelo kernel em execução), - pode ser usado para a construção. -

-

- Para operação adequada do ambiente isolado, alguma comunicação - com o kernel em execução precisa ser estabelecida. Isso é feito - por meio dos assim chamados Sistemas - de Arquivos Virtuais de Kernel, que precisam ser - montados quando da entrada no ambiente chroot. Você talvez - queira verificar que eles estejam montados emitindo - findmnt. -

-

- Até Seção 7.4, - “Entrando no Ambiente Chroot”, os comandos - precisam ser executados como root, com a variável LFS configurada. Após a entrada em chroot, todos - os comandos são executados como root, por sorte sem acesso ao - OS do computador no qual que você construiu LFS. Seja - cuidadosa(o) de qualquer maneira, dado que é fácil destruir o - sistema LFS inteiro com comandos mau formados. -

-
-
-
-
-
-

- 7.2. Mudando - Propriedade -

-
-
-
-
-

- Nota -

-

- Os comandos no resto deste livro precisam ser realizados - enquanto logada(o) como usuária(o) root e não mais como usuária(o) - lfs. Também, verifique - duplamente que $LFS está - configurada no ambiente do root. -

-
-

- Atualmente, a hierarquia de diretório inteira em $LFS é de propriedade da(o) usuária(o) - lfs, uma(m) usuária(o) que - existe somente no sistema anfitrião. Se os diretórios e - arquivos sob $LFS forem mantidos - como estão, então eles serão de propriedade de um ID de - usuária(o) sem uma conta correspondente. Isso é perigoso, pois - uma conta de usuária(o) criada posteriormente poderia receber - esse mesmo ID de usuária(o) e se tornaria proprietária(o) de - todos os arquivos sob $LFS, dessa - forma expondo esses arquivos a possível manipulação maliciosa. -

-

- Para endereçar esse problema, mude a propriedade dos diretórios - $LFS/* para usuária(o) - root executando o seguinte - comando: -

-
chown -R root:root $LFS/{usr,lib,var,etc,bin,sbin,tools}
-case $(uname -m) in
-  x86_64) chown -R root:root $LFS/lib64 ;;
-esac
-
-
-
-
-
-

- 7.3. Preparando Sistemas de - Arquivos Virtuais de Kernel -

-
-
-
-

- Vários sistemas de arquivos exportados pelo kernel são usados - para comunicar para e oriunda do próprio kernel. Esses sistemas - de arquivos são virtuais uma vez que nenhum espaço de disco é - usado por eles. O conteúdo dos sistemas de arquivos reside em - memória. -

-

- Comece criando diretórios nos quais os sistemas de arquivos - serão montados: -

-
mkdir -pv $LFS/{dev,proc,sys,run}
-
-

- 7.3.1. Criando Nós de Dispositivos Iniciais -

-

- Quando o kernel inicializa o sistema, ele exige a presença de - alguns nós de dispositivos, em particular os dispositivos - console e null. Os nós de dispositivos precisam ser - criados no disco rígido de modo que eles estejam disponíveis - antes que o kernel povoe /dev), e adicionalmente quando Linux é - iniciado com init=/bin/bash. Crie os - dispositivos executando os seguintes comandos: -

-
mknod -m 600 $LFS/dev/console c 5 1
-mknod -m 666 $LFS/dev/null c 1 3
-
-
-

- 7.3.2. Montando e Povoando /dev -

-

- O método recomendado de povoar o diretório /dev com dispositivos é montar um sistema - de arquivos virtuais (tal como tmpfs) no diretório /dev, e permitir que os dispositivos sejam - criados dinamicamente naquele sistema de arquivos virtuais - conforme eles sejam detectados ou acessados. Criação de - dispositivos é geralmente feita durante o processo de - inicialização por Udev. Uma vez que esse novo sistema ainda - não tem Udev e ainda não foi inicializado, é necessário - montar e povoar /dev - manualmente. Isso é conseguido montando com bind o diretório - /dev do sistema anfitrião. Uma - montagem com bind é um tipo especial de montagem que permite - que você crie um espelho de um diretório ou ponto de montagem - para alguma outra localização. Use o seguinte comando para - conseguir isso: -

-
mount -v --bind /dev $LFS/dev
-
-
-

- 7.3.3. Montando Sistemas de - Arquivos Virtuais de Kernel -

-

- Agora monte os restantes sistemas de arquivos virtuais de - kernel: -

-
mount -v --bind /dev/pts $LFS/dev/pts
-mount -vt proc proc $LFS/proc
-mount -vt sysfs sysfs $LFS/sys
-mount -vt tmpfs tmpfs $LFS/run
-

- Em alguns sistemas anfitrião, /dev/shm é um link simbólico para - /run/shm. O tmpfs /run foi - montado acima então, nesse caso, apenas um diretório precisa - ser criado. -

-
if [ -h $LFS/dev/shm ]; then
-  mkdir -pv $LFS/$(readlink $LFS/dev/shm)
-fi
-
-
-
-
-
-
-

- 7.4. Entrando no Ambiente - Chroot -

-
-
-
-

- Agora que todos os pacotes que são exigidos para construir o - resto das ferramentas necessárias estão no sistema, é hora de - entrar no ambiente chroot para finalizar a instalação das - restantes ferramentas temporárias. Esse ambiente estará em uso - também para a instalação do sistema final. Como usuária(o) - root, execute o seguinte - comando para entrar no ambiente que é, neste momento, povoado - apenas com as ferramentas temporárias: -

-
chroot "$LFS" /usr/bin/env -i   \
-    HOME=/root                  \
-    TERM="$TERM"                \
-    PS1='(lfs chroot) \u:\w\$ ' \
-    PATH=/usr/bin:/usr/sbin     \
-    /bin/bash --login
-

- A opção -i dada para o - comando env - limpará todas as variáveis do ambiente chroot. Depois disso, - apenas as variáveis HOME, - TERM, PS1, e PATH são - configuradas novamente. A construção TERM=$TERM configurará a variável - TERM dentro de chroot para o mesmo - valor que fora de chroot. Essa variável é necessária para - aplicativos como vim e less operarem adequadamente. - Se outras variáveis forem desejadas, tais como CFLAGS ou CXXFLAGS, - então esse é um bom lugar para configurá-las novamente. -

-

- Deste ponto em diante, não mais há necessidade de usar a - variável LFS, pois todo o trabalho - estará restrito ao sistema de arquivos de LFS. Isso acontece - pois o shell Bash é informado que $LFS agora é o diretório raiz (/). -

-

- Perceba que /tools/bin não está - no PATH. Isso significa que o - conjunto de ferramentas cruzadas não mais será usado no - ambiente chroot. -

-

- Note que o prompt de bash dirá I have no name! Isso é normal, pois o - arquivo /etc/passwd ainda não foi - criado. -

-
-

- Nota -

-

- É importante que todos os comandos até o final deste capítulo - e nos capítulos seguintes sejam executados de dentro do - ambiente chroot. Se você deixar esse ambiente por qualquer - razão (reiniciar, por exemplo), então certifique-se que os - sistemas de arquivos virtuais de kernel estejam montados como - explicado em Seção 7.3.2, - “Montando e Povoando /dev” e Seção 7.3.3, - “Montando Sistemas de Arquivos Virtuais de - Kernel” e entre no chroot novamente antes de - continuar a instalação. -

-
-
-
-
-
-
-

- 7.5. Criando Diretórios -

-
-
-
-

- É tempo de criar a estrutura completa no sistema de arquivos - LFS. -

-

- Crie alguns diretórios de nível de raiz que não estão no - conjunto limitado exigido nos capítulos anteriores emitindo o - seguinte comando: -

-
-

- Nota -

-

- Alguns dos diretórios abaixo já foram criados anteriormente - com instruções explícitas ou quando da instalação de alguns - pacotes. Elas estão repetidas abaixo para completude. -

-
-
mkdir -pv /{boot,home,mnt,opt,srv}
-

- Crie o conjunto exigido de subdiretórios abaixo do nível de - raiz emitindo os seguintes comandos: -

-
mkdir -pv /etc/{opt,sysconfig}
-mkdir -pv /lib/firmware
-mkdir -pv /media/{floppy,cdrom}
-mkdir -pv /usr/{,local/}{include,src}
-mkdir -pv /usr/local/{bin,lib,sbin}
-mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man}
-mkdir -pv /usr/{,local/}share/{misc,terminfo,zoneinfo}
-mkdir -pv /usr/{,local/}share/man/man{1..8}
-mkdir -pv /var/{cache,local,log,mail,opt,spool}
-mkdir -pv /var/lib/{color,misc,locate}
-
-ln -sfv /run /var/run
-ln -sfv /run/lock /var/lock
-
-install -dv -m 0750 /root
-install -dv -m 1777 /tmp /var/tmp
-

- Diretórios são, por padrão, criados com modo de permissão 755, - mas isso não é desejável para todos os diretórios. Nos comandos - acima, duas mudanças são feitas—uma para o diretório home - da(o) usuária(o) root, e outra - para os diretórios para arquivos temporários. -

-

- A primeira mudança de modo assegura que nem qualquer pessoa - possa entrar no diretório /root—o mesmo que uma(m) usuária(o) - normal faria com o diretório home dela ou dele. A segunda - mudança de modo garante que qualquer usuária(o) possa escrever - nos diretórios /tmp e - /var/tmp, mas não possa remover - deles os arquivos de outras(os) usuárias(os). Essa última é - proibida pelo assim chamado sticky - bit, o bit mais alto (1) na máscara de - bits 1777. -

-
-

- 7.5.1. Nota de conformidade FHS -

-

- A árvore de diretório é baseada no Padrão de Hierarquia de - Sistema de Arquivos (Filesystem Hierarchy Standard - FHS) - (disponível em https://refspecs.linuxfoundation.org/fhs.shtml). - O FHS também especifica a existência opcional de alguns - diretórios tais como /usr/local/games e /usr/share/games. Nós criamos apenas os - diretórios que são necessários. Entretanto, sinta-se livre - para criar esses diretórios. -

-
-
-
-
-
-
-

- 7.6. Criando Arquivos - Essenciais e Links Simbólicos -

-
-
-
-

- Historicamente, o Linux mantém uma lista dos sistemas de - arquivos montados no arquivo /etc/mtab. Kernels modernos mantém essa lista - internamente e expõem ela para a(o) usuária(o) via sistema de - arquivos /proc. Para satisfazer - utilitários que esperam a presença de /etc/mtab, crie o seguinte link simbólico: -

-
ln -sv /proc/self/mounts /etc/mtab
-

- Crie um arquivo /etc/hosts básico - para ser referenciado em algumas suítes de teste, e em um dos - arquivos de configuração do Perl também: -

-
cat > /etc/hosts << EOF
-127.0.0.1  localhost $(hostname)
-::1        localhost
-EOF
-

- Para que a(o) usuária(o) root - seja capaz de logar e para que o nome root - seja reconhecido, precisa existir entradas relevantes nos - arquivos /etc/passwd e - /etc/group. -

-

- Crie o arquivo /etc/passwd - executando o seguinte comando: -

-
cat > /etc/passwd << "EOF"
-root:x:0:0:root:/root:/bin/bash
-bin:x:1:1:bin:/dev/null:/usr/bin/false
-daemon:x:6:6:Daemon User:/dev/null:/usr/bin/false
-messagebus:x:18:18:D-Bus Message Daemon User:/run/dbus:/usr/bin/false
-uuidd:x:80:80:UUID Generation Daemon User:/dev/null:/usr/bin/false
-nobody:x:99:99:Unprivileged User:/dev/null:/usr/bin/false
-EOF
-

- A senha atual para root será - configurada mais tarde. -

-

- Crie o arquivo /etc/group - executando o seguinte comando: -

-
cat > /etc/group << "EOF"
-root:x:0:
-bin:x:1:daemon
-sys:x:2:
-kmem:x:3:
-tape:x:4:
-tty:x:5:
-daemon:x:6:
-floppy:x:7:
-disk:x:8:
-lp:x:9:
-dialout:x:10:
-audio:x:11:
-video:x:12:
-utmp:x:13:
-usb:x:14:
-cdrom:x:15:
-adm:x:16:
-messagebus:x:18:
-input:x:24:
-mail:x:34:
-kvm:x:61:
-uuidd:x:80:
-wheel:x:97:
-nogroup:x:99:
-users:x:999:
-EOF
-

- Os grupos criados não são parte de qualquer padrão—eles - são grupos decididos em parte pelas exigências da configuração - de Udev no Capítulo 9, e em parte pelas convenções comuns - empregadas por um número de distribuições Linux existentes. Em - adição, algumas suítes de teste dependem de usuárias(os) ou - grupos específicos. A Base Padrão Linux (Linux Standard Base - - LSB, disponível em http://refspecs.linuxfoundation.org/lsb.shtml) - apenas recomenda que, além do grupo root com um ID de Grupo (GID) de 0, um - grupo bin com um GID de 1 - esteja presente. Todos os outros nomes de grupo e GIDs podem - ser escolhidos livremente pela(o) administradora(r) de sistema - uma vez que aplicativos bem escritos não dependem de números de - GID, mas sim usam o nome do grupo. -

-

- Alguns testes em Capítulo 8 - precisam de uma(m) usuária(o) regular. Nós adicionamos essa(e) - usuária(o) aqui e deletamos essa conta ao final daquele - capítulo. -

-
echo "tester:x:101:101::/home/tester:/bin/bash" >> /etc/passwd
-echo "tester:x:101:" >> /etc/group
-install -o tester -d /home/tester
-

- Para remover o prompt I have no name!, inicie um novo - shell. Uma vez que os arquivos /etc/passwd e /etc/group foram criados, resolução de nome - de usuária(o) e nome de grupo agora funcionará: -

-
exec /usr/bin/bash --login
-

- Os aplicativos login, agetty, e init (e outros) usam um - número de arquivos de log para registrar informação tais como - quem esteve logada(o) no sistema e quando. Entretanto, esses - aplicativos não escreverão nos arquivos de log se eles já não - existirem. Inicialize os arquivos de log e dê a eles permissões - adequadas: -

-
touch /var/log/{btmp,lastlog,faillog,wtmp}
-chgrp -v utmp /var/log/lastlog
-chmod -v 664  /var/log/lastlog
-chmod -v 600  /var/log/btmp
-

- O arquivo /var/log/wtmp registra - todos os logins e logouts. O arquivo /var/log/lastlog registra quando cada - usuária(o) logou pela última vez. O arquivo /var/log/faillog registra tentativas de login - falhas. O arquivo /var/log/btmp - registra tentativas de login inválidas. -

-
-

- Nota -

-

- O arquivo /run/utmp registra - as(os) usuárias(os) que estão atualmente logadas(os). Esse - arquivo é criado dinamicamente nos scripts de inicialização. -

-
-
-
-
-
-
-

- 7.7. Libstdc++ - oriundo de GCC-11.2.0, Passagem 2 -

-
-
-
-
-

- Quando da construção de gcc-pass2 nós tivemos que - adiar a instalação da biblioteca padrão C++, pois nenhum - compilador adequado estava disponível para compilá-la. Nós - não poderíamos usar o compilador construído naquela seção, - por causa de que ele é um compilador nativo e não deveria ser - usado do lado de fora do chroot e riscos de poluir as - bibliotecas com alguns componentes do anfitrião. -

-
-
-
- Tempo aproximado de - construção: 0,8 UPC -
-
- Espaço em disco - exigido: 1,1 GB -
-
-
-
-
-

- 7.7.1. Instalação de Libstdc++ Alvo -

-
-

- Nota -

-

- Libstdc++ é parte dos - fontes de GCC. Você deveria primeiro desempacotar o tarball - de GCC e mudar para o diretório gcc-11.2.0. -

-
-

- Crie um link que existe quando da construção de libstdc++ na - árvore de gcc: -

-
ln -s gthr-posix.h libgcc/gthr-default.h
-

- Crie um diretório de construção separado para libstdc++ e - entre nele: -

-
mkdir -v build
-cd       build
-

- Prepare libstdc++ para compilação: -

-
../libstdc++-v3/configure            \
-    CXXFLAGS="-g -O2 -D_GNU_SOURCE"  \
-    --prefix=/usr                    \
-    --disable-multilib               \
-    --disable-nls                    \
-    --host=$(uname -m)-lfs-linux-gnu \
-    --disable-libstdcxx-pch
-
-

- O significado das opções de configure: -

-
-
- CXXFLAGS="-g -O2 - -D_GNU_SOURCE" -
-
-

- Esses sinalizadores são passados pelo Makefile de nível - de topo quando da feitura de uma construção completa de - GCC. -

-
-
- --host=$(uname - -m)-lfs-linux-gnu -
-
-

- Nós temos que imitar o que teria acontecido se esse - pacote fosse construído como parte de uma construção - completa de compilador. Essa chave teria sido passada - para configure pelo maquinário de construção do GCC. -

-
-
- --disable-libstdcxx-pch -
-
-

- Essa chave evita a instalação de arquivos include - pré-compilados, os quais não são necessários neste - estágio. -

-
-
-
-

- Compile libstdc++ executando: -

-
make
-

- Instale a biblioteca: -

-
make install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.26.2, “Conteúdo - de GCC.” -

-
-
-
-
-
-
-

- 7.8. Gettext-0.21 -

-
-
-
-
-

- O pacote Gettext contém utilitários para internacionalização - e localização. Eles permitem que aplicativos sejam compilados - com Suporte ao Idioma Nativo (Native Language Support - NLS), - habilitando-os a emitir mensagens no idioma nativo da(o) - usuária(o). -

-
-
-
- Tempo aproximado de - construção: 1,6 UPC -
-
- Espaço em disco - exigido: 280 MB -
-
-
-
-
-

- 7.8.1. Instalação de Gettext -

-

- Para nosso conjunto temporário de ferramentas, nós apenas - precisamos instalar três aplicativos originários de Gettext. -

-

- Prepare Gettext para compilação: -

-
./configure --disable-shared
-
-

- O significado da opção de configure: -

-
-
- --disable-shared -
-
-

- Nós não precisamos instalar quaisquer das bibliotecas - compartilhadas de Gettext nesta ocasião, assim não - existe necessidade de construí-las. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale os aplicativos msgfmt, msgmerge, e xgettext: -

-
cp -v gettext-tools/src/{msgfmt,msgmerge,xgettext} /usr/bin
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.31.2, - “Conteúdo do Gettext.” -

-
-
-
-
-
-
-

- 7.9. Bison-3.8.2 -

-
-
-
-
-

- O pacote Bison contém um gerador de analisador. -

-
-
-
- Tempo aproximado de - construção: 0,3 UPC -
-
- Espaço em disco - exigido: 50 MB -
-
-
-
-
-

- 7.9.1. Instalação de Bison -

-

- Prepare Bison para compilação: -

-
./configure --prefix=/usr \
-            --docdir=/usr/share/doc/bison-3.8.2
-
-

- O significado da nova opção de configure: -

-
-
- --docdir=/usr/share/doc/bison-3.8.2 -
-
-

- Isso diz ao sistema de construção para instalar - documentação de bison em um diretório versionado. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.32.2, - “Conteúdo do Bison.” -

-
-
-
-
-
-
-

- 7.10. Perl-5.34.0 -

-
-
-
-
-

- O pacote Perl contém o Practical Extraction and Report - Language. -

-
-
-
- Tempo aproximado de - construção: 1,6 UPC -
-
- Espaço em disco - exigido: 272 MB -
-
-
-
-
-

- 7.10.1. Instalação de Perl -

-

- Prepare Perl para compilação: -

-
sh Configure -des                                        \
-             -Dprefix=/usr                               \
-             -Dvendorprefix=/usr                         \
-             -Dprivlib=/usr/lib/perl5/5.34/core_perl     \
-             -Darchlib=/usr/lib/perl5/5.34/core_perl     \
-             -Dsitelib=/usr/lib/perl5/5.34/site_perl     \
-             -Dsitearch=/usr/lib/perl5/5.34/site_perl    \
-             -Dvendorlib=/usr/lib/perl5/5.34/vendor_perl \
-             -Dvendorarch=/usr/lib/perl5/5.34/vendor_perl
-
-

- O significado das novas opções de - Configure: -

-
-
- -des -
-
-

- Essa é uma combinação de três opções: -d usa padrões - para todos os itens; -e assegura completamento de todas - as tarefas; -s silencia saída não essencial. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.41.2, “Conteúdo - do Perl.” -

-
-
-
-
-
-
-

- 7.11. Python-3.10.2 -

-
-
-
-
-

- O pacote Python 3 contém o ambiente Python de - desenvolvimento. Ele é útil para programação orientada a - objetos, escrita de scripts, prototipagem de aplicativos - grandes, ou desenvolvimento de aplicações inteiras. -

-
-
-
- Tempo aproximado de - construção: 1,2 UPC -
-
- Espaço em disco - exigido: 359 MB -
-
-
-
-
-

- 7.11.1. Instalação de Python -

-
-

- Nota -

-

- Existem dois arquivos de pacotes cujos nomes se iniciam com - python. Aquele a se extrair a - partir dele é Python-3.10.2.tar.xz (perceba a primeira - letra maiúscula). -

-
-

- Prepare Python para compilação: -

-
./configure --prefix=/usr   \
-            --enable-shared \
-            --without-ensurepip
-
-

- O significado da opção de configure: -

-
-
- --enable-shared -
-
-

- Essa chave impede instalação de bibliotecas estáticas. -

-
-
- --without-ensurepip -
-
-

- Essa chave desabilita o instalador de pacote de Python, - o qual não é necessário neste estágio. -

-
-
-
-

- Compile o pacote: -

-
make
-
-

- Nota -

-

- Alguns módulos de Python 3 não podem ser construídos agora, - por causa de que as dependências não estão instaladas - ainda. O sistema de construção ainda tenta construí-las, - entretanto, de forma que a compilação de alguns arquivos - falhará e a mensagem de compilador talvez pareça indicar - fatal - error. A mensagem deveria ser - ignorada. Apenas tenha certeza de que o comando de nível de - topo make não - tenha falhado. Os módulos opcionais não são necessários - agora e eles serão construídos em Capítulo 8. -

-
-

- Instale o pacote: -

-
make install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.50.2, - “Conteúdo do Python 3.” -

-
-
-
-
-
-
-

- 7.12. Texinfo-6.8 -

-
-
-
-
-

- O pacote Texinfo contém aplicativos para leitura, escrita e - conversão de páginas info. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 109 MB -
-
-
-
-
-

- 7.12.1. Instalação de Texinfo -

-

- Primeiro, conserte um problema ao construir o pacote com - Glibc-2.34 ou posterior: -

-
sed -e 's/__attribute_nonnull__/__nonnull/' \
-    -i gnulib/lib/malloc/dynarray-skeleton.c
-

- Prepare Texinfo para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.67.2, - “Conteúdo do Texinfo.” -

-
-
-
-
-
-
-

- 7.13. Util-linux-2.37.4 -

-
-
-
-
-

- O pacote Util-linux contém diversos aplicativos utilitários. -

-
-
-
- Tempo aproximado de - construção: 0,7 UPC -
-
- Espaço em disco - exigido: 129 MB -
-
-
-
-
-

- 7.13.1. Instalação de Util-linux -

-

- O FHS recomenda usar o diretório /var/lib/hwclock em vez do usual diretório - /etc como a localização para o - arquivo adjtime. Crie esse - diretório com: -

-
mkdir -pv /var/lib/hwclock
-

- Prepare Util-linux para compilação: -

-
./configure ADJTIME_PATH=/var/lib/hwclock/adjtime    \
-            --libdir=/usr/lib    \
-            --docdir=/usr/share/doc/util-linux-2.37.4 \
-            --disable-chfn-chsh  \
-            --disable-login      \
-            --disable-nologin    \
-            --disable-su         \
-            --disable-setpriv    \
-            --disable-runuser    \
-            --disable-pylibmount \
-            --disable-static     \
-            --without-python     \
-            runstatedir=/run
-
-

- O significado das opções de configure: -

-
-
- ADJTIME_PATH=/var/lib/hwclock/adjtime -
-
-

- Isso configura a localização do arquivo gravando - informação acerca do relógio de hardware de acordo com - o FHS. Isso não é estritamente necessário para essa - ferramenta temporária, porém impede a criação de um - arquivo em outra localização, o qual não seria - sobrescrito ou removido quando da construção do pacote - util-linux final. -

-
-
- --libdir=/usr/lib -
-
-

- Essa chave assegura que os links simbólicos - .so apontem para o - arquivo de biblioteca compartilhada no mesmo diretório - (/usr/lib) diretamente. -

-
-
- --disable-* -
-
-

- Essas chaves evitam avisos acerca de componentes de - construção que exigem pacotes que não estão no LFS ou - ainda não estão instalados. -

-
-
- --without-python -
-
-

- Essa chave desabilita o uso de Python. Ela evita tentar construir - ligações desnecessárias. -

-
-
- runstatedir=/run -
-
-

- Essa chave configura corretamente a localização do - soquete usado por uuidd e libuuid. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.72.2, - “Conteúdo do Util-linux.” -

-
-
-
-
-
-
-

- 7.14. Limpando e Salvando o - Sistema Temporário -

-
-
-
-
-

- 7.14.1. Limpando -

-

- Primeiro, remova a documentação atualmente instalada para - evitar que ela termine no sistema final, e para salvar cerca - de 35 MB: -

-
rm -rf /usr/share/{info,man,doc}/*
-

- Segundo, os arquivos .la de libtool somente são úteis quando - vinculados com bibliotecas estáticas. Eles são desnecessários - e potencialmente danosos quando do uso de bibliotecas - compartilhadas dinâmicas, especialmente quando do uso de - sistemas de construção não autotools. Enquanto ainda no - chroot, remova aqueles arquivos agora: -

-
find /usr/{lib,libexec} -name \*.la -delete
-

- O tamanho atual de sistema é agora de cerca de 3 GB, - entretanto o diretório /tools não mais é necessário. Ele usa - cerca de 1 GB de espaço de disco. Delete ele agora: -

-
rm -rf /tools
-
-
-

- 7.14.2. Cópia de segurança -

-

- Neste ponto os aplicativos e bibliotecas essenciais foram - criados e seu sistema LFS atual está em um bom estado. Seu - sistema pode agora ser copiado para posterior reuso. Em caso - de falhas fatais nos capítulos subsequentes, frequentemente - acontece que remover tudo e começar de novo (mais - cuidadosamente) é a melhor opção para recuperar. - Infelizmente, todos os arquivos temporários serão removidos, - também. Para evitar desperdiçar tempo extra para refazer tudo - o que foi construído com sucesso, criar uma cópia de - segurança do sistema LFS atual talvez se prove útil. -

-
-

- Nota -

-

- Todos os passos restantes nesta seção são opcionais. Apesar - disso, tão logo você comece a instalar pacotes em Capítulo 8, - os arquivos temporários serão sobrescritos. Assim, talvez - seja uma boa ideia fazer uma cópia de segurança do sistema - atual conforme descrito abaixo. -

-
-

- Os passos seguintes são realizados a partir do lado de fora - do ambiente chroot. Isso significa, você tem de deixar o - ambiente chroot primeiro antes de continuar. A razão para - isso é para conseguir acesso a locais do sistema de arquivos - do lado de fora do ambiente chroot para armazenar/ler o - arquivamento de cópia de segurança o qual não deveria ser - colocado dentro da hierarquia de $LFS por razões de segurança. -

-

- Se você decidiu fazer uma cópia de segurança, então deixe o - ambiente chroot: -

-
exit
-
-

- Importante -

-

- Todas as instruções seguintes são executadas por - root em seu sistema - anfitrião. Tome cuidado extra acerca dos comandos que você - vai executar, uma vez que erros aqui podem modificar seu - sistema anfitrião. Esteja ciente de que a variável de - ambiente LFS está configurada - para usuária(o) lfs por - padrão, mas talvez não esteja configurada para - root. -

-

- Sempre que comandos forem ser executados por root, tenha certeza de que você - configurou LFS. -

-

- Isso foi discutido em Seção 2.6, - “Configurando a Variável $LFS”. -

-
-

- Antes de fazer uma cópia de segurança, desmonte os sistemas - de arquivos virtuais: -

-
umount $LFS/dev/pts
-umount $LFS/{sys,proc,run,dev}
-

- Tenha certeza de que tem pelo menos 1 GB de espaço de disco - livre (os tarballs de fonte serão incluídos no arquivamento - de cópia de segurança) no sistema de arquivos contendo - diretório onde você criar o arquivamento de cópia de - segurança. -

-

- Note que as instruções abaixo especificam o diretório home - da(o) usuária(o) root do - sistema anfitrião, o qual tipicamente é encontrado no sistema - de arquivos raiz. -

-

- Substitua $HOME por um diretório - da sua escolha se você não quiser ter a cópia de segurança - armazenada no diretório home de root. -

-

- Crie o arquivamento de cópia de segurança executando o - seguinte comando: -

-
-

- Nota -

-

- Por causa de que o arquivamento de cópia de segurança é - comprimido, dura um tempo relativamente longo (mais de 10 - minutos) mesmo em um sistema razoavelmente rápido. -

-
-
cd $LFS
-tar -cJpf $HOME/lfs-temp-tools-11.1.tar.xz .
-
-

- Nota -

-

- Se continuar para o capítulo 8, então não se esqueça de - entrar novamente no ambiente chroot conforme explanado na - caixa Importante abaixo. -

-
-
-
-

- 7.14.3. Restauro -

-

- No caso de alguns erros tiverem sido feitos e você precisar - começar de novo, você pode usar essa cópia de segurança para - restaurar o sistema e economizar algum tempo de recuperação. - Desde que os fontes estão localizados sob $LFS, eles são incluídos no arquivamento de - cópia de segurança também, de forma que eles não precisam ser - baixados novamente. Após verificar que $LFS está configurada adequadamente, restaure - a cópia de segurança executando os seguintes comandos: -

-
-

- Atenção -

-

- Os seguintes comandos são extremamente perigosos. Se você - executar rm -rf - ./* como a(o) usuária(o) root e você não - mudar para o diretório $LFS ou a variável de ambiente - LFS não estiver configurada para - a(o) usuária(o) root, então isso destruirá seu sistema - anfitrião inteiro. VOCÊ ESTÁ AVISADA(O). -

-
-
cd $LFS
-rm -rf ./*
-tar -xpf $HOME/lfs-temp-tools-11.1.tar.xz
-

- Novamente, verifique duplamente se o ambiente foi configurado - adequadamente e continue construindo o resto do sistema. -

-
-

- Importante -

-

- Se você deixou o ambiente chroot para criar uma cópia de - segurança ou reiniciar a construção usando um restauro, - então lembre-se de verificar se os sistemas de arquivos - virtuais ainda estão montados (findmnt | grep $LFS). Se - eles não estiverem montados, então remonte-os agora - conforme descrito em Seção 7.3, - “Preparando Sistemas de Arquivos Virtuais de - Kernel” e entre novamente no ambiente chroot - (veja Seção 7.4, - “Entrando no Ambiente Chroot”) antes de - continuar. -

-
-
-
-
-
-
-
-
-
-

- Parte IV. Construindo o Sistema - LFS -

-
-
-
-
-
-
-
-

- Capítulo 8. Instalando - Aplicativos Básicos de Sistema -

-
-
-
-
-
-
-
-

- 8.1. Introdução -

-
-
-
-

- Neste capítulo, nós começamos a construir o sistema LFS pra - valer. -

-

- A instalação desse software é simples. 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 é - saber para que cada pacote é usado e porque você (ou o sistema) - talvez precise dele. -

-

- Nós não recomendamos usar otimizações. Elas podem fazer com que - um aplicativo execute ligeiramente mais rápido, mas elas também - talvez causem dificuldades de compilação e problemas quando - executar o aplicativo. Se um pacote se recusar a compilar - quando usar otimização, então tente compilá-lo sem otimização e - veja se isso conserta o problema. Mesmo se o pacote compilar - quando usar otimização, existe o risco de que ele talvez tenha - sido compilado incorretamente devido às complexas interações - entre o código e ferramentas de construção. Note também que as - opções -march e -mtune usando valores não especificados no - livro não foram testadas. Isso talvez cause problemas com os - pacotes do conjunto de ferramentas (Binutils, GCC e Glibc). Os - pequenos ganhos potenciais alcançados usando otimizações de - compilador frequentemente são superados pelos riscos. - Construtoras(es) de primeira vez de LFS são encorajadas(os) a - construir sem otimizações personalizadas. O sistema subsequente - ainda executará muito rápido e será estável ao mesmo tempo. -

-

- Antes das instruções de instalação, cada página de instalação - fornece informação acerca 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 bibliotecas (juntamente com - breves descrições) que o pacote instala. -

-
-

- Nota -

-

- Os valores de UPC e espaço de disco exigido incluem dados de - suíte de teste para todos os pacotes aplicáveis em Capítulo 8. - Os valores de UPC foram calculados usando um núcleo sozinho - de CPU (-j1) para todas as operações. -

-
-
-

- 8.1.1. Acerca de bibliotecas -

-

- Em geral, as(os) editoras(es) de LFS desencorajam construir e - instalar bibliotecas estáticas. O propósito original para a - maioria das bibliotecas estáticas tem sido tornado obsoleto - 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 todos os aplicativos que usam - a biblioteca estática precisarão ser vinculados de novo à - 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) talvez nem mesmo sejam - conhecidos. -

-

- Nos procedimentos neste capítulo, nós removemos ou - desabilitamos a instalação da maioria das bibliotecas - estáticas. Usualmente isso é feito passando-se uma opção - --disable-static para - 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 essencial para o processo geral de - construção de pacote. -

-

- Para uma discussão mais completa acerca de bibliotecas, - veja-se a discussão - Bibliotecas: Estática ou compartilhada? no livro BLFS. -

-
-
-
-
-
-
-

- 8.2. Gerenciamento de Pacote -

-
-
-
-

- Gerenciamento de Pacote é uma adição frequentemente solicitada - ao Livro LFS. Um Gerenciador de Pacote permite monitorar a - instalação de arquivos tornando fácil remover e atualizar - pacotes. Assim como os arquivos binários e bibliotecas, um - gerenciador de pacote lidará com a instalação de arquivos de - configuração. Antes que você comece a questionar, - NÃO—esta seção não falará nem recomendará qualquer - gerenciador de pacote em particular. O que ela fornece é um - resumo acerca das técnicas mais populares e como elas - funcionam. O gerenciador de pacote perfeito para você talvez - esteja entre essas técnicas ou talvez seja uma combinação de - duas ou mais dessas técnicas. Esta seção menciona brevemente - problemas que talvez surjam quando da atualização de pacotes. -

-

- Algumas razões porque nenhum gerenciador de pacote é mencionado - em LFS ou BLFS incluem: -

-
-
    -
  • -

    - Lidar com gerenciamento de pacote retira o foco das - finalidades desses livros—ensinar como um sistema - Linux é construído. -

    -
  • -
  • -

    - Existem múltiplas soluções para gerenciamento de pacote, - cada uma tendo seus pontos fortes e fracos. Incluir uma - que satisfaça todas as audiências é difícil. -

    -
  • -
-
-

- Existem algumas dicas escritas no tópico acerca de - gerenciamento de pacote. Visite o Hints - Project e veja se uma delas se adéqua às suas necessidades. -

-
-

- 8.2.1. Problemas de Atualização -

-

- Um Gerenciador de Pacote torna fácil atualizar para versões - mais novas quando elas são liberadas. Geralmente as - instruções nos livros LFS e BLFS podem ser usadas para - atualizar para versões mais novas. Aqui estão alguns pontos - que você deveria estar ciente quando da atualização de - pacotes, especialmente em um sistema em execução. -

-
-
    -
  • -

    - Se o kernel Linux precisar ser atualizado (por exemplo, - de 5.10.17 para 5.10.18 ou 5.11.1), então nada mais - precisa ser reconstruído. O sistema seguirá funcionando - bem graças à borda bem definida entre kernel e espaço - de usuária(o). Especificamente, os cabeçalhos de API de - Linux não precisam ser (e não deveriam ser, veja-se o - próximo item) atualizados juntamente com o kernel. Você - precisará reiniciar seu sistema para usar o kernel - atualizado. -

    -
  • -
  • -

    - Se os cabeçalhos de API de Linux ou Glibc precisarem - ser atualizados para uma versão mais nova, (por - exemplo, de glibc-2.31 para glibc-2.32), então é mais - seguro reconstruir LFS. Ainda que você talvez seja capaz de - reconstruir todos os pacotes na ordem de dependência - deles, nós não recomendamos isso. -

    -
  • -
  • -

    - Se um pacote contendo uma biblioteca compartilhada for - atualizado, e se o nome da biblioteca mudar, então - quaisquer pacotes dinamicamente vinculados à biblioteca - precisam ser recompilados com a finalidade de vincular - à biblioteca mais nova. (Note que não existe correlação - entre a versão de pacote e o nome da biblioteca). Por - exemplo, considere um pacote foo-1.2.3 que instala uma - biblioteca compartilhada com nome libfoo.so.1. Se você atualizar o - pacote para uma versão mais nova foo-1.2.4 que instala - uma biblioteca compartilhada com nome libfoo.so.2. Nesse caso, quaisquer - pacotes que estiverem dinamicamente vinculados à - libfoo.so.1 precisam ser - recompilados para vincular à libfoo.so.2 com a finalidade de usar - a nova versão de biblioteca. Você não deveria remover - as bibliotecas anteriores a menos que todos os pacotes - dependentes sejam recompilados. -

    -
  • -
  • -

    - Se um pacote contendo uma biblioteca compartilhada for - atualizado, e o nome da biblioteca não mudar, porém o - número de versão do arquivo de biblioteca - decrescer (por exemplo, o nome da biblioteca é mantido - como libfoo.so.1, porém o - nome do arquivo de biblioteca é modificado de - libfoo.so.1.25 para - libfoo.so.1.24), então - você deveria remover o arquivo de biblioteca originário - da versão previamente instalada (libfoo.so.1.25 no caso). Ou, uma - execução de ldconfig (por você - mesmo usando uma linha de comando, ou pela instalação - de algum pacote) reconfigurará o link simbólico - libfoo.so.1 para apontar - para o antigo arquivo de biblioteca, pois ele aparenta - ter uma versão mais nova, uma vez que seu - número de versão é mais largo. Essa situação talvez - aconteceu se você teve que desatualizar um pacote, ou o - pacote muda repentinamente o esquema de versionamento - de arquivos de biblioteca. -

    -
  • -
  • -

    - Se um pacote contendo uma biblioteca compartilhada for - atualizado, e o nome da biblioteca não mudar, porém um - problema severo (especialmente, uma vulnerabilidade de - segurança) for corrigido, então todos os aplicativos em - execução vinculados à biblioteca compartilhada deveriam - ser reiniciados. O seguinte comando, executado como - root após atualização, - listará o que está usando as versões antigas daquelas - bibliotecas (substitua libfoo com o nome da - biblioteca): -

    -
    grep -l  -e 'libfoo.*deleted' /proc/*/maps |
    -   tr -cd 0-9\\n | xargs -r ps u
    -

    - Se OpenSSH estiver - sendo usado para acessar o sistema e ele estiver - vinculado à biblioteca atualizada, então você precisa - reiniciar o serviço sshd, então - deslogar-se, logar-se novamente, e reexecutar aquele - comando para confirmar que nada ainda está usando as - bibliotecas deletadas. -

    -
  • -
  • -

    - Se um binário ou uma biblioteca compartilhada for - sobrescrito, então os processos usando o código ou - dados no binário ou biblioteca talvez quebrem. A - maneira correta para atualizar um binário ou uma - biblioteca compartilhada sem causar quebra ao processo - é removê-lo primeiro, então instalar a versão nova na - posição. O comando install fornecido por - Coreutils já - implementou isso e a maioria dos pacotes usa ele para - instalar binários e bibliotecas. Isso significa que - você não estaria encrencada(o) por esse problema a - maior parte do tempo. Entretanto, o processo de - instalação de alguns pacotes (notadamente Mozilla JS em - BLFS) apenas sobrescreve o arquivo se ele existir e - causa uma quebra, de forma que é mais seguro salvar seu - trabalho e fechar processos em execução desnecessários - antes de atualizar um pacote. -

    -
  • -
-
-
-
-

- 8.2.2. Técnicas de Gerenciamento de Pacote -

-

- As seguintes são algumas técnicas comuns de gerenciamento de - pacote. Antes de se decidir acerca de um gerenciador de - pacote, pesquise sobre as várias técnicas, particularmente os - pontos fracos do esquema em particular. -

-
-
-
-
-

- 8.2.2.1. Está Tudo na Minha - Cabeça! -

-
-
-
-

- Sim, isso é uma técnica de gerenciamento de pacote. Algumas - pessoas não encontram a necessidade para um gerenciador de - pacote, pois elas conhecem os pacotes intimamente e sabem - quais arquivos estão instalados por cada pacote. - Algumas(ns) usuárias(os) também não precisam de qualquer - gerenciamento de pacote, pois elas(es) planejam reconstruir - o sistema inteiro quando um pacote for mudado. -

-
-
-
-
-
-

- 8.2.2.2. Instalação em Diretórios - Separados -

-
-
-
-

- Esse é um gerenciamento de pacote simplista que não - necessita de qualquer pacote extra para gerenciar as - instalações. Cada pacote é instalado em um diretório - separado. Por exemplo, o pacote foo-1.1 é instalado em - /usr/pkg/foo-1.1 e um link - simbólico é feito de /usr/pkg/foo para /usr/pkg/foo-1.1. Quando da instalação de - uma nova versão foo-1.2, ela é instalada em /usr/pkg/foo-1.2 e o link simbólico - anterior é substituído por um link simbólico para a nova - versão. -

-

- Variáveis de ambiente tais como PATH, LD_LIBRARY_PATH, MANPATH, INFOPATH - e CPPFLAGS precisam ser - expandidas para incluir /usr/pkg/foo. Para mais que uns poucos - pacotes, esse esquema se torna ingerenciável. -

-
-
-
-
-
-

- 8.2.2.3. Gerenciamento de Pacote - Estilo Link Simbólico -

-
-
-
-

- Essa é uma variação da técnica de gerenciamento de pacote - anterior. Cada pacote é instalado similar ao esquema - anterior. Mas, em vez de fazer o link simbólico, cada - arquivo é simbolicamente vinculado à hierarquia - /usr. Isso remove a - necessidade de expandir as variáveis de ambiente. Ainda que - os links simbólicos possam ser criados pela(o) usuária(o) - para automatizar a criação, muitos gerenciadores de pacote - tem sido escritos usando essa abordagem. Alguns dos - populares inclui Stow, Epkg, Graft, e Depot. -

-

- A instalação precisa ser falseada, de modo que o pacote - pense que está instalado em /usr, ainda que, na realidade, ele esteja - instalado na hierarquia /usr/pkg. Instalar dessa maneira - geralmente não é uma tarefa trivial. Por exemplo, considere - que você está instalando um pacote libfoo-1.1. As seguintes - instruções talvez não instalem adequadamente o pacote: -

-
./configure --prefix=/usr/pkg/libfoo/1.1
-make
-make install
-

- A instalação funcionará, mas os pacotes dependentes talvez - não se vinculem à libfoo conforme você esperaria. Se você - compilar um pacote que vincula à libfoo, então você talvez - note que ele está vinculado a /usr/pkg/libfoo/1.1/lib/libfoo.so.1 em - vez de /usr/lib/libfoo.so.1 - como você esperaria. A abordagem correta é usar a - estratégia DESTDIR para falsear - a instalação do pacote. Essa abordagem funciona como se - segue: -

-
./configure --prefix=/usr
-make
-make DESTDIR=/usr/pkg/libfoo/1.1 install
-

- A maioria dos pacotes suporta essa abordagem, mas existem - alguns que não. Para os pacotes não conformes, você talvez - ou precise instalar manualmente o pacote, ou você talvez - ache que é mais fácil instalar alguns pacotes problemáticos - em /opt. -

-
-
-
-
-
-

- 8.2.2.4. Baseado em Marca - Temporal -

-
-
-
-

- Nessa técnica, um arquivo é marcado temporalmente antes da - instalação do pacote. Após a instalação, um simples uso do - comando find - com as opções apropriadas pode gerar um registro de todos - os arquivos instalados após o arquivo de marca temporal ser - criado. Um gerenciador de pacote escrito com essa abordagem - é instalação-registro. -

-

- Ainda que esse esquema tenha a vantagem de ser simples, ele - tem duas desvantagens. Se, durante a instalação, os - arquivos forem instalados com qualquer marca temporal outra - que a hora atual, então aqueles arquivos não serão - rastreados pelo gerenciador de pacote. Além disso, esse - esquema pode ser usado apenas quando um pacote for - instalado de cada vez. Os registros não são confiáveis se - dois pacotes estão sendo instalados em dois consoles. -

-
-
-
-
-
-

- 8.2.2.5. Scripts de Rastreamento - de Instalação -

-
-
-
-

- Nessa abordagem, os comandos que os scripts de instalação - realizam são gravados. Existem duas técnicas que se pode - usar: -

-

- A variável de ambiente LD_PRELOAD pode ser configurada para apontar - para uma biblioteca a ser pré-carregada antes da - instalação. Durante a instalação, essa biblioteca rastreia - os pacotes que estão sendo instalados anexando-se a vários - executáveis tais como cp, install, mv e rastreando as - chamadas de sistema que modificam o sistema de arquivos. - Para que essa abordagem funcione, todos os executáveis - precisam ser dinamicamente vinculados sem o bit suid ou - sgid. Pré-carregar a biblioteca talvez cause alguns efeitos - colaterais indesejados durante a instalação. Portanto, - aconselha-se que se realize alguns testes para garantir que - o gerenciador de pacote não quebre nada e registre todos os - arquivos adequados. -

-

- A segunda técnica é usar strace, que registra - todas as chamadas de sistema feitas durante a execução dos - scripts de instalação. -

-
-
-
-
-
-

- 8.2.2.6. Criando Arquivamentos de - Pacote -

-
-
-
-

- Nesse esquema, a instalação do pacote é falseada em uma - árvore separada como descrito no gerenciamento de pacote - estilo Link Simbólico. Após a instalação, um arquivamento - de pacote é criado usando os arquivos instalados. Esse - arquivamento é então usado para instalar o pacote tanto na - máquina local quanto pode até ser usado para instalar o - pacote em outras máquinas. -

-

- Essa abordagem é usada pela maioria dos gerenciadores de - pacote encontrados nas distribuições comerciais. Exemplos - de gerenciadores de pacote que seguem essa abordagem são - RPM (o qual, incidentalmente, é exigido pela Linux - Standard Base Specification), pkg-utils, apt do Debian, - e sistema Portage do Gentoo. Uma dica descrevendo como - adotar esse estilo de gerenciamento de pacote para sistemas - LFS está localizada em - https://www.linuxfromscratch.org/hints/downloads/files/fakeroot.txt. -

-

- Criação de arquivos pacote que incluem informação de - dependência é complexa e está além do escopo de LFS. -

-

- Slackware usa um sistema baseado em tar para arquivamentos de - pacote. Esse sistema intencionalmente não manuseia - dependências de pacote como gerenciadores de pacote mais - complexos fazem. Para detalhes de gerenciamento de pacote - Slackware, veja http://www.slackbook.org/html/package-management.html. -

-
-
-
-
-
-

- 8.2.2.7. Gerenciamento Baseado em - Usuária(o) -

-
-
-
-

- Esse esquema, único para LFS, foi concebido por Matthias - Benkmann, e está disponível a partir do Hints - Project. Nesse esquema, cada pacote é instalado como - uma(m) usuária(o) separada(o) nos locais padrão. Arquivos - pertencentes a um pacote são facilmente identificados - checando o ID de usuária(o). As características e - deficiências dessa abordagem são muito complexas para serem - descritas nesta seção. Para os detalhes, por favor veja a - dica em - https://www.linuxfromscratch.org/hints/downloads/files/more_control_and_pkg_man.txt. -

-
-
-
-

- 8.2.3. Implantando LFS em Múltiplos Sistemas -

-

- Uma das vantagens de um sistema LFS é a de que não existem - arquivos que dependam da posição de arquivos em um sistema de - disco. Clonar uma construção LFS para outro computador com a - mesma arquitetura que a do sistema base é tão simples quanto - usar tar na - partição LFS que contém o diretório raiz (cerca de 250MB - descomprimido para uma construção base LFS), copiando aquele - arquivo via transferência de rede ou CD-ROM para o novo - sistema e expandindo-o. A partir daquele ponto, uns poucos - arquivos de configuração terão que ser mudados. Arquivos de - configuração que talvez precisem ser atualizados incluem: - /etc/hosts, /etc/fstab, /etc/passwd, /etc/group, /etc/shadow, - /etc/ld.so.conf, /etc/sysconfig/rc.site, /etc/sysconfig/network, e /etc/sysconfig/ifconfig.eth0. -

-

- Um kernel personalizado talvez seja necessário ser construído - para o novo sistema dependendo das diferenças entre hardware - de sistema e a configuração original do kernel. -

-
-

- Nota -

-

- Tem havido alguns relatos de problemas quando da cópia - entre arquiteturas similares, porém não idênticas. Por - exemplo, o conjunto de instrução para um sistema Intel não - é idêntico com um processador AMD, e versões posteriores de - alguns processadores talvez tenham instruções que estão - indisponíveis em versões anteriores. -

-
-

- Finalmente, o novo sistema tem de ser tornado inicializável - via - Seção 10.4, “Usando o GRUB para Configurar o - Processo de Inicialização”. -

-
-
-
-
-
-
-

- 8.3. Man-pages-5.13 -

-
-
-
-
-

- O pacote Man-pages contém mais que 2.200 páginas de manual. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 33 MB -
-
-
-
-
-

- 8.3.1. Instalação de Man-pages -

-

- Instale Man-pages executando: -

-
make prefix=/usr install
-
-
-

- 8.3.2. - Conteúdo de Man-pages -

-
-
-
- Arquivos instalados: - várias páginas de manual -
-
-
-
-

- Breves Descrições -

- - - - - - - - - - - -
-

- man - pages -

-
-

- Descreve funções da linguagem de programação C, - arquivos importantes de dispositivo e arquivos - significantes de configuração -

-
-
-
-
-
-
-
-
-

- 8.4. Iana-Etc-20220207 -

-
-
-
-
-

- O pacote Iana-Etc fornece dados para serviços e protocolos de - rede. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 4,7 MB -
-
-
-
-
-

- 8.4.1. Instalação de Iana-Etc -

-

- Para esse pacote, nós apenas precisamos copiar os arquivos - para o lugar: -

-
cp services protocols /etc
-
-
-

- 8.4.2. - Conteúdo de Iana-Etc -

-
-
-
- Arquivos instalados: - /etc/protocols e - /etc/services -
-
-
-
-

- Breves Descrições -

- - - - - - - - - - - - - - - -
-

- /etc/protocols -

-
-

- Descreve os vários protocolos DARPA de Internet que - estão disponíveis a partir do subsistema TCP/IP -

-
-

- /etc/services -

-
-

- Fornece um mapeamento entre nomes textuais - amigáveis para serviços de internet e seus números - de porta atribuídos e tipos de protocolos não - expostos -

-
-
-
-
-
-
-
-
-

- 8.5. Glibc-2.35 -

-
-
-
-
-

- O pacote Glibc contém a biblioteca C principal. Essa - biblioteca fornece as rotinas básicas para alocação de - memória, busca em diretórios, abertura e fechamento de - arquivos, leitura e escrita de arquivos, manuseio de - sequências de caracteres, correspondência de padrões, - aritmética, e daí por diante. -

-
-
-
- Tempo aproximado de - construção: 24 UPC -
-
- Espaço em disco - exigido: 2,8 GB -
-
-
-
-
-

- 8.5.1. Instalação de Glibc -

-

- Alguns dos aplicativos Glibc usam o diretório não conforme - com FHS /var/db para armazenar - seus dados em tempo de execução. Aplique a seguinte correção - para fazer com que tais aplicativos armazenem seus dados em - tempo de execução nos locais conformes com FHS: -

-
patch -Np1 -i ../glibc-2.35-fhs-1.patch
-

- A documentação de Glibc recomenda construir Glibc em um - diretório dedicado à construção: -

-
mkdir -v build
-cd       build
-

- Garanta que os utilitários ldconfig e sln serão instalados no - /usr/sbin: -

-
echo "rootsbindir=/usr/sbin" > configparms
-

- Prepare Glibc para compilação: -

-
../configure --prefix=/usr                            \
-             --disable-werror                         \
-             --enable-kernel=3.2                      \
-             --enable-stack-protector=strong          \
-             --with-headers=/usr/include              \
-             libc_cv_slibdir=/usr/lib
-
-

- O significado das opções de configure: -

-
-
- --disable-werror -
-
-

- Essa opção desabilita a opção -Werror passada para GCC. - Isso é necessário para a execução da suíte de teste. -

-
-
- --enable-kernel=3.2 -
-
-

- Essa opção diz ao sistema de construção que este glibc - talvez seja usado com kernels tão antigos quanto 3.2. - Isso significa que a geração de contornos no caso de - uma chamada de sistema introduzida em uma versão - posterior não pode ser usada. -

-
-
- --enable-stack-protector=strong -
-
-

- Essa opção aumenta a segurança de sistema adicionando - código extra para verificar estouros de buffer, tais - como ataques de esmagamento de pilha. -

-
-
- --with-headers=/usr/include -
-
-

- Essa opção diz ao sistema de construção onde encontrar - os cabeçalhos de API de kernel. -

-
-
- libc_cv_slibdir=/usr/lib -
-
-

- Essa variável configura a biblioteca correta para todos - os sistemas. Nós não queremos que lib64 seja usada. -

-
-
-
-

- Compile o pacote: -

-
make
-
-

- Importante -

-

- Nesta seção, a suíte de teste para Glibc é considerada - crítica. Não pule sob qualquer circunstância. -

-
-

- Geralmente uns poucos testes não passam. As falhas de teste - listadas abaixo são usualmente seguras ignorar. -

-
make check
-

- Você talvez veja algumas falhas de teste. A suíte de teste de - Glibc é de alguma forma dependente do sistema anfitrião. Umas - poucas falhas saídas de mais que 4.200 testes geralmente - podem ignoradas. Esta é uma lista dos problemas mais comuns - vistos para versões recentes de LFS: -

-
-
    -
  • -

    - io/tst-lchmod é - conhecido por falhar no ambiente chroot de LFS. -

    -
  • -
  • -

    - misc/tst-ttyname - é conhecido por falhar no ambiente chroot de LFS. -

    -
  • -
  • -

    - O teste nss/tst-nss-files-hosts-multi - é conhecido por falhar se o sistema não tiver endereços - IP não loopback. -

    -
  • -
-
-

- Mesmo sendo uma mensagem inofensiva, o estágio de instalação - de Glibc reclamará acerca da ausência de /etc/ld.so.conf. Impeça esse alerta com: -

-
touch /etc/ld.so.conf
-

- Conserte o Makefile para pular uma verificação de sanidade - desnecessária que falha no ambiente parcial de LFS: -

-
sed '/test-installation/s@$(PERL)@echo not running@' -i ../Makefile
-

- Instale o pacote: -

-
make install
-

- Conserte caminho codificado rigidamente para o carregador de - executável em script ldd: -

-
sed '/RTLDLIST=/s@/usr@@g' -i /usr/bin/ldd
-

- Instale o arquivo de configuração e diretório de tempo de - execução para nscd: -

-
cp -v ../nscd/nscd.conf /etc/nscd.conf
-mkdir -pv /var/cache/nscd
-

- Em seguida, instale os locales que podem fazer o sistema - responder em um idioma diferente. Nenhum dos locales é - exigido, mas se algum deles estiver faltando, então as suítes - de teste de futuros pacotes pulariam casos de teste - importantes. -

-

- Locales individuais podem ser instalados usando o aplicativo - localedef. Por - exemplo, o segundo comando localedef abaixo combina a - definição de locale independente de carácter /usr/share/i18n/locales/cs_CZ com a - definição de mapa de caracteres /usr/share/i18n/charmaps/UTF-8.gz e - adiciona o resultado ao arquivo /usr/lib/locale/locale-archive. As - seguintes instruções instalarão o conjunto mínimo de locales - necessário para a cobertura ótima de testes: -

-
mkdir -pv /usr/lib/locale
-localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true
-localedef -i cs_CZ -f UTF-8 cs_CZ.UTF-8
-localedef -i de_DE -f ISO-8859-1 de_DE
-localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro
-localedef -i de_DE -f UTF-8 de_DE.UTF-8
-localedef -i el_GR -f ISO-8859-7 el_GR
-localedef -i en_GB -f ISO-8859-1 en_GB
-localedef -i en_GB -f UTF-8 en_GB.UTF-8
-localedef -i en_HK -f ISO-8859-1 en_HK
-localedef -i en_PH -f ISO-8859-1 en_PH
-localedef -i en_US -f ISO-8859-1 en_US
-localedef -i en_US -f UTF-8 en_US.UTF-8
-localedef -i es_ES -f ISO-8859-15 es_ES@euro
-localedef -i es_MX -f ISO-8859-1 es_MX
-localedef -i fa_IR -f UTF-8 fa_IR
-localedef -i fr_FR -f ISO-8859-1 fr_FR
-localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro
-localedef -i fr_FR -f UTF-8 fr_FR.UTF-8
-localedef -i is_IS -f ISO-8859-1 is_IS
-localedef -i is_IS -f UTF-8 is_IS.UTF-8
-localedef -i it_IT -f ISO-8859-1 it_IT
-localedef -i it_IT -f ISO-8859-15 it_IT@euro
-localedef -i it_IT -f UTF-8 it_IT.UTF-8
-localedef -i ja_JP -f EUC-JP ja_JP
-localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true
-localedef -i ja_JP -f UTF-8 ja_JP.UTF-8
-localedef -i nl_NL@euro -f ISO-8859-15 nl_NL@euro
-localedef -i ru_RU -f KOI8-R ru_RU.KOI8-R
-localedef -i ru_RU -f UTF-8 ru_RU.UTF-8
-localedef -i se_NO -f UTF-8 se_NO.UTF-8
-localedef -i ta_IN -f UTF-8 ta_IN.UTF-8
-localedef -i tr_TR -f UTF-8 tr_TR.UTF-8
-localedef -i zh_CN -f GB18030 zh_CN.GB18030
-localedef -i zh_HK -f BIG5-HKSCS zh_HK.BIG5-HKSCS
-localedef -i zh_TW -f UTF-8 zh_TW.UTF-8
-

- Em adição, instale o locale para seu próprio país, idioma e - conjunto de caracteres. -

-

- Alternativamente, instale todos os locales listados no - arquivo glibc-2.35/localedata/SUPPORTED (inclui - cada locale listado acima e muitos mais) de uma vez com o - seguinte comando consumidor de tempo: -

-
make localedata/install-locales
-

- Então, use o comando localedef para criar e - instalar locales não listados no arquivo glibc-2.35/localedata/SUPPORTED quando você - precisar deles. Por exemplo, os seguintes dois locales são - necessários para alguns testes posteriormente neste capítulo: -

-
localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true
-localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true
-
-

- Nota -

-

- Glibc agora usa libidn2 quando da resolução de nomes - internacionalizados de domínio. Essa é uma dependência de - tempo de execução. Se essa capacidade for necessária, então - as instruções para instalar libidn2 estão na - página libidn2 de BLFS. -

-
-
-
-

- 8.5.2. Configurando - Glibc -

-
-
-
-
-

- 8.5.2.1. Adicionando - nsswitch.conf -

-
-
-
-

- O arquivo /etc/nsswitch.conf - precisa ser criado, pois os padrões de Glibc não funcionam - bem em um ambiente em rede. -

-

- Crie um novo arquivo /etc/nsswitch.conf executando o seguinte: -

-
cat > /etc/nsswitch.conf << "EOF"
-# Begin /etc/nsswitch.conf
-
-passwd: files
-group: files
-shadow: files
-
-hosts: files dns
-networks: files
-
-protocols: files
-services: files
-ethers: files
-rpc: files
-
-# End /etc/nsswitch.conf
-EOF
-
-
-
-
-
-

- 8.5.2.2. Adicionando dados de - fuso horário -

-
-
-
-

- Instale e configure os dados de fuso horário com o - seguinte: -

-
tar -xf ../../tzdata2021e.tar.gz
-
-ZONEINFO=/usr/share/zoneinfo
-mkdir -pv $ZONEINFO/{posix,right}
-
-for tz in etcetera southamerica northamerica europe africa antarctica  \
-          asia australasia backward; do
-    zic -L /dev/null   -d $ZONEINFO       ${tz}
-    zic -L /dev/null   -d $ZONEINFO/posix ${tz}
-    zic -L leapseconds -d $ZONEINFO/right ${tz}
-done
-
-cp -v zone.tab zone1970.tab iso3166.tab $ZONEINFO
-zic -d $ZONEINFO -p America/New_York
-unset ZONEINFO
-
-

- O significado dos comandos zic: -

-
-
- zic -L - /dev/null ... -
-
-

- Isso cria fusos horários posix sem quaisquer segundos - bissextos. É convencional colocá-los em ambos - zoneinfo e zoneinfo/posix. É necessário - colocar os fusos horários POSIX em zoneinfo, do contrário várias - suítes de teste reportarão erros. Em um sistema - embarcado, onde o espaço é apertado e você não - pretende nunca atualizar os fusos horários, você - poderia economizar 1,9 MB não usando o diretório - posix, mas alguns - aplicativos ou suítes de teste poderiam produzir - algumas falhas. -

-
-
- zic -L - leapseconds ... -
-
-

- Isso cria fusos horários corretos, incluindo segundos - bissextos. Em um sistema embarcado, onde o espaço é - apertado e você não pretende nunca atualizar os fusos - horários, ou se importa com a hora correta, você - poderia economizar 1,9 MB omitindo o diretório - right. -

-
-
- zic ... - -p ... -
-
-

- Isso cria o arquivo posixrules. Nós usamos New York, - pois POSIX exige que as regras de horário de verão - estejam de acordo com regras dos Estados Unidos da - América do Norte. -

-
-
-
-

- Uma maneira para determinar o fuso horário local é - executando o seguinte script: -

-
tzselect
-

- Depois de responder à umas poucas perguntas sobre a - localização, o script retornará o nome do fuso horário (por - exemplo, America/Edmonton). Existem - também alguns outros possíveis fusos horários listados em - /usr/share/zoneinfo, tais - como Canada/Eastern - ou EST5EDT que não - são identificados pelo script, mas podem ser usados. -

-

- Então crie o arquivo /etc/localtime executando: -

-
ln -sfv /usr/share/zoneinfo/<xxx> /etc/localtime
-

- Substitua <xxx> com o nome do - fuso horário selecionado (por exemplo, Canada/Eastern). -

-
-
-
-
-
-

- 8.5.2.3. Configurando o - Carregador Dinâmico -

-
-
-
-

- Por padrão, o carregador dinâmico (/lib/ld-linux.so.2) procura em - /lib e /usr/lib por bibliotecas dinâmicas que - são necessárias para aplicativos assim que são executados. - Entretanto, se existirem bibliotecas em outros diretórios - diferentes de /lib e - /usr/lib, então esses - precisam ser adicionados ao arquivo /etc/ld.so.conf para a finalidade de que - o carregador dinâmico encontre elas. Dois diretórios que - são comumente conhecidos por conterem bibliotecas - adicionais são /usr/local/lib - e /opt/lib, então adicione - esses diretórios ao caminho de busca do carregador - dinâmico. -

-

- Crie um novo arquivo /etc/ld.so.conf executando o seguinte: -

-
cat > /etc/ld.so.conf << "EOF"
-# Begin /etc/ld.so.conf
-/usr/local/lib
-/opt/lib
-
-EOF
-

- Se desejado, o carregador dinâmico também pode pesquisar um - diretório e incluir o conteúdo de arquivos encontrados lá. - Geralmente os arquivos nesse diretório include são uma - linha especificando o caminho de biblioteca desejado. Para - adicionar essa capacidade, execute os seguintes comandos: -

-
cat >> /etc/ld.so.conf << "EOF"
-# Add an include directory
-include /etc/ld.so.conf.d/*.conf
-
-EOF
-mkdir -pv /etc/ld.so.conf.d
-
-
-
-

- 8.5.3. - Conteúdo de Glibc -

-
-
-
- Aplicativos instalados: - gencat, getconf, getent, iconv, - iconvconfig, ldconfig, ldd, lddlibc4, ld.so (link - simbólico para ld-linux-x86-64.so.2 ou ld-linux.so.2), - locale, localedef, makedb, mtrace, nscd, pcprofiledump, - pldd, sln, sotruss, sprof, tzselect, xtrace, zdump, e - zic -
-
- Bibliotecas instaladas: - ld-linux-x86-64.so.2, - ld-linux.so.2, libBrokenLocale.{a,so}, libanl.{a,so}, - libc.{a,so}, libc_nonshared.a, libc_malloc_debug.so, - libcrypt.{a,so}, libdl.{a,so.2}, libg.a, libm.{a,so}, - libmcheck.a, libmemusage.so, libmvec.{a,so}, libnsl.so.1, - libnss_compat.so, libnss_dns.so, libnss_files.so, - libnss_hesiod.so, libpcprofile.so, libpthread.{a,so.0}, - libresolv.{a,so}, librt.{a,so.1}, libthread_db.so, e - libutil.{a,so.1} -
-
- Diretórios instalados: - /usr/include/arpa, - /usr/include/bits, /usr/include/gnu, /usr/include/net, - /usr/include/netash, /usr/include/netatalk, - /usr/include/netax25, /usr/include/neteconet, - /usr/include/netinet, /usr/include/netipx, - /usr/include/netiucv, /usr/include/netpacket, - /usr/include/netrom, /usr/include/netrose, - /usr/include/nfs, /usr/include/protocols, - /usr/include/rpc, /usr/include/sys, /usr/lib/audit, - /usr/lib/gconv, /usr/lib/locale, /usr/libexec/getconf, - /usr/share/i18n, /usr/share/zoneinfo, /var/cache/nscd, e - /var/lib/nss_db -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- gencat -

-
-

- Gera catálogos de mensagem -

-
-

- getconf -

-
-

- Exibe os valores de configuração de sistema para - variáveis específicas do sistema de arquivos -

-
-

- getent -

-
-

- Obtém entradas a partir de uma base de dados - administrativa -

-
-

- iconv -

-
-

- Realiza conversão de conjuntos de caracteres -

-
-

- iconvconfig -

-
-

- Cria arquivos de configuração de módulos de - carregamento rápido de iconv -

-
-

- ldconfig -

-
-

- Configura as ligações de tempo de execução do - vinculador dinâmico -

-
-

- ldd -

-
-

- Reporta quis bibliotecas compartilhadas são - exigidas por cada dado aplicativo ou biblioteca - compartilhada -

-
-

- lddlibc4 -

-
-

- Auxilia ldd com arquivos - objeto. Isso não existe em arquiteturas mais novas - como x86_64 -

-
-

- locale -

-
-

- Imprime várias informações sobre o locale atual -

-
-

- localedef -

-
-

- Compila especificações de locale -

-
-

- makedb -

-
-

- Cria um banco de dados simples a partir de uma - entrada textual -

-
-

- mtrace -

-
-

- Lê e interpreta um arquivo de rastreamento de - memória e exibe um resumo em formato legível por - humanos -

-
-

- nscd -

-
-

- Um daemon que fornece um cache para as solicitações - de serviço de nomes mais comuns -

-
-

- pcprofiledump -

-
-

- Despeja informação gerada pelos perfis do PC -

-
-

- pldd -

-
-

- Lista objetos dinâmicos compartilhados usados por - processos em execução -

-
-

- sln -

-
-

- Um aplicativo ln vinculado - estaticamente -

-
-

- sotruss -

-
-

- Rastreia chamadas de procedimentos de bibliotecas - compartilhadas de um comando especificado -

-
-

- sprof -

-
-

- Lê e exibe dados de perfil de objetos - compartilhados -

-
-

- tzselect -

-
-

- Pergunta ao usuário sobre a localização do sistema - e reporta a correspondente descrição de fuso - horário -

-
-

- xtrace -

-
-

- Rastreia a execução de um aplicativo exibindo a - função atualmente executada -

-
-

- zdump -

-
-

- O despejador de fuso horário -

-
-

- zic -

-
-

- O compilador de fuso horário -

-
-

- ld-*.so -

-
-

- O aplicativo ajudador para executáveis de - bibliotecas compartilhadas -

-
-

- libBrokenLocale -

-
-

- Usado internamente por Glibc como um hack grosseiro - para executar aplicativos quebrados (por exemplo, - alguns aplicativos Motif). Veja comentários em - glibc-2.35/locale/broken_cur_max.c - para mais informação -

-
-

- libanl -

-
-

- Uma biblioteca assíncrona de pesquisa de nomes -

-
-

- libc -

-
-

- A biblioteca C principal -

-
-

- libc_malloc_debug -

-
-

- Liga verificação de alocação de memória quando - pré-carregada -

-
-

- libcrypt -

-
-

- A biblioteca de criptografia -

-
-

- libdl -

-
-

- Biblioteca fictícia que não contém funções. - Anteriormente era a biblioteca de interface do - vinculador dinâmico, cujas funções agora estão em - libc -

-
-

- libg -

-
-

- Biblioteca fictícia que não contém funções. - Anteriormente era uma biblioteca de tempo de - execução para g++ -

-
-

- libm -

-
-

- A biblioteca matemática -

-
-

- libmvec -

-
-

- A biblioteca de vetor matemático, vinculada - conforme necessária quando libm for usada -

-
-

- libmcheck -

-
-

- Liga verificação de alocação de memória quando - quando vinculada para -

-
-

- libmemusage -

-
-

- Usado por memusage para - ajudar a coletar informação sobre o uso de memória - de um aplicativo -

-
-

- libnsl -

-
-

- A biblioteca de serviços de rede, agora obsoleta -

-
-

- libnss_* -

-
-

- Os módulos de Name Service Switch, contendo funções - para resolução de nomes de hosts, nomes de - usuárias(os), nomes de grupos, pseudônimos, - serviços, protocolos, etc. Carregados por - libc conforme a - configuração em /etc/nsswitch.conf -

-
-

- libpcprofile -

-
-

- Pode ser pré-carregada para PC perfilar um - executável -

-
-

- libpthread -

-
-

- Biblioteca fictícia que não contém funções. - Anteriormente continha funções fornecendo a maior - parte das interfaces especificadas pela Extensão - POSIX.1b de Tempo Real, agora as funções estão em - libc -

-
-

- libresolv -

-
-

- Contém funções para criação, envio e interpretação - de pacotes para os servidores de nomes de domínio - de Internet -

-
-

- librt -

-
-

- Contém funções fornecendo a maior parte das - interfaces especificadas pela Extensão POSIX.1b de - Tempo Real -

-
-

- libthread_db -

-
-

- Contém funções úteis para construir depuradores - para aplicativos de múltiplas camadas -

-
-

- libutil -

-
-

- Biblioteca fictícia que não contém funções. - Anteriormente continha código para funções - standard usadas em - muitos utilitários Unix. Essas funções agora estão - em libc -

-
-
-
-
-
-
-
-
-

- 8.6. Zlib-1.2.11 -

-
-
-
-
-

- O pacote Zlib contém rotinas de compressão e descompressão - usadas por alguns aplicativos. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 5,0 MB -
-
-
-
-
-

- 8.6.1. Instalação de Zlib -

-

- Prepare Zlib para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-

- Remova uma biblioteca estática inútil: -

-
rm -fv /usr/lib/libz.a
-
-
-

- 8.6.2. - Conteúdo de Zlib -

-
-
-
- Bibliotecas instaladas: - libz.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- libz -

-
-

- Contém funções de compressão e descompressão usadas - por alguns aplicativos -

-
-
-
-
-
-
-
-
-

- 8.7. Bzip2-1.0.8 -

-
-
-
-
-

- O pacote Bzip2 contém aplicativos para comprimir e - descomprimir arquivos. Comprimir arquivos de texto com - bzip2 gera uma - muito melhor percentagem de compressão que com o tradicional - gzip. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 7,2 MB -
-
-
-
-
-

- 8.7.1. Instalação de Bzip2 -

-

- Aplique um patch que instalará a documentação para esse - pacote: -

-
patch -Np1 -i ../bzip2-1.0.8-install_docs-1.patch
-

- O seguinte comando garante que a instalação de links - simbólicos sejam relativos: -

-
sed -i 's@\(ln -s -f \)$(PREFIX)/bin/@\1@' Makefile
-

- Garanta que as páginas de manual sejam instaladas na - localização correta: -

-
sed -i "s@(PREFIX)/man@(PREFIX)/share/man@g" Makefile
-

- Prepare Bzip2 para compilação com: -

-
make -f Makefile-libbz2_so
-make clean
-
-

- O significado do parâmetro de make: -

-
-
- -f - Makefile-libbz2_so -
-
-

- Isso causará Bzip2 ser construído usando um arquivo - Makefile diferente, nesse - caso o arquivo Makefile-libbz2_so, o qual cria uma - biblioteca dinâmica libbz2.so e vincula os utilitários de - Bzip2 a ela. -

-
-
-
-

- Compile e teste o pacote: -

-
make
-

- Instale os aplicativos: -

-
make PREFIX=/usr install
-

- Instale a biblioteca compartilhada: -

-
cp -av libbz2.so.* /usr/lib
-ln -sv libbz2.so.1.0.8 /usr/lib/libbz2.so
-

- Instale o binário compartilhado bzip2 no diretório - /usr/bin, e substitua duas - cópias de bzip2 - com links simbólicos: -

-
cp -v bzip2-shared /usr/bin/bzip2
-for i in /usr/bin/{bzcat,bunzip2}; do
-  ln -sfv bzip2 $i
-done
-

- Remova uma biblioteca estática inútil: -

-
rm -fv /usr/lib/libbz2.a
-
-
-

- 8.7.2. - Conteúdo de Bzip2 -

-
-
-
- Aplicativos instalados: - bunzip2 (link para bzip2), bzcat - (link para bzip2), bzcmp (link para bzdiff), bzdiff, - bzegrep (link para bzgrep), bzfgrep (link para bzgrep), - bzgrep, bzip2, bzip2recover, bzless (link para bzmore), e - bzmore -
-
- Bibliotecas instaladas: - libbz2.so -
-
- Diretórios instalados: - /usr/share/doc/bzip2-1.0.8 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- bunzip2 -

-
-

- Descomprime arquivos compactados com bzip -

-
-

- bzcat -

-
-

- Descomprime para a saída padrão -

-
-

- bzcmp -

-
-

- Executa cmp em arquivos - compactados com bzip -

-
-

- bzdiff -

-
-

- Executa diff em arquivos - compactados com bzip -

-
-

- bzegrep -

-
-

- Executa egrep em arquivos - compactados com bzip -

-
-

- bzfgrep -

-
-

- Executa fgrep em arquivos - compactados com bzip -

-
-

- bzgrep -

-
-

- Executa grep em arquivos - compactados com bzip -

-
-

- bzip2 -

-
-

- Comprime arquivos usando o algoritmo de compressão - de texto de classificação de blocos Burrows-Wheeler - com codificação Huffman; a taxa de compressão é - melhor que aquela obtida por compressores mais - convencionais usando algoritmos Lempel-Ziv, como - gzip -

-
-

- bzip2recover -

-
-

- Tenta recuperar dados a partir de arquivos - danificados comprimidos com bzip -

-
-

- bzless -

-
-

- Executa less em arquivos - compactados com bzip -

-
-

- bzmore -

-
-

- Executa more em arquivos - compactados com bzip -

-
-

- libbz2 -

-
-

- A biblioteca que implementa compressão de dados de - classificação de blocos sem perdas, usando o - algoritmo Burrows-Wheeler -

-
-
-
-
-
-
-
-
-

- 8.8. Xz-5.2.5 -

-
-
-
-
-

- O pacote Xz contém aplicativos para compressão e - descompressão de arquivos. Ele fornece capacidades para os - formatos de compressão lzma e o mais novo xz. Comprimir - arquivos de texto com xz gera uma melhor - percentagem de compressão que os tradicionais comandos - gzip ou - bzip2. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 15 MB -
-
-
-
-
-

- 8.8.1. Instalação de Xz -

-

- Prepare Xz para compilação com: -

-
./configure --prefix=/usr    \
-            --disable-static \
-            --docdir=/usr/share/doc/xz-5.2.5
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.8.2. Conteúdo de - Xz -

-
-
-
- Aplicativos instalados: - lzcat (link para xz), lzcmp (link - para xzdiff), lzdiff (link para xzdiff), lzegrep (link - para xzgrep), lzfgrep (link para xzgrep), lzgrep (link - para xzgrep), lzless (link para xzless), lzma (link para - xz), lzmadec, lzmainfo, lzmore (link para xzmore), unlzma - (link para xz), unxz (link para xz), xz, xzcat (link para - xz), xzcmp (link para xzdiff), xzdec, xzdiff, xzegrep - (link para xzgrep), xzfgrep (link para xzgrep), xzgrep, - xzless, e xzmore -
-
- Bibliotecas instaladas: - liblzma.so -
-
- Diretórios instalados: - /usr/include/lzma e - /usr/share/doc/xz-5.2.5 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- lzcat -

-
-

- Descomprime para a saída padrão -

-
-

- lzcmp -

-
-

- Executa cmp em arquivos - comprimidos LZMA -

-
-

- lzdiff -

-
-

- Executa diff em arquivos - comprimidos LZMA -

-
-

- lzegrep -

-
-

- Executa egrep em arquivos - comprimidos LZMA -

-
-

- lzfgrep -

-
-

- Executa fgrep em arquivos - comprimidos LZMA -

-
-

- lzgrep -

-
-

- Executa grep em arquivos - comprimidos LZMA -

-
-

- lzless -

-
-

- Executa less em arquivos - comprimidos LZMA -

-
-

- lzma -

-
-

- Comprime ou descomprime arquivos usando o formato - LZMA -

-
-

- lzmadec -

-
-

- Um decodificador pequeno e rápido para arquivos - comprimidos LZMA -

-
-

- lzmainfo -

-
-

- Exibe informação armazenada no cabeçalho de arquivo - comprimido com LZMA -

-
-

- lzmore -

-
-

- Executa more em arquivos - comprimidos LZMA -

-
-

- unlzma -

-
-

- Descomprime arquivos usando o formato LZMA -

-
-

- unxz -

-
-

- Descomprime arquivos usando o formato XZ -

-
-

- xz -

-
-

- Comprime ou descomprime arquivos usando o formato - XZ -

-
-

- xzcat -

-
-

- Descomprime para a saída padrão -

-
-

- xzcmp -

-
-

- Executa cmp em arquivos - comprimidos XZ -

-
-

- xzdec -

-
-

- Um decodificador pequeno e rápido para arquivos - comprimidos XZ -

-
-

- xzdiff -

-
-

- Executa diff em arquivos - comprimidos XZ -

-
-

- xzegrep -

-
-

- Executa egrep em arquivos - comprimidos XZ -

-
-

- xzfgrep -

-
-

- Executa fgrep em arquivos - comprimidos XZ -

-
-

- xzgrep -

-
-

- Executa grep em arquivos - comprimidos XZ -

-
-

- xzless -

-
-

- Executa less em arquivos - comprimidos XZ -

-
-

- xzmore -

-
-

- Executa more em arquivos - comprimidos XZ -

-
-

- liblzma -

-
-

- A biblioteca que implementa compressão de dados de - classificação de blocos, sem perdas, usando o - algoritmo de cadeia Lempel-Ziv-Markov -

-
-
-
-
-
-
-
-
-

- 8.9. Zstd-1.5.2 -

-
-
-
-
-

- Zstandard é um algoritmo de tempo real de compressão, - fornecendo taxas altas de compressão. Ele oferece um - intervalo muito amplo de combinações de - compressão/velocidade, enquanto é apoiado por um - decodificador muito rápido. -

-
-
-
- Tempo aproximado de - construção: 1,1 UPC -
-
- Espaço em disco - exigido: 55 MB -
-
-
-
-
-

- 8.9.1. Instalação de Zstd -

-

- Compile o pacote: -

-
make
-
-

- Nota -

-

- Na saída de teste existem muitos lugares que indicam - 'failed'. Essas são esperadas e apenas 'FAIL' é uma falha - atual de teste. Não deveriam existir falhas de teste. -

-
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make prefix=/usr install
-

- Remova a biblioteca estática: -

-
rm -v /usr/lib/libzstd.a
-
-
-

- 8.9.2. - Conteúdo de Zstd -

-
-
-
- Aplicativos instalados: - zstd, zstdcat (link para zstd), - zstdgrep, zstdless, zstdmt (link para zstd), e unzstd - (link para zstd) -
-
- Bibliotecas instaladas: - libzstd.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- zstd -

-
-

- Comprime ou descomprime arquivos usando o formato - ZSTD -

-
-

- zstdgrep -

-
-

- Executa grep em arquivos - comprimidos ZSTD -

-
-

- zstdless -

-
-

- Executa less em arquivos - comprimidos ZSTD -

-
-

- libzstd -

-
-

- A biblioteca que implementa compressão de dados sem - perdas, usando o algoritmo ZSTD -

-
-
-
-
-
-
-
-
-

- 8.10. File-5.41 -

-
-
-
-
-

- O pacote File contém um utilitário para determinar o tipo de - um dado arquivo ou arquivos. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 15 MB -
-
-
-
-
-

- 8.10.1. Instalação de File -

-

- Prepare File para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.10.2. - Conteúdo de File -

-
-
-
- Aplicativos instalados: - file -
-
- Bibliotecas instaladas: - libmagic.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- file -

-
-

- Tenta classificar cada arquivo dado; ele faz isso - realizando vários testes—testes de sistema de - arquivos, testes de números mágicos, e testes de - idioma -

-
-

- libmagic -

-
-

- Contém rotinas para reconhecimento de números - mágicos, usado pelo aplicativo file -

-
-
-
-
-
-
-
-
-

- 8.11. Readline-8.1.2 -

-
-
-
-
-

- O pacote Readline é um conjunto de bibliotecas que oferecem - edição de linha de comando e capacidades de histórico. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 15 MB -
-
-
-
-
-

- 8.11.1. Instalação de Readline -

-

- Reinstalar Readline causará as bibliotecas antigas serem - movidas para <libraryname>.old. Mesmo que isso - normalmente não seja um problema, em alguns casos isso pode - deflagrar um defeito de vinculação em ldconfig. Isso pode ser - evitado executando os seguintes dois seds: -

-
sed -i '/MV.*old/d' Makefile.in
-sed -i '/{OLDSUFF}/c:' support/shlib-install
-

- Prepare Readline para compilação: -

-
./configure --prefix=/usr    \
-            --disable-static \
-            --with-curses    \
-            --docdir=/usr/share/doc/readline-8.1.2
-
-

- O significado da opção de configure: -

-
-
- --with-curses -
-
-

- Essa opção diz a Readline que ela pode encontrar as - funções de biblioteca de termcap na biblioteca curses, - em vez de uma biblioteca termcap separada. Ela permite - a geração de um arquivo readline.pc correto. -

-
-
-
-

- Compile o pacote: -

-
make SHLIB_LIBS="-lncursesw"
-
-

- O significado da opção de make: -

-
-
- SHLIB_LIBS="-lncursesw" -
-
-

- Essa opção força Readline a vincular com a biblioteca - libncursesw. -

-
-
-
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
make SHLIB_LIBS="-lncursesw" install
-

- Se desejado, instale a documentação: -

-
install -v -m644 doc/*.{ps,pdf,html,dvi} /usr/share/doc/readline-8.1.2
-
-
-

- 8.11.2. Conteúdo de Readline -

-
-
-
- Bibliotecas instaladas: - libhistory.so e - libreadline.so -
-
- Diretórios instalados: - /usr/include/readline e - /usr/share/doc/readline-8.1.2 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- libhistory -

-
-

- Fornece uma consistente interface de usuária(o) - para recordar linhas de histórico -

-
-

- libreadline -

-
-

- Fornece um conjunto de comandos para manipular - texto digitado em uma sessão interativa de um - aplicativo -

-
-
-
-
-
-
-
-
-

- 8.12. M4-1.4.19 -

-
-
-
-
-

- O pacote M4 contém um processador de macro. -

-
-
-
- Tempo aproximado de - construção: 0,7 UPC -
-
- Espaço em disco - exigido: 49 MB -
-
-
-
-
-

- 8.12.1. Instalação de M4 -

-

- Prepare M4 para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.12.2. Conteúdo - de M4 -

-
-
-
- Aplicativo instalado: - m4 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- m4 -

-
-

- Copia os arquivos dados enquanto expande as macros - que eles contém. Essas macros são ou nativas ou - definidas pela(o) usuária(o) e podem receber - qualquer número de argumentos. Além de executar - expansão de macro, m4 tem funções - nativas para incluir arquivos nomeados, executar - comandos Unix, realizar aritmética de inteiros, - manipular texto, recursão, etc. O aplicativo - m4 - pode ser usado ou como um front-end para um - compilador ou como um processador de macro - independente -

-
-
-
-
-
-
-
-
-

- 8.13. Bc-5.2.2 -

-
-
-
-
-

- O pacote Bc contém uma linguagem de processamento numérica de - precisão arbitrária. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 7,1 MB -
-
-
-
-
-

- 8.13.1. Instalação de Bc -

-

- Prepare Bc para compilação: -

-
CC=gcc ./configure --prefix=/usr -G -O3
-
-

- O significado das opções de configure: -

-
-
- CC=gcc -
-
-

- Esse parâmetro especifica o compilador a usar. -

-
-
- -O3 -
-
-

- Especifica a optimização a usar. -

-
-
- -G -
-
-

- Omite partes da suíte de teste que não funcionariam sem - um GNU bc presente. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar bc, execute: -

-
make test
-

- Instale o pacote: -

-
make install
-
-
-

- 8.13.2. Conteúdo - de Bc -

-
-
-
- Aplicativos instalados: - bc e dc -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- bc -

-
-

- Uma calculadora de linha de comando -

-
-

- dc -

-
-

- Uma calculadora de linha de comando de entrada - polonesa - reversa -

-
-
-
-
-
-
-
-
-

- 8.14. Flex-2.6.4 -

-
-
-
-
-

- O pacote Flex contém um utilitário para gerar aplicativos que - reconhecem padrões em texto. -

-
-
-
- Tempo aproximado de - construção: 0,4 UPC -
-
- Espaço em disco - exigido: 32 MB -
-
-
-
-
-

- 8.14.1. Instalação de Flex -

-

- Prepare Flex para compilação: -

-
./configure --prefix=/usr \
-            --docdir=/usr/share/doc/flex-2.6.4 \
-            --disable-static
-

- Compile o pacote: -

-
make
-

- Para testar os resultados (cerca de 0,5 UPC), execute: -

-
make check
-

- Instale o pacote: -

-
make install
-

- Uns poucos aplicativos não sabem acerca de flex ainda e tentam - executar seu predecessor, lex. Para suportar esses - aplicativos, crie um link simbólico chamado lex que executa flex em modo de emulação lex: -

-
ln -sv flex /usr/bin/lex
-
-
-

- 8.14.2. - Conteúdo de Flex -

-
-
-
- Aplicativos instalados: - flex, flex++ (link para flex), e - lex (link para flex) -
-
- Bibliotecas instaladas: - libfl.so -
-
- Diretórios instalados: - /usr/share/doc/flex-2.6.4 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- flex -

-
-

- Uma ferramenta para gerar aplicativos que - reconhecem padrões em texto; ele permite, para a - versatilidade, especificar as regras para encontrar - padrões, erradicando a necessidade de desenvolver - um aplicativo especializado -

-
-

- flex++ -

-
-

- Uma extensão de flex, é usada para gerar código e - classes C++. É um link simbólico para flex -

-
-

- lex -

-
-

- Um link simbólico que executa flex em modo de - emulação lex -

-
-

- libfl -

-
-

- A biblioteca flex -

-
-
-
-
-
-
-
-
-

- 8.15. Tcl-8.6.12 -

-
-
-
-
-

- O pacote Tcl contém a Tool - Command Language, uma linguagem de script robusta de - propósito geral. O pacote Expect é escrito na linguagem - Tcl. -

-
-
-
- Tempo aproximado de - construção: 3,4 UPC -
-
- Espaço em disco - exigido: 87 MB -
-
-
-
-
-

- 8.15.1. Instalação de Tcl -

-

- Esse pacote e os próximos dois (Expect e DejaGNU) são - instalados para suportar a execução das suítes de teste para - binutils e GCC e outros pacotes. Instalar três pacotes para - propósitos de teste talvez pareça excessivo, mas é muito - assegurador, se não essencial, saber que as ferramentas mais - importantes estão funcionando adequadamente. -

-

- Primeiro, desempacote a documentação executando o seguinte - comando: -

-
tar -xf ../tcl8.6.12-html.tar.gz --strip-components=1
-

- Prepare Tcl para compilação: -

-
SRCDIR=$(pwd)
-cd unix
-./configure --prefix=/usr           \
-            --mandir=/usr/share/man \
-            $([ "$(uname -m)" = x86_64 ] && echo --enable-64bit)
-
-

- O significado das opções de configure: -

-
-
- $([ - "$(uname -m)" = x86_64 ] && echo - --enable-64bit) -
-
-

- A construção $(<shell - command>) é substituída pela saída do - comando de shell. Aqui essa saída é vazia se executada - em uma máquina de 32 bits, e é --enable-64bit se - executada em uma máquina de 64 bits. -

-
-
-
-

- Construa o pacote: -

-
make
-
-sed -e "s|$SRCDIR/unix|/usr/lib|" \
-    -e "s|$SRCDIR|/usr/include|"  \
-    -i tclConfig.sh
-
-sed -e "s|$SRCDIR/unix/pkgs/tdbc1.1.3|/usr/lib/tdbc1.1.3|" \
-    -e "s|$SRCDIR/pkgs/tdbc1.1.3/generic|/usr/include|"    \
-    -e "s|$SRCDIR/pkgs/tdbc1.1.3/library|/usr/lib/tcl8.6|" \
-    -e "s|$SRCDIR/pkgs/tdbc1.1.3|/usr/include|"            \
-    -i pkgs/tdbc1.1.3/tdbcConfig.sh
-
-sed -e "s|$SRCDIR/unix/pkgs/itcl4.2.2|/usr/lib/itcl4.2.2|" \
-    -e "s|$SRCDIR/pkgs/itcl4.2.2/generic|/usr/include|"    \
-    -e "s|$SRCDIR/pkgs/itcl4.2.2|/usr/include|"            \
-    -i pkgs/itcl4.2.2/itclConfig.sh
-
-unset SRCDIR
-

- As várias instruções sed após o comando make - removem referências ao diretório de construção dos arquivos - de configuração e as substituem com o diretório de - instalação. Isso não é obrigatório para o restante de LFS, - porém talvez seja necessário caso um pacote construído - posteriormente use Tcl. -

-

- Para testar os resultados, execute: -

-
make test
-

- Instale o pacote: -

-
make install
-

- Torne as bibliotecas instaladas graváveis de modo que - símbolos de depuração possam ser removidos posteriormente: -

-
chmod -v u+w /usr/lib/libtcl8.6.so
-

- Instale os cabeçalhos do Tcl. O próximo pacote, Expect, exige - elas. -

-
make install-private-headers
-

- Agora faça um necessário link simbólico: -

-
ln -sfv tclsh8.6 /usr/bin/tclsh
-

- Renomeie uma página de manual que conflita com uma página de - manual de Perl: -

-
mv /usr/share/man/man3/{Thread,Tcl_Thread}.3
-

- Se você transferiu a documentação opcional, então instale ela - executando os seguintes comandos: -

-
mkdir -v -p /usr/share/doc/tcl-8.6.12
-cp -v -r  ../html/* /usr/share/doc/tcl-8.6.12
-
-
-

- 8.15.2. Conteúdo - de Tcl -

-
-
-
- Aplicativos instalados: - tclsh (link to tclsh8.6) e - tclsh8.6 -
-
- Bibliotecas instaladas: - libtcl8.6.so e - libtclstub8.6.a -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- tclsh8.6 -

-
-

- O shell de comando de Tcl -

-
-

- tclsh -

-
-

- Um link para tclsh8.6 -

-
-

- libtcl8.6.so -

-
-

- A biblioteca Tcl -

-
-

- libtclstub8.6.a -

-
-

- A biblioteca Stub de Tcl -

-
-
-
-
-
-
-
-
-

- 8.16. Expect-5.45.4 -

-
-
-
-
-

- O pacote Expect contém - ferramentas para automatizar, via diálogos com script, - aplicativos interativos tais como telnet, ftp, passwd, fsck, rlogin, e tip. Expect também é útil para testar esses - mesmos aplicativos bem como facilitar todos os tipos de - tarefas que são proibitivamente difíceis com qualquer outra - coisa. A estrutura subjacente de DejaGnu é escrita em Expect. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 3,9 MB -
-
-
-
-
-

- 8.16.1. Instalação de Expect -

-

- Prepare Expect para compilação: -

-
./configure --prefix=/usr           \
-            --with-tcl=/usr/lib     \
-            --enable-shared         \
-            --mandir=/usr/share/man \
-            --with-tclinclude=/usr/include
-
-

- O significado das opções de configure: -

-
-
- --with-tcl=/usr/lib -
-
-

- Esse parâmetro é necessário para dizer a configure onde o - script tclConfig.sh está - localizado. -

-
-
- --with-tclinclude=/usr/include -
-
-

- Isso explicitamente diz a Expect onde encontrar os - cabeçalhos internos de Tcl. -

-
-
-
-

- Construa o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make test
-

- Instale o pacote: -

-
make install
-ln -svf expect5.45.4/libexpect5.45.4.so /usr/lib
-
-
-

- 8.16.2. - Conteúdo de Expect -

-
-
-
- Aplicativo instalado: - expect -
-
- Biblioteca instalada: - libexpect5.45.4.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- expect -

-
-

- Comunica-se com outros aplicativos interativos de - acordo com um script -

-
-

- libexpect-5.45.4.so -

-
-

- Contém funções que permitem a Expect ser usado como - uma extensão Tcl ou ser usado diretamente a partir - de C ou C++ (sem Tcl) -

-
-
-
-
-
-
-
-
-

- 8.17. DejaGNU-1.6.3 -

-
-
-
-
-

- O pacote DejaGnu contém uma - estrutura subjacente para executar suítes de teste em - ferramentas GNU. Ele é escrito em expect, a qual usa ela - própria Tcl (Tool Command - Language). -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 6,9 MB -
-
-
-
-
-

- 8.17.1. Instalação de DejaGNU -

-

- A(O) desenvolvedora(r) recomenda construir DejaGNU em um - diretório dedicado à construção: -

-
mkdir -v build
-cd       build
-

- Prepare DejaGNU para compilação: -

-
../configure --prefix=/usr
-makeinfo --html --no-split -o doc/dejagnu.html ../doc/dejagnu.texi
-makeinfo --plaintext       -o doc/dejagnu.txt  ../doc/dejagnu.texi
-

- Construa e instale o pacote: -

-
make install
-install -v -dm755  /usr/share/doc/dejagnu-1.6.3
-install -v -m644   doc/dejagnu.{html,txt} /usr/share/doc/dejagnu-1.6.3
-

- Para testar os resultados, execute: -

-
make check
-
-
-

- 8.17.2. - Conteúdo de DejaGNU -

-
-
-
- Aplicativos instalados: - dejagnu e runtest -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- dejagnu -

-
-

- Iniciador de comando auxiliar DejaGNU -

-
-

- runtest -

-
-

- Um script encapsulador que localiza o shell - expect adequado - e, em seguida, executa o DejaGNU -

-
-
-
-
-
-
-
-
-

- 8.18. Binutils-2.38 -

-
-
-
-
-

- O pacote Binutils contém um vinculador, um montador, e outras - ferramentas para manusear arquivos objeto. -

-
-
-
- Tempo aproximado de - construção: 6,1 UPC -
-
- Espaço em disco - exigido: 4,6 GB -
-
-
-
-
-

- 8.18.1. Instalação de Binutils -

-

- Verifique se os Pseudo Terminais (PTYs) estão funcionando - adequadamente dentro do ambiente chroot executando um teste - simples: -

-
expect -c "spawn ls"
-

- Esse comando deveria retornar o seguinte: -

-
spawn ls
-

- Se, ao invés, a saída incluir a mensagem abaixo, então o - ambiente não está configurado para operação adequada de PTY. - Esse problema precisa ser resolvido antes de executar as - suítes de teste para Binutils e GCC: -

-
The system has no more ptys.
-Ask your system administrator to create more.
-

- A(O) desenvolvedora(r) fez um conjunto curto de comandos para - fixar um problema quando do uso de binutils para construir - alguns pacotes BLFS com Link Time Optimization (LTO) - habilitado. Aplique ele agora: -

-
patch -Np1 -i ../binutils-2.38-lto_fix-1.patch
-

- Agora, faça um conserto identificado pela(o) - desenvolvedora(r) que afeta a construção alguns pacotes: -

-
sed -e '/R_386_TLS_LE /i \   || (TYPE) == R_386_TLS_IE \\' \
-    -i ./bfd/elfxx-x86.h
-

- A documentação de Binutils recomenda construir Binutils em um - diretório dedicado à construção: -

-
mkdir -v build
-cd       build
-

- Prepare Binutils para compilação: -

-
../configure --prefix=/usr       \
-             --enable-gold       \
-             --enable-ld=default \
-             --enable-plugins    \
-             --enable-shared     \
-             --disable-werror    \
-             --enable-64-bit-bfd \
-             --with-system-zlib
-
-

- O significado dos parâmetros de configure: -

-
-
- --enable-gold -
-
-

- Constrói o vinculador gold e instala ele como ld.gold - (juntamente com o vinculador padrão). -

-
-
- --enable-ld=default -
-
-

- Constrói o vinculador bfd original e instala ele como - ambos ld (o vinculador padrão) e ld.bfd. -

-
-
- --enable-plugins -
-
-

- Habilita suporte de plugin para o vinculador. -

-
-
- --enable-64-bit-bfd -
-
-

- Habilita suporte de 64 bits (em anfitriões com tamanhos - de palavra mais estreitos). Talvez não seja necessário - em sistemas de 64 bits, porém não causa dano. -

-
-
- --with-system-zlib -
-
-

- Usa a biblioteca zlib instalada em vez de construir a - versão incluída. -

-
-
-
-

- Compile o pacote: -

-
make tooldir=/usr
-
-

- O significado do parâmetro de make: -

-
-
- tooldir=/usr -
-
-

- Normalmente, o tooldir (o diretório onde os executáveis - estarão ultimamente localizados) é configurado para - $(exec_prefix)/$(target_alias). Por - exemplo, máquinas x86_64 expandiriam isso para - /usr/x86_64-pc-linux-gnu. - Por causa que este é um sistema personalizado, esse - diretório alvo específico em /usr não é exigido. $(exec_prefix)/$(target_alias) seria - usado se o sistema fosse usado para compilar - cruzadamente (por exemplo, compilar um pacote em uma - máquina Intel que gera código que pode ser executado em - máquinas PowerPC). -

-
-
-
-
-

- Importante -

-

- A suíte de teste para Binutils nesta seção é considerada - crítica. Não pule sob quaisquer circunstâncias. -

-
-

- Teste os resultados: -

-
make -k check
-

- Instale o pacote: -

-
make tooldir=/usr install
-

- Remova bibliotecas estáticas inúteis: -

-
rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes}.a
-
-
-

- 8.18.2. Conteúdo de Binutils -

-
-
-
- Aplicativos instalados: - addr2line, ar, as, c++filt, dwp, - elfedit, gprof, ld, ld.bfd, ld.gold, nm, objcopy, - objdump, ranlib, readelf, size, strings, e strip -
-
- Bibliotecas instaladas: - libbfd.so, libctf.so, - libctf-nobfd.so, e libopcodes.so -
-
- Diretório instalado: - /usr/lib/ldscripts -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- addr2line -

-
-

- Traduz endereços de aplicativos para nomes de - arquivo e números de linha; dado um endereço e o - nome de um executável, ele usa a informação de - depuração no executável para determinar qual - arquivo fonte e número de linha estão associados ao - endereço -

-
-

- ar -

-
-

- Cria, modifica e extrai a partir de arquivamentos -

-
-

- as -

-
-

- Um montador que monta a saída de gcc para dentro - de arquivos objeto -

-
-

- c++filt -

-
-

- Usado pelo vinculador para desmembrar símbolos C++ - e Java e para impedir que funções sobrecarregadas - entrem em conflito -

-
-

- dwp -

-
-

- O utilitário de empacotamento DWARF -

-
-

- elfedit -

-
-

- Atualiza o cabeçalho ELF de arquivos ELF -

-
-

- gprof -

-
-

- Exibe dados do perfil de gráfico de chamada -

-
-

- ld -

-
-

- Um vinculador que combina um número de objetos e - arquivos de arquivamento em um arquivo, realocando - seus dados e vinculando referências de símbolos -

-
-

- ld.gold -

-
-

- Uma versão reduzida de ld que suporta apenas o - formato de arquivo de objeto elf -

-
-

- ld.bfd -

-
-

- Hard link para ld -

-
-

- nm -

-
-

- Lista os símbolos que ocorrem em um dado arquivo de - objeto -

-
-

- objcopy -

-
-

- Traduz um tipo de arquivo de objeto em outro -

-
-

- objdump -

-
-

- Exibe informação sobre o dado arquivo de objeto, - com opções controlando a informação particular a - ser exibida; a informação mostrada é útil para - programadores que estão trabalhando nas ferramentas - de compilação -

-
-

- ranlib -

-
-

- Gera um índice do conteúdo de um arquivamento e o - armazena no arquivamento; o índice lista todos os - símbolos definidos pelos membros do arquivamento - que são arquivos de objeto realocáveis -

-
-

- readelf -

-
-

- Exibe informação sobre binários de tipo ELF -

-
-

- size -

-
-

- Lista os tamanhos de seção e o tamanho total para - os arquivos de objeto dados -

-
-

- strings -

-
-

- Exibe, para cada arquivo dado, as sequências de - caracteres imprimíveis que são de, no mínimo, o - tamanho especificado (padronizado para quatro); - para arquivos de objeto, ele imprime, por padrão, - apenas as sequências de caracteres a partir das - seções de inicialização e carregamento enquanto que - para outros tipos de arquivos, ele escaneia o - arquivo inteiro -

-
-

- strip -

-
-

- Descarta símbolos de arquivos de objeto -

-
-

- libbfd -

-
-

- A biblioteca de Descritor de Arquivo Binário -

-
-

- libctf -

-
-

- A biblioteca de suporte de depuração Compat ANSI-C - Type Format -

-
-

- libctf-nobfd -

-
-

- Uma variante de libctf que não usa funcionalidade - de libbfd -

-
-

- libopcodes -

-
-

- Uma biblioteca para lidar com opcodes—as - versões de texto legível de - instruções para o processador; é usado para - construir utilitários como objdump -

-
-
-
-
-
-
-
-
-

- 8.19. GMP-6.2.1 -

-
-
-
-
-

- O pacote GMP contém bibliotecas matemáticas. Essas tem - funções úteis para aritmética de precisão arbitrária. -

-
-
-
- Tempo aproximado de - construção: 1,0 UPC -
-
- Espaço em disco - exigido: 52 MB -
-
-
-
-
-

- 8.19.1. Instalação de GMP -

-
-

- Nota -

-

- Se você estiver construindo para x86 de 32 bits, mas tem - uma CPU capaz de executar código de 64 bits e você especificou CFLAGS no ambiente, então o script configure - tentará configurar para 64 bits e falhará. Impeça isso - invocando o comando de configure abaixo com -

-
ABI=32 ./configure ...
-
-
-

- Nota -

-

- As configurações padrão de GMP produzem bibliotecas - otimizadas para o processador anfitrião. Se bibliotecas - adequadas para processadores menos capazes que a CPU do - anfitrião forem desejadas, então bibliotecas genéricas - podem ser criadas executando o seguinte: -

-
cp -v configfsf.guess config.guess
-cp -v configfsf.sub   config.sub
-
-

- Prepare GMP para compilação: -

-
./configure --prefix=/usr    \
-            --enable-cxx     \
-            --disable-static \
-            --docdir=/usr/share/doc/gmp-6.2.1
-
-

- O significado das novas opções de - configure: -

-
-
- --enable-cxx -
-
-

- Esse parâmetro habilita suporte a C++ -

-
-
- --docdir=/usr/share/doc/gmp-6.2.1 -
-
-

- Essa variável especifica o lugar correto para a - documentação. -

-
-
-
-

- Compile o pacote e gere a documentação HTML: -

-
make
-make html
-
-

- Importante -

-

- A suíte de teste para GMP nesta seção é considerada - crítica. Não pule sob quaisquer circunstâncias. -

-
-

- Teste os resultados: -

-
make check 2>&1 | tee gmp-check-log
-
-

- Cuidado -

-

- O código em gmp é altamente otimizado para o processador - onde ele é construído. Ocasionalmente, o código que detecta - o processador identifica errado as capacidades de sistema e - existirão erros nos testes ou outros aplicativos que usam - as bibliotecas de gmp com a mensagem "Illegal instruction". - Nesse caso, gmp deveria ser reconfigurado com a opção - --build=x86_64-pc-linux-gnu e reconstruído. -

-
-

- Certifique-se de que todos os 197 testes na suíte de teste - passaram. Verifique os resultados executando o seguinte - comando: -

-
awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log
-

- Instale o pacote e a documentação dele: -

-
make install
-make install-html
-
-
-

- 8.19.2. Conteúdo - de GMP -

-
-
-
- Bibliotecas instaladas: - libgmp.so e libgmpxx.so -
-
- Diretório instalado: - /usr/share/doc/gmp-6.2.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- libgmp -

-
-

- Contém funções matemáticas de precisão -

-
-

- libgmpxx -

-
-

- Contém funções matemáticas de precisão C++ -

-
-
-
-
-
-
-
-
-

- 8.20. MPFR-4.1.0 -

-
-
-
-
-

- O pacote MPFR contém funções para matemática de precisão - múltipla. -

-
-
-
- Tempo aproximado de - construção: 0,8 UPC -
-
- Espaço em disco - exigido: 38 MB -
-
-
-
-
-

- 8.20.1. Instalação de MPFR -

-

- Prepare MPFR para compilação: -

-
./configure --prefix=/usr        \
-            --disable-static     \
-            --enable-thread-safe \
-            --docdir=/usr/share/doc/mpfr-4.1.0
-

- Compile o pacote e gere a documentação HTML: -

-
make
-make html
-
-

- Importante -

-

- A suíte de teste para MPFR nesta seção é considerada - crítica. Não pule sob quaisquer circunstâncias. -

-
-

- Teste os resultados e certifique-se de que todos os testes - passaram: -

-
make check
-

- Instale o pacote e a documentação dele: -

-
make install
-make install-html
-
-
-

- 8.20.2. - Conteúdo de MPFR -

-
-
-
- Biblioteca instalada: - libmpfr.so -
-
- Diretório instalado: - /usr/share/doc/mpfr-4.1.0 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- libmpfr -

-
-

- Contém funções matemáticas de precisão múltipla -

-
-
-
-
-
-
-
-
-

- 8.21. MPC-1.2.1 -

-
-
-
-
-

- O pacote MPC contém uma biblioteca para a aritmética de - números complexos com precisão arbitrariamente alta e - arredondamento correto de resultado. -

-
-
-
- Tempo aproximado de - construção: 0,3 UPC -
-
- Espaço em disco - exigido: 21 MB -
-
-
-
-
-

- 8.21.1. Instalação de MPC -

-

- Prepare MPC para compilação: -

-
./configure --prefix=/usr    \
-            --disable-static \
-            --docdir=/usr/share/doc/mpc-1.2.1
-

- Compile o pacote e gere a documentação HTML: -

-
make
-make html
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote e a documentação dele: -

-
make install
-make install-html
-
-
-

- 8.21.2. Conteúdo - de MPC -

-
-
-
- Biblioteca instalada: - libmpc.so -
-
- Diretório instalado: - /usr/share/doc/mpc-1.2.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- libmpc -

-
-

- Contém funções matemáticas complexas -

-
-
-
-
-
-
-
-
-

- 8.22. Attr-2.5.1 -

-
-
-
-
-

- O pacote attr contém utilitários para administrar os - atributos estendidos sobre objetos de sistema de arquivos. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 4,1 MB -
-
-
-
-
-

- 8.22.1. Instalação de Attr -

-

- Prepare Attr para compilação: -

-
./configure --prefix=/usr     \
-            --disable-static  \
-            --sysconfdir=/etc \
-            --docdir=/usr/share/doc/attr-2.5.1
-

- Compile o pacote: -

-
make
-

- Os testes precisam ser executados sobre um sistema de - arquivos que suporte atributos estendidos, tais como os - sistemas de arquivos ext2, ext3 ou ext4. Para testar os - resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.22.2. - Conteúdo de Attr -

-
-
-
- Aplicativos instalados: - attr, getfattr, e setfattr -
-
- Biblioteca instalada: - libattr.so -
-
- Diretórios instalados: - /usr/include/attr e - /usr/share/doc/attr-2.5.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- attr -

-
-

- Estende atributos sobre objetos de sistemas de - arquivos -

-
-

- getfattr -

-
-

- Obtém os atributos estendidos de objetos de - sistemas de arquivos -

-
-

- setfattr -

-
-

- Configura os atributos estendidos de objetos de - sistemas de arquivos -

-
-

- libattr -

-
-

- Contém as funções de biblioteca para manipular - atributos estendidos -

-
-
-
-
-
-
-
-
-

- 8.23. Acl-2.3.1 -

-
-
-
-
-

- O pacote Acl contém utilitários para administrar Listas de - Controle de Acesso, as quais são usadas para definir direitos - de acesso discricionários mais refinados para arquivos e - diretórios. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 6,1 MB -
-
-
-
-
-

- 8.23.1. Instalação de Acl -

-

- Prepare Acl para compilação: -

-
./configure --prefix=/usr         \
-            --disable-static      \
-            --docdir=/usr/share/doc/acl-2.3.1
-

- Compile o pacote: -

-
make
-

- Os testes de Acl precisam ser executados sobre um sistema de - arquivos que suporte controles de acesso, após Coreutils ter sido construído com as - bibliotecas de Acl. Se desejado, retorne a esse pacote e - execute make - check após Coreutils ter sido construído - posteriormente neste capítulo. -

-

- Instale o pacote: -

-
make install
-
-
-

- 8.23.2. Conteúdo - de Acl -

-
-
-
- Aplicativos instalados: - chacl, getfacl, e setfacl -
-
- Biblioteca instalada: - libacl.so -
-
- Diretórios instalados: - /usr/include/acl e - /usr/share/doc/acl-2.3.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- chacl -

-
-

- Muda a lista de controle de acesso de um arquivo ou - diretório -

-
-

- getfacl -

-
-

- Obtém listas de controle de acesso de arquivo -

-
-

- setfacl -

-
-

- Configura listas de controle de acesso de arquivo -

-
-

- libacl -

-
-

- Contém as funções de biblioteca para manipular - Listas de Controle de Acesso -

-
-
-
-
-
-
-
-
-

- 8.24. Libcap-2.63 -

-
-
-
-
-

- O pacote Libcap implementa as interfaces de espaço de - usuária(o) para as capacidades POSIX 1003.1e disponíveis em - kernels Linux. Essas capacidades são um particionamento de - todo o poderoso privilégio de root em um conjunto de - privilégios distintos. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 2,7 MB -
-
-
-
-
-

- 8.24.1. Instalação de Libcap -

-

- Impeça bibliotecas estáticas de serem instaladas: -

-
sed -i '/install -m.*STA/d' libcap/Makefile
-

- Compile o pacote: -

-
make prefix=/usr lib=lib
-
-

- O significado da opção de make: -

-
-
- lib=lib -
-
-

- Esse parâmetro configura o diretório de biblioteca para - /usr/lib em vez de - /usr/lib64 em x86_64. Ele - não tem efeito em x86. -

-
-
-
-

- Para testar os resultados, execute: -

-
make test
-

- Instale o pacote: -

-
make prefix=/usr lib=lib install
-
-
-

- 8.24.2. - Conteúdo de Libcap -

-
-
-
- Aplicativos instalados: - capsh, getcap, getpcaps, e - setcap -
-
- Bibliotecas instaladas: - libcap.so e libpsx.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- capsh -

-
-

- Um encapsulador de shell para explorar e restringir - suporte de capacidade -

-
-

- getcap -

-
-

- Examina capacidades de arquivo -

-
-

- getpcaps -

-
-

- Exibe as capacidades sobre o(s) processo(s) - consultado(s) -

-
-

- setcap -

-
-

- Configura capacidades de arquivo -

-
-

- libcap -

-
-

- Contém as funções de biblioteca para manipular - capacidades POSIX 1003.1e -

-
-

- libpsx -

-
-

- Contém funções para suportar semântica POSIX para - chamadas de sistema associadas com a biblioteca - pthread -

-
-
-
-
-
-
-
-
-

- 8.25. Shadow-4.11.1 -

-
-
-
-
-

- O pacote Shadow contém aplicativos para manipular senhas de - uma maneira segura. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 49 MB -
-
-
-
-
-

- 8.25.1. Instalação de Shadow -

-
-

- Nota -

-

- Se você gostaria de reforçar o uso de senhas fortes, então - recorra a - https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/cracklib.html - para instalar CrackLib antes de construir Shadow. Então - adicione --with-libcrack ao comando - configure - abaixo. -

-
-

- Desabilite a instalação do aplicativo groups e suas páginas de - manual, uma vez que Coreutils fornece uma versão melhor. - Também, impeça a instalação de páginas de manual que já foram - instaladas em Seção 8.3, - “Man-pages-5.13”: -

-
sed -i 's/groups$(EXEEXT) //' src/Makefile.in
-find man -name Makefile.in -exec sed -i 's/groups\.1 / /'   {} \;
-find man -name Makefile.in -exec sed -i 's/getspnam\.3 / /' {} \;
-find man -name Makefile.in -exec sed -i 's/passwd\.5 / /'   {} \;
-

- Em vez de usar o método padrão - crypt, use o método - mais seguro SHA-512 de - encriptação de senha, o qual também permite senhas maiores - que oito (08) caracteres. É também necessário mudar a - localização obsoleta /var/spool/mail para caixas de correio de - usuária(o) que Shadow usa por padrão pela localização - /var/mail usada atualmente. E, - livre-se de /bin e /sbin a partir de PATH, uma vez que eles são simples links - simbólicos para seus homônimos em /usr. -

-
-

- Nota -

-

- Se /bin e (ou) /sbin forem preferidos para serem - deixados em PATH por alguma - razão, então modifique PATH em - .bashrc após LFS ser - construído. -

-
-
sed -e 's:#ENCRYPT_METHOD DES:ENCRYPT_METHOD SHA512:' \
-    -e 's:/var/spool/mail:/var/mail:'                 \
-    -e '/PATH=/{s@/sbin:@@;s@/bin:@@}'                \
-    -i etc/login.defs
-
-

- Nota -

-

- Se você escolher construir Shadow com suporte CrackLib, - então execute o seguinte: -

-
sed -i 's:DICTPATH.*:DICTPATH\t/lib/cracklib/pw_dict:' etc/login.defs
-
-

- Prepare Shadow para compilação: -

-
touch /usr/bin/passwd
-./configure --sysconfdir=/etc \
-            --disable-static  \
-            --with-group-name-max-length=32
-
-

- O significado da opção de configure: -

-
-
- touch - /usr/bin/passwd -
-
-

- O arquivo /usr/bin/passwd - precisa existir, pois a localização dele é codificada - rigidamente em alguns aplicativos, e se ele não - existir, então a localização padrão não é correta. -

-
-
- --with-group-name-max-length=32 -
-
-

- O nome de usuária(o) máximo é trinta e dois (32) - caracteres. Torne o nome de grupo máximo o mesmo. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
make exec_prefix=/usr install
-make -C man install-man
-
-
-

- 8.25.2. - Configurando Shadow -

-

- Esse pacote contém utilitários para adicionar, modificar, e - deletar usuárias(os) e grupos; configura e modifica suas - senhas; e realiza outras tarefas administrativas. Para uma - explanação completa do que password shadowing significa, veja - o arquivo doc/HOWTO dentro da - árvore desempacotada de fonte. Se usar suporte Shadow, então - tenha na mente que aplicativos que necessitem verificar - senhas (gerenciadores de tela, aplicativos de FTP, daemons - pop3, etc.) precisam ser conformes com Shadow. Isto é, eles - precisam ser capazes de trabalhar com senhas ocultas. -

-

- Para habilitar senhas ocultas, execute o seguinte comando: -

-
pwconv
-

- Para habilitar senhas ocultas de grupo, execute: -

-
grpconv
-

- A configuração padrão de Shadow para o utilitário - useradd tem - umas poucas ressalvas que precisam de alguma explanação. - Primeiro, a ação padrão para o utilitário useradd é a de criar a(o) - usuária(o) e um grupo de mesmo nome que a(o) usuária(o). Por - padrão os números de ID de usuária(o) (UID) e ID de grupo - (GID) iniciarão com 1000. Isso significa que se você não - passar parâmetros para useradd, então cada - usuária(o) será uma(m) membro de um grupo único no sistema. - Se esse comportamento for indesejável, então você precisará - passar um parâmetro de -g ou -N para useradd ou mudar a - configuração de USERGROUPS_ENAB em /etc/login.defs. Veja-se useradd(8) para mais informação. -

-

- Segundo, para mudar os parâmetros padrão, o arquivo - /etc/default/useradd precisa - ser criado e adaptado para atender às suas necessidades - particulares. Crie ele com: -

-
mkdir -p /etc/default
-useradd -D --gid 999
-
-

- Explanações de Parâmetro de /etc/default/useradd -

-
-
- GROUP=999 -
-
-

- Esse parâmetro configura o início dos números de grupo - usado no arquivo /etc/group. O valor particular 999 - vem do parâmetro --gid acima. Você pode - modificá-lo para qualquer coisa que deseje. Note que - useradd - nunca reusará um UID ou GID. Se o número identificado - nesse parâmetro for usado, então ele usará o próximo - número disponível. Note também que se você não tiver um - grupo com um ID igual a esse número em seu sistema na - primeira vez que você usar useradd sem o - parâmetro -g, - então você receberá uma mensagem exibida no terminal - que diz: useradd: unknown - GID 999, apesar de a conta estar criada - corretamente. Esse é o motivo pelo qual nós criamos o - grupo users com esse ID - de grupo em Seção 7.6, - “Criando Arquivos Essenciais e Links - Simbólicos”. -

-
-
- CREATE_MAIL_SPOOL=yes -
-
-

- Esse parâmetro faz com que useradd crie um - arquivo de caixa de correio para a(o) usuária(o) recém - criada(o). useradd tornará a - propriedade de grupo desse arquivo para o grupo - mail com permissões - 0660. Se você preferisse que esses arquivos de caixa de - correio não fossem criados por useradd, então - execute o seguinte comando: -

-
sed -i '/MAIL/s/yes/no/' /etc/default/useradd
-
-
-
-
-
-

- 8.25.3. Configurando a senha de root -

-

- Escolha uma senha para a(o) usuária(o) root e configure ela executando: -

-
passwd root
-
-
-

- 8.25.4. - Conteúdo de Shadow -

-
-
-
- Aplicativos instalados: - chage, chfn, chgpasswd, chpasswd, - chsh, expiry, faillog, getsubids, gpasswd, groupadd, - groupdel, groupmems, groupmod, grpck, grpconv, grpunconv, - lastlog, login, logoutd, newgidmap, newgrp, newuidmap, - newusers, nologin, passwd, pwck, pwconv, pwunconv, sg - (link para newgrp), su, useradd, userdel, usermod, vigr - (link para vipw), e vipw -
-
- Biblioteca instalada: - libsubid.so -
-
- Diretório instalado: - /etc/default -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- chage -

-
-

- Usado para alterar o número de dias máximo entre - mudanças obrigatórias de senha -

-
-

- chfn -

-
-

- Usado para alterar um nome completo da(o) - usuária(o) e outra informação -

-
-

- chgpasswd -

-
-

- Usado para atualizar senhas de grupo em modo de - lote -

-
-

- chpasswd -

-
-

- Usado para atualizar senhas de usuárias(os) em modo - de lote -

-
-

- chsh -

-
-

- Usado para alterar um shell de login padrão da(o) - usuária(o) -

-
-

- expiry -

-
-

- Verifica e reforça a política atual de expiração de - senha -

-
-

- faillog -

-
-

- É Usado para examinar o registro de falhas de - login, configurar um número máximo de falhas antes - que uma conta seja bloqueada, ou zerar a contagem - de falhas -

-
-

- getsubids -

-
-

- É usado para listar os intervalos subordinados de - id para uma(m) usuária(o) -

-
-

- gpasswd -

-
-

- É usado para adicionar e deletar membros e - administradoras(es) para grupos -

-
-

- groupadd -

-
-

- Cria um grupo com o nome dado -

-
-

- groupdel -

-
-

- Deleta o grupo com o nome dado -

-
-

- groupmems -

-
-

- Permite que uma(m) usuária(o) administre sua - própria lista de membros de grupo sem a exigência - de privilégios de superusuária(o) -

-
-

- groupmod -

-
-

- É usado para modificar o nome ou GID do grupo dado -

-
-

- grpck -

-
-

- Verifica a integridade dos arquivos de grupo - /etc/group e - /etc/gshadow -

-
-

- grpconv -

-
-

- Cria ou atualiza o arquivo de grupo de sombra a - partir do arquivo de grupo normal -

-
-

- grpunconv -

-
-

- Atualiza /etc/group a - partir de /etc/gshadow e então deleta o - último -

-
-

- lastlog -

-
-

- Reporta o login mais recente de todas(os) as(os) - usuárias(os) ou de uma(m) usuária(o) dada(o) -

-
-

- login -

-
-

- É usado pelo sistema para permitir usuárias(os) - logar -

-
-

- logoutd -

-
-

- É um daemon usado para reforçar restrições sobre - horário de logon e portas -

-
-

- newgidmap -

-
-

- É usado para configurar o mapeamento gid de um - espaço de nome de usuária(o) -

-
-

- newgrp -

-
-

- É usado para modificar o GID atual durante uma - sessão de login -

-
-

- newuidmap -

-
-

- É usado para configurar o mapeamento uid de um - espaço de nome de usuária(o) -

-
-

- newusers -

-
-

- É usado para criar ou atualizar uma série inteira - de contas de usuárias(os) -

-
-

- nologin -

-
-

- Exibe uma mensagem que uma conta não está - disponível; projetado para ser usado como o shell - padrão para contas que foram desabilitadas -

-
-

- passwd -

-
-

- É usado para modificar a senha para uma conta de - usuária(o) ou grupo -

-
-

- pwck -

-
-

- Verifica a integridade dos arquivos de senha - /etc/passwd e - /etc/shadow -

-
-

- pwconv -

-
-

- Cria ou atualiza o arquivo de senha de sombra a - partir do arquivo de senha normal -

-
-

- pwunconv -

-
-

- Atualiza /etc/passwd - a partir de /etc/shadow e então deleta o - último -

-
-

- sg -

-
-

- Executa um comando dado enquanto o GID da(o) - usuária(o) está configurado para aquele do grupo - dado -

-
-

- su -

-
-

- Executa um shell com IDs de usuária(o) e grupo - substitutos -

-
-

- useradd -

-
-

- Cria uma(m) usuária(o) nova(o) com o nome dado, ou - atualiza a informação padrão de nova(o) usuária(o) -

-
-

- userdel -

-
-

- Deleta a conta de usuária(o) dada -

-
-

- usermod -

-
-

- É usado para modificar o nome de login da(o) - usuária(o) dada(o), Identificação de Usuária(o) - (UID), shell, grupo inicial, diretório home, etc. -

-
-

- vigr -

-
-

- Edita os arquivos /etc/group ou /etc/gshadow -

-
-

- vipw -

-
-

- Edita os arquivos /etc/passwd ou /etc/shadow -

-
-

- libsubid -

-
-

- Biblioteca para processar intervalos subordinados - de id para usuárias(os) -

-
-
-
-
-
-
-
-
-

- 8.26. GCC-11.2.0 -

-
-
-
-
-

- O pacote GCC contém a GNU compiler collection, o qual inclui - os compiladores C e C++. -

-
-
-
- Tempo aproximado de - construção: 153 UPC (com - os testes) -
-
- Espaço em disco - exigido: 4,3 GB -
-
-
-
-
-

- 8.26.1. Instalação de GCC -

-

- Primeiramente, conserte um problema que quebra libasan.a quando da construção desse pacote - com Glibc-2.34 ou posterior: -

-
sed -e '/static.*SIGSTKSZ/d' \
-    -e 's/return kAltStackSize/return SIGSTKSZ * 4/' \
-    -i libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp
-

- Se construir em x86_64, então mude o nome de diretório padrão - para bibliotecas de 64 bits para lib: -

-
case $(uname -m) in
-  x86_64)
-    sed -e '/m64=/s/lib64/lib/' \
-        -i.orig gcc/config/i386/t-linux64
-  ;;
-esac
-

- A documentação de GCC recomenda construir GCC em um diretório - de construção dedicado: -

-
mkdir -v build
-cd       build
-

- Prepare GCC para compilação: -

-
../configure --prefix=/usr            \
-             LD=ld                    \
-             --enable-languages=c,c++ \
-             --disable-multilib       \
-             --disable-bootstrap      \
-             --with-system-zlib
-

- Note que para outras linguagens de programação, existem - alguns pré-requisitos que ainda não estão disponíveis. - Veja-se a - página de GCC do Livro BLFS para instruções sobre como - construir todas as linguagens suportadas do GCC. -

-
-

- O significado dos novos parâmetros de - configure: -

-
-
- LD=ld -
-
-

- Esse parâmetro induz o script configure a usar o ld - instalado pelo binutils construído anteriormente neste - capítulo, em vez da versão construída cruzadamente a - qual de outra maneira seria usada. -

-
-
- --with-system-zlib -
-
-

- Essa chave diz a GCC para vincular à cópia instalada de - sistema da biblioteca zlib, em vez de sua própria cópia - interna. -

-
-
-
-

- Compile o pacote: -

-
make
-
-

- Importante -

-

- Nesta seção, a suíte de teste para GCC é considerada - importante, porém ela toma um tempo longo. Construtoras(es) - de primeira vez são encorajadas(os) a não pular ela. O - tempo para executar os testes pode ser reduzido - significantemente adicionando-se -jx ao comando make - abaixo, onde x é o número de núcleos em seu sistema. -

-
-

- Um conjunto de testes na suíte de teste de GCC é conhecida - por esgotar a pilha padrão, então aumente o tamanho de pilha - antes de executar os testes: -

-
ulimit -s 32768
-

- Teste os resultados como uma(m) usuária(o) não - privilegiada(o), porém não pare aos erros: -

-
chown -Rv tester .
-su tester -c "PATH=$PATH make -k check"
-

- Para receber um sumário dos resultados de suíte de teste, - execute: -

-
../contrib/test_summary
-

- Para apenas os sumários, entube a saída por grep -A7 Summ. -

-

- Resultados podem ser comparados com aqueles localizados em - https://www.linuxfromscratch.org/lfs/build-logs/11.1/ - e https://gcc.gnu.org/ml/gcc-testresults/. -

-

- Oito testes relacionados ao analisador são conhecidos por - falhar. -

-

- Um teste chamado asan_test.C é - conhecido por falhar. -

-

- Em libstdc++, um teste chamado 49745.cc é conhecido por falhar, pois as - dependências de cabeçalho em glibc mudaram. -

-

- Em libstdc++, um teste de numeração de pontuação e seis - testes relacionados a get_time são conhecidos por falhar. - Essas são todas por causa das definições de locale em glibc - que mudaram, porém libstdc++ atualmente não suporta essas - mudanças. -

-

- Umas poucas falhas inesperadas não podem ser evitadas sempre. - As(Os) desenvolvedoras(es) de GCC geralmente estão cientes - desses problemas, mas ainda não os resolveram. A menos que os - resultados de teste sejam amplamente diferentes daqueles na - URL acima, é seguro continuar. -

-

- Instale o pacote e remova um diretório desnecessário: -

-
make install
-rm -rf /usr/lib/gcc/$(gcc -dumpmachine)/11.2.0/include-fixed/bits/
-

- O diretório de construção de GCC é de propriedade de - tester agora e a propriedade - do diretório de cabeçalho instalado (e o conteúdo dele) - estarão incorretos. Mude a propriedade para usuária(o) e - grupo root: -

-
chown -v -R root:root \
-    /usr/lib/gcc/*linux-gnu/11.2.0/include{,-fixed}
-

- Crie um link simbólico exigido por - FHS por razões "históricas". -

-
ln -svr /usr/bin/cpp /usr/lib
-

- Adicione um link simbólico de compatibilidade para habilitar - a construção de aplicativos com Link Time Optimization (LTO): -

-
ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/11.2.0/liblto_plugin.so \
-        /usr/lib/bfd-plugins/
-

- Agora que nosso conjunto de ferramentas final está no lugar, - é importante certificar-se novamente de que compilação e - vinculação funcionarão como esperado. Nós fazemos isso - realizando algumas verificações de sanidade: -

-
echo 'int main(){}' > dummy.c
-cc dummy.c -v -Wl,--verbose &> dummy.log
-readelf -l a.out | grep ': /lib'
-

- Deveriam não existir erros, e a saída do último comando será - (permitindo diferenças específicas de plataforma no nome de - vinculador dinâmico): -

-
[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
-

- Agora tenha certeza de que nós estamos configurados para usar - os arquivos de iniciação corretos: -

-
grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log
-

- A saída do último comando deveria ser: -

-
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/crt1.o succeeded
-/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/crti.o succeeded
-/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/crtn.o succeeded
-

- Dependendo da arquitetura de sua máquina, o acima talvez - difira levemente. A diferença será o nome do diretório depois - de /usr/lib/gcc. A coisa - importante a se olhar aqui é que gcc encontrou todos os três - arquivos crt*.o sob o diretório - /usr/lib. -

-

- Verifique que o compilador está procurando pelos arquivos de - cabeçalho corretos: -

-
grep -B4 '^ /usr/include' dummy.log
-

- Esse comando deveria retornar a seguinte saída: -

-
#include <...> search starts here:
- /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include
- /usr/local/include
- /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include-fixed
- /usr/include
-

- Novamente, o diretório nomeado após seu triplet alvo talvez - seja diferente do que o acima, dependendo da arquitetura de - seu sistema. -

-

- Em seguida, verifique que o novo vinculador está sendo usado - com os caminhos de procura corretos: -

-
grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'
-

- Referências a caminhos que tem componentes com '-linux-gnu' - deveriam ser ignoradas, porém, do contrário, a saída do - último comando deveria ser: -

-
SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib64")
-SEARCH_DIR("/usr/local/lib64")
-SEARCH_DIR("/lib64")
-SEARCH_DIR("/usr/lib64")
-SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib")
-SEARCH_DIR("/usr/local/lib")
-SEARCH_DIR("/lib")
-SEARCH_DIR("/usr/lib");
-

- Um sistema de 32 bits talvez veja uns poucos diretórios - diferentes. Por exemplo, aqui está a saída originária de uma - máquina i686: -

-
SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32")
-SEARCH_DIR("/usr/local/lib32")
-SEARCH_DIR("/lib32")
-SEARCH_DIR("/usr/lib32")
-SEARCH_DIR("/usr/i686-pc-linux-gnu/lib")
-SEARCH_DIR("/usr/local/lib")
-SEARCH_DIR("/lib")
-SEARCH_DIR("/usr/lib");
-

- Em seguida, tenha certeza de que nós estamos usando a libc - correta: -

-
grep "/lib.*/libc.so.6 " dummy.log
-

- A saída do último comando deveria ser: -

-
attempt to open /usr/lib/libc.so.6 succeeded
-

- Tenha certeza de que GCC está usando o vinculador dinâmico - correto: -

-
grep found dummy.log
-

- A saída do último comando deveria ser (permitindo diferenças - específicas de plataforma no nome de vinculador dinâmico): -

-
found ld-linux-x86-64.so.2 at /usr/lib/ld-linux-x86-64.so.2
-

- Se a saída não aparecer como mostrado acima ou não for - recebida de jeito nenhum, então alguma coisa está seriamente - errada. Investigue e retrace os passos para encontrar onde - está o problema e corrija o mesmo. Quaisquer problemas - precisão ser resolvidos antes de continuar com o processo. -

-

- Uma vez que tudo esteja funcionando corretamente, limpe os - arquivos de teste: -

-
rm -v dummy.c a.out dummy.log
-

- Finalmente, mova um arquivo mal colocado: -

-
mkdir -pv /usr/share/gdb/auto-load/usr/lib
-mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib
-
-
-

- 8.26.2. Conteúdo - de GCC -

-
-
-
- Aplicativos instalados: - c++, cc (link para gcc), cpp, g++, - gcc, gcc-ar, gcc-nm, gcc-ranlib, gcov, gcov-dump, - gcov-tool, e lto-dump -
-
- Bibliotecas instaladas: - libasan.{a,so}, libatomic.{a,so}, - libcc1.so, libgcc.a, libgcc_eh.a, libgcc_s.so, libgcov.a, - libgomp.{a,so}, libitm.{a,so}, liblsan.{a,so}, - liblto_plugin.so, libquadmath.{a,so}, libssp.{a,so}, - libssp_nonshared.a, libstdc++.{a,so}, libstdc++fs.a, - libsupc++.a, libtsan.{a,so}, e libubsan.{a,so} -
-
- Diretórios instalados: - /usr/include/c++, /usr/lib/gcc, - /usr/libexec/gcc, e /usr/share/gcc-11.2.0 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- c++ -

-
-

- O compilador C++ -

-
-

- cc -

-
-

- O compilador C -

-
-

- cpp -

-
-

- O preprocessador C; é usado pelo compilador para - expandir as declarações #include, #define e - similares nos arquivos fonte -

-
-

- g++ -

-
-

- O compilador C++ -

-
-

- gcc -

-
-

- O compilador C -

-
-

- gcc-ar -

-
-

- Um encapsulador em torno de ar que adiciona - um plugin à linha de comando. Esse aplicativo é - usado apenas para adicionar "link time - optimization" e não é útil com as opções de - construção padrão -

-
-

- gcc-nm -

-
-

- Um encapsulador em torno de nm que adiciona - um plugin à linha de comando. Esse aplicativo é - usado apenas para adicionar "link time - optimization" e não é útil com as opções de - construção padrão -

-
-

- gcc-ranlib -

-
-

- Um encapsulador em torno de ranlib que - adiciona um plugin à linha de comando. Esse - aplicativo é usado apenas para adicionar "link time - optimization" e não é útil com as opções de - construção padrão -

-
-

- gcov -

-
-

- Uma ferramenta de teste de cobertura; usada para - analisar aplicativos para determinar onde as - otimizações terão mais efeito -

-
-

- gcov-dump -

-
-

- Ferramenta de despejo de perfil offline gcda e gcno -

-
-

- gcov-tool -

-
-

- Ferramenta de processamento de perfil offline gcda -

-
-

- lto-dump -

-
-

- Ferramenta para despejar arquivos objeto produzidos - por GCC com LTO habilitado -

-
-

- libasan -

-
-

- A biblioteca de tempo de execução do Address - Sanitizer -

-
-

- libatomic -

-
-

- Biblioteca de tempo de execução atômica interna do - GCC -

-
-

- libcc1 -

-
-

- A biblioteca de pré-processamento C -

-
-

- libgcc -

-
-

- Contém suporte de tempo de execução para - gcc -

-
-

- libgcov -

-
-

- Essa biblioteca é vinculada a um aplicativo quando - GCC for instruído a habilitar criação de perfil -

-
-

- libgomp -

-
-

- Implementação GNU da API OpenMP para programação - paralela de memória compartilhada multiplataforma - em C/C++ e Fortran -

-
-

- libitm -

-
-

- A biblioteca de memória transacional GNU -

-
-

- liblsan -

-
-

- A biblioteca de tempo de execução do Leak Sanitizer -

-
-

- liblto_plugin -

-
-

- Plugin LTO do GCC permite ao binutils processar - arquivos objeto produzidos por GCC com LTO - habilitado -

-
-

- libquadmath -

-
-

- API da Biblioteca Matemática de Precisão Quádrupla - GCC -

-
-

- libssp -

-
-

- Contém rotinas que suportam a funcionalidade de - proteção contra esmagamento de pilha do GCC -

-
-

- libstdc++ -

-
-

- A biblioteca C++ padrão -

-
-

- libstdc++fs -

-
-

- Biblioteca de Sistema de Arquivos ISO/IEC TS - 18822:2015 -

-
-

- libsupc++ -

-
-

- Fornece rotinas de suporte para a linguagem de - programação C++ -

-
-

- libtsan -

-
-

- A biblioteca de tempo de execução do Thread - Sanitizer -

-
-

- libubsan -

-
-

- A biblioteca de tempo de execução do Undefined - Behavior Sanitizer -

-
-
-
-
-
-
-
-
-

- 8.27. Pkg-config-0.29.2 -

-
-
-
-
-

- O pacote pkg-config contém uma ferramenta para passar o - caminho include e (ou) caminhos de biblioteca para - ferramentas de construção durante as fases configure e make - de instalações de pacote. -

-
-
-
- Tempo aproximado de - construção: 0,3 UPC -
-
- Espaço em disco - exigido: 29 MB -
-
-
-
-
-

- 8.27.1. Instalação de Pkg-config -

-

- Prepare Pkg-config para compilação: -

-
./configure --prefix=/usr              \
-            --with-internal-glib       \
-            --disable-host-tool        \
-            --docdir=/usr/share/doc/pkg-config-0.29.2
-
-

- O significado das novas opções de - configure: -

-
-
- --with-internal-glib -
-
-

- Isso permitirá que pkg-config use a versão interna dele - de Glib, pois uma versão externa não está disponível em - LFS. -

-
-
- --disable-host-tool -
-
-

- Essa opção desabilita a criação de um indesejado hard - link para o aplicativo pkg-config. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.27.2. Conteúdo de Pkg-config -

-
-
-
- Aplicativo instalado: - pkg-config -
-
- Diretório instalado: - /usr/share/doc/pkg-config-0.29.2 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- pkg-config -

-
-

- Retorna meta informação para a biblioteca ou pacote - especificada -

-
-
-
-
-
-
-
-
-

- 8.28. Ncurses-6.3 -

-
-
-
-
-

- O pacote Ncurses contém bibliotecas para manipulação de telas - de caracteres independente de terminal. -

-
-
-
- Tempo aproximado de - construção: 0,4 UPC -
-
- Espaço em disco - exigido: 45 MB -
-
-
-
-
-

- 8.28.1. Instalação de Ncurses -

-

- Prepare Ncurses para compilação: -

-
./configure --prefix=/usr           \
-            --mandir=/usr/share/man \
-            --with-shared           \
-            --without-debug         \
-            --without-normal        \
-            --enable-pc-files       \
-            --enable-widec          \
-            --with-pkg-config-libdir=/usr/lib/pkgconfig
-
-

- O significado das novas opções de - configure: -

-
-
- --enable-widec -
-
-

- Essa chave faz com que bibliotecas de caracteres largos - (por exemplo, libncursesw.so.6.3) sejam construídas - em vez de bibliotecas normais (por exemplo, - libncurses.so.6.3). Essas - bibliotecas de caracteres largos são utilizáveis tanto - em locales de múltiplos bytes quanto em tradicionais de - oito (08) bits, enquanto bibliotecas normais funcionam - adequadamente só em locales de oito (08) bits. - Bibliotecas de caracteres largos e bibliotecas normais - são compatíveis em fonte, mas não são compatíveis em - binário. -

-
-
- --enable-pc-files -
-
-

- Essa chave gera e instala arquivos .pc para pkg-config. -

-
-
- --without-normal -
-
-

- Essa chave desabilita a construção e instalação da - maioria das bibliotecas estáticas. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Esse pacote tem uma suíte de teste, entretanto ela só pode - ser executada após o pacote ter sido instalado. Os testes - residem no diretório test/. - Veja-se o arquivo README - naquele diretório para maiores detalhes. -

-

- A instalação desse pacote sobrescreverá libncursesw.so.6.3 no local. Isso talvez - quebre o processo de shell que está usando código e dados a - partir do arquivo de biblioteca. Instale o pacote com - DESTDIR, e substitua o arquivo - de biblioteca corretamente usando comando install. Um arquivamento - estático inútil que não é manejado por configure também é - removido: -

-
make DESTDIR=$PWD/dest install
-install -vm755 dest/usr/lib/libncursesw.so.6.3 /usr/lib
-rm -v  dest/usr/lib/{libncursesw.so.6.3,libncurses++w.a}
-cp -av dest/* /
-

- Muitos aplicativos ainda esperam que o vinculador seja capaz - de encontrar bibliotecas Ncurses de caracteres não largos. - Ajuste tais aplicativos para vincularem com bibliotecas de - caracteres largos por meio de links simbólicos e scripts de - vinculador: -

-
for lib in ncurses form panel menu ; do
-    rm -vf                    /usr/lib/lib${lib}.so
-    echo "INPUT(-l${lib}w)" > /usr/lib/lib${lib}.so
-    ln -sfv ${lib}w.pc        /usr/lib/pkgconfig/${lib}.pc
-done
-

- Finalmente, certifique-se de que aplicativos antigos que - procuram por -lcurses em tempo - de construção ainda sejam construíveis: -

-
rm -vf                     /usr/lib/libcursesw.so
-echo "INPUT(-lncursesw)" > /usr/lib/libcursesw.so
-ln -sfv libncurses.so      /usr/lib/libcurses.so
-

- Se desejado, então instale a documentação do Ncurses: -

-
mkdir -pv      /usr/share/doc/ncurses-6.3
-cp -v -R doc/* /usr/share/doc/ncurses-6.3
-
-

- Nota -

-

- As instruções acima não criam bibliotecas Ncurses de - caracteres não largos, uma vez que nenhum pacote instalado - por compilação a partir de fontes se vincularia a elas em - tempo de execução. Entretanto, os únicos aplicativos - somente binário conhecidos que se vinculam à bibliotecas - Ncurses de caracteres não largos exigem versão 5. Se você - precisa ter tais bibliotecas, por causa de algum aplicativo - somente binário ou para estar conforme com LSB, então - construa o pacote novamente com os seguintes comandos: -

-
make distclean
-./configure --prefix=/usr    \
-            --with-shared    \
-            --without-normal \
-            --without-debug  \
-            --without-cxx-binding \
-            --with-abi-version=5
-make sources libs
-cp -av lib/lib*.so.5* /usr/lib
-
-
-
-

- 8.28.2. - Conteúdo de Ncurses -

-
-
-
- Aplicativos instalados: - captoinfo (link para tic), clear, - infocmp, infotocap (link para tic), ncursesw6-config, - reset (link para tset), tabs, tic, toe, tput, e - tset -
-
- Bibliotecas instaladas: - libcursesw.so (link simbólico e - script de vinculador para libncursesw.so), libformw.so, - libmenuw.so, libncursesw.so, libpanelw.so, e homônimos - delas de caractere não largo sem "w" nos nomes de - biblioteca. -
-
- Diretórios instalados: - /usr/share/tabset, - /usr/share/terminfo, e /usr/share/doc/ncurses-6.3 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- captoinfo -

-
-

- Converte uma descrição termcap em uma descrição - terminfo -

-
-

- clear -

-
-

- Limpa a tela, se possível -

-
-

- infocmp -

-
-

- Compara ou imprime descrições terminfo -

-
-

- infotocap -

-
-

- Converte uma descrição terminfo em uma descrição - termcap -

-
-

- ncursesw6-config -

-
-

- Fornece informação de configuração para ncurses -

-
-

- reset -

-
-

- Reinicializa um terminal para valores padrão dele -

-
-

- tabs -

-
-

- Limpa e configura paradas de tabulação em um - terminal -

-
-

- tic -

-
-

- O compilador de descrição de entrada terminfo que - traduz um arquivo terminfo do formato fonte para o - formato binário necessário para as rotinas de - biblioteca ncurses [Um arquivo terminfo contém - informação sobre as capacidades de um certo - terminal]. -

-
-

- toe -

-
-

- Lista todos os tipos de terminal disponíveis, dando - o nome primário e descrição para cada -

-
-

- tput -

-
-

- Torna os valores de capacidades dependentes de - terminal disponíveis para o shell; também pode ser - usado para reconfigurar ou inicializar um terminal - ou reportar o nome longo dele -

-
-

- tset -

-
-

- Pode ser usado para inicializar terminais -

-
-

- libcursesw -

-
-

- Um link para libncursesw -

-
-

- libncursesw -

-
-

- Contém funções para exibir texto em muitas formas - complexas em uma tela de terminal; um bom exemplo - do uso dessas funções é o menu exibido durante o - make - menuconfig do kernel -

-
-

- libformw -

-
-

- Contém funções para implementar formulários -

-
-

- libmenuw -

-
-

- Contém funções para implementar menus -

-
-

- libpanelw -

-
-

- Contém funções para implementar painéis -

-
-
-
-
-
-
-
-
-

- 8.29. Sed-4.8 -

-
-
-
-
-

- O pacote Sed contém um editor de fluxo. -

-
-
-
- Tempo aproximado de - construção: 0,4 UPC -
-
- Espaço em disco - exigido: 31 MB -
-
-
-
-
-

- 8.29.1. Instalação de Sed -

-

- Prepare Sed para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote e gere a documentação HTML: -

-
make
-make html
-

- Para testar os resultados, execute: -

-
chown -Rv tester .
-su tester -c "PATH=$PATH make check"
-

- Instale o pacote e documentação dele: -

-
make install
-install -d -m755           /usr/share/doc/sed-4.8
-install -m644 doc/sed.html /usr/share/doc/sed-4.8
-
-
-

- 8.29.2. Conteúdo - do Sed -

-
-
-
- Aplicativo instalado: - sed -
-
- Diretório instalado: - /usr/share/doc/sed-4.8 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- sed -

-
-

- Filtra e transforma arquivos de texto em uma - passagem única -

-
-
-
-
-
-
-
-
-

- 8.30. Psmisc-23.4 -

-
-
-
-
-

- O pacote Psmisc contém aplicativos para mostrar informação - sobre processos em execução. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 5,6 MB -
-
-
-
-
-

- 8.30.1. Instalação do Psmisc -

-

- Prepare Psmisc para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
make install
-
-
-

- 8.30.2. - Conteúdo do Psmisc -

-
-
-
- Aplicativos instalados: - fuser, killall, peekfd, prtstat, - pslog, pstree, e pstree.x11 (link para pstree) -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- fuser -

-
-

- Reporta os IDs de Processos (PIDs) de processos que - usam os arquivos ou sistemas de arquivos dados -

-
-

- killall -

-
-

- Mata processos pelo nome; envia um sinal para todos - os processos executando quaisquer dos comandos - dados -

-
-

- peekfd -

-
-

- Dê uma olhada nos descritores de arquivo de um - processo em execução, dado seu PID -

-
-

- prtstat -

-
-

- Imprime informação sobre um processo -

-
-

- pslog -

-
-

- Reporta o caminho atual de registros de um processo -

-
-

- pstree -

-
-

- Exibe processos em execução como uma árvore -

-
-

- pstree.x11 -

-
-

- O mesmo que pstree, exceto - que ele espera por confirmação antes de sair -

-
-
-
-
-
-
-
-
-

- 8.31. Gettext-0.21 -

-
-
-
-
-

- O pacote Gettext contém utilitários para internacionalização - e localização. Eles permitem que aplicativos sejam compilados - com Suporte ao Idioma Nativo (Native Language Support - NLS), - habilitando-os a emitir mensagens no idioma nativo da(o) - usuária(o). -

-
-
-
- Tempo aproximado de - construção: 2,7 UPC -
-
- Espaço em disco - exigido: 233 MB -
-
-
-
-
-

- 8.31.1. Instalação do Gettext -

-

- Prepare Gettext para compilação: -

-
./configure --prefix=/usr    \
-            --disable-static \
-            --docdir=/usr/share/doc/gettext-0.21
-

- Compile o pacote: -

-
make
-

- Para testar os resultados (isso toma um tempo longo, em torno - de 3 UPCs), execute: -

-
make check
-

- Instale o pacote: -

-
make install
-chmod -v 0755 /usr/lib/preloadable_libintl.so
-
-
-

- 8.31.2. - Conteúdo do Gettext -

-
-
-
- Aplicativos instalados: - autopoint, envsubst, gettext, - gettext.sh, gettextize, msgattrib, msgcat, msgcmp, - msgcomm, msgconv, msgen, msgexec, msgfilter, msgfmt, - msggrep, msginit, msgmerge, msgunfmt, msguniq, ngettext, - recode-sr-latin, e xgettext -
-
- Bibliotecas instaladas: - libasprintf.so, libgettextlib.so, - libgettextpo.so, libgettextsrc.so, libtextstyle.so, e - preloadable_libintl.so -
-
- Diretórios instalados: - /usr/lib/gettext, - /usr/share/doc/gettext-0.21, /usr/share/gettext, e - /usr/share/gettext-0.19.8 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- autopoint -

-
-

- Copia arquivos de infraestrutura padrão do Gettext - para um pacote fonte -

-
-

- envsubst -

-
-

- Substitui variáveis de ambiente em sequências de - caracteres de formato de shell -

-
-

- gettext -

-
-

- Traduz uma mensagem de idioma natural para o idioma - da(o) usuária(o) procurando a tradução em um - catálogo de mensagens -

-
-

- gettext.sh -

-
-

- Primariamente serve como uma biblioteca de função - de shell para gettext -

-
-

- gettextize -

-
-

- Copia todos os arquivos Gettext padrão para o - diretório de nível superior fornecido de um pacote - para começar a internacionalizá-lo -

-
-

- msgattrib -

-
-

- Filtra as mensagens de um catálogo de tradução de - acordo com os atributos delas e manipula os - atributos -

-
-

- msgcat -

-
-

- Concatena e funde os arquivos .po fornecidos -

-
-

- msgcmp -

-
-

- Compara dois arquivos .po para verificar se ambos - contém o mesmo conjunto de sequências de caracteres - de msgid -

-
-

- msgcomm -

-
-

- Encontra as mensagens que são comuns aos arquivos - .po fornecidos -

-
-

- msgconv -

-
-

- Converte um catálogo de tradução para uma - codificação de caracteres diferente -

-
-

- msgen -

-
-

- Cria um catálogo de tradução em inglês -

-
-

- msgexec -

-
-

- Aplica um comando a todas as traduções de um - catálogo de tradução -

-
-

- msgfilter -

-
-

- Aplica um filtro a todas as traduções de um - catálogo de tradução -

-
-

- msgfmt -

-
-

- Gera um catálogo de mensagem binária a partir de um - catálogo de tradução -

-
-

- msggrep -

-
-

- Extrai todas as mensagens de um catálogo de - tradução que correspondem a um determinado padrão - ou pertencem a alguns arquivos fonte fornecidos -

-
-

- msginit -

-
-

- Cria um novo arquivo .po, inicializando a meta - informação com valores oriundos do ambiente da(o) - usuária(o) -

-
-

- msgmerge -

-
-

- Combina duas traduções cruas em um arquivo único -

-
-

- msgunfmt -

-
-

- Descompila um catálogo de mensagem binário em um - texto de tradução cru -

-
-

- msguniq -

-
-

- Unifica traduções duplicadas em um catálogo de - tradução -

-
-

- ngettext -

-
-

- Exibe traduções no idioma nativo de uma mensagem - textual cuja forma gramatical depende de um número -

-
-

- recode-sr-latin -

-
-

- Recodifica texto sérvio do cirílico para alfabeto - latino -

-
-

- xgettext -

-
-

- Extrai as linhas de mensagem traduzíveis dos - arquivos fonte fornecidos para fazer o primeiro - modelo de tradução -

-
-

- libasprintf -

-
-

- define a classe autosprintf, que torna - as rotinas de saída formatada em C utilizáveis em - aplicativos C++, para uso com as sequências de - caracteres <string> e os - fluxos <iostream> -

-
-

- libgettextlib -

-
-

- uma biblioteca privada contendo rotinas comuns - usadas pelos vários aplicativos Gettext; elas não - são destinadas para uso geral -

-
-

- libgettextpo -

-
-

- Usado para escrever aplicativos especializados que - processam arquivos .po; essa biblioteca é usada - quando os aplicativos padrão fornecidos com Gettext - (tais como msgcomm, - msgcmp, - msgattrib, e - msgen) não são - suficientes -

-
-

- libgettextsrc -

-
-

- Uma biblioteca privada contendo rotinas comuns - usadas pelos vários aplicativos Gettext; elas não - são destinadas para uso geral -

-
-

- libtextstyle -

-
-

- Biblioteca de estilo de texto -

-
-

- preloadable_libintl -

-
-

- Uma biblioteca, destinada a ser usada por - LD_PRELOAD que auxilia libintl no registro de mensagens - não traduzidas -

-
-
-
-
-
-
-
-
-

- 8.32. Bison-3.8.2 -

-
-
-
-
-

- O pacote Bison contém um gerador de analisador. -

-
-
-
- Tempo aproximado de - construção: 6,3 UPC -
-
- Espaço em disco - exigido: 53 MB -
-
-
-
-
-

- 8.32.1. Instalação do Bison -

-

- Prepare Bison para compilação: -

-
./configure --prefix=/usr --docdir=/usr/share/doc/bison-3.8.2
-

- Compile o pacote: -

-
make
-

- Para testar os resultados (cerca de 5,5 UPCs), execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.32.2. - Conteúdo do Bison -

-
-
-
- Aplicativos instalados: - bison e yacc -
-
- Biblioteca instalada: - liby.a -
-
- Diretório instalado: - /usr/share/bison -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - -
-

- bison -

-
-

- Gera, a partir de uma série de regras, um - aplicativo para analisar a estrutura de arquivos de - texto; Bison é uma substituição ao Yacc (Yet - Another Compiler Compiler) -

-
-

- yacc -

-
-

- Um encapsulador para bison, destinado - a aplicativos que ainda chamam yacc em vez de - bison; ele chama - bison - com a opção -y -

-
-

- liby -

-
-

- A biblioteca Yacc contendo implementações de - funções compatíveis com Yacc yyerror e main; essa biblioteca normalmente - não é muito útil, mas POSIX a exige -

-
-
-
-
-
-
-
-
-

- 8.33. Grep-3.7 -

-
-
-
-
-

- O pacote Grep contém aplicativos para procura ao longo do - conteúdo de arquivos. -

-
-
-
- Tempo aproximado de - construção: 0,9 UPC -
-
- Espaço em disco - exigido: 36 MB -
-
-
-
-
-

- 8.33.1. Instalação do Grep -

-

- Prepare Grep para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.33.2. - Conteúdo do Grep -

-
-
-
- Aplicativos instalados: - egrep, fgrep, e grep -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - -
-

- egrep -

-
-

- Imprime linhas que correspondem a uma expressão - regular estendida -

-
-

- fgrep -

-
-

- Imprime linhas que correspondem a uma lista de - sequências de caracteres fixas -

-
-

- grep -

-
-

- Imprime linhas que correspondem a expressão regular - básica -

-
-
-
-
-
-
-
-
-

- 8.34. Bash-5.1.16 -

-
-
-
-
-

- O pacote Bash contém o Bourne-Again SHell. -

-
-
-
- Tempo aproximado de - construção: 1,5 UPC -
-
- Espaço em disco - exigido: 50 MB -
-
-
-
-
-

- 8.34.1. Instalação do Bash -

-

- Prepare Bash para compilação: -

-
./configure --prefix=/usr                      \
-            --docdir=/usr/share/doc/bash-5.1.16 \
-            --without-bash-malloc              \
-            --with-installed-readline
-
-

- O significado da nova opção de configure: -

-
-
- --with-installed-readline -
-
-

- Essa opção diz a Bash para usar a biblioteca - readline que já está - instalada no sistema em vez de usar sua própria versão - de readline. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Pule para Instale o pacote se não executar - a suíte de teste. -

-

- Para preparar os testes, garanta que a(o) usuária(o) - tester pode escrever na - árvore de fontes: -

-
chown -Rv tester .
-

- A suíte de teste do pacote é desenhada para ser executada - como uma(m) usuária(o) não root que é proprietária(o) do - terminal conectado à entrada padrão. Para satisfazer a - exigência, crie um novo pseudo terminal usando Expect e execute os testes como a(o) - usuária (o) tester: -

-
su -s /usr/bin/expect tester << EOF
-set timeout -1
-spawn make tests
-expect eof
-lassign [wait] _ _ _ value
-exit $value
-EOF
-

- Instale o pacote: -

-
make install
-

- Execute o aplicativo recém compilado bash (substituindo o que - está sendo executado atualmente): -

-
exec /usr/bin/bash --login
-
-
-

- 8.34.2. - Conteúdo do Bash -

-
-
-
- Aplicativos instalados: - bash, bashbug, e sh (link para - bash) -
-
- Diretórios instalados: - /usr/include/bash, /usr/lib/bash, e - /usr/share/doc/bash-5.1.16 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - -
-

- bash -

-
-

- Um interpretador de comandos vastamente utilizado; - ele realiza muitos tipos de expansões e - substituições sobre uma dada linha de comando antes - de executá-la, portanto fazendo desse interpretador - uma ferramenta poderosa -

-
-

- bashbug -

-
-

- Um script de shell para ajudar a(o) usuária(o) a - compor e enviar relatórios de defeitos formatados - padrão concernentes a bash -

-
-

- sh -

-
-

- Um link simbólico para o aplicativo bash; quando - invocado como sh, bash tenta imitar - o comportamento de inicialização de versões - históricas do sh o mais próximo - possível, enquanto também conformando com o padrão - POSIX -

-
-
-
-
-
-
-
-
-

- 8.35. Libtool-2.4.6 -

-
-
-
-
-

- O pacote Libtool contém o script de suporte à biblioteca - genérica GNU. Ele esconde a complexidade de usar bibliotecas - compartilhadas em uma interface consistente e portável. -

-
-
-
- Tempo aproximado de - construção: 1,5 UPC -
-
- Espaço em disco - exigido: 43 MB -
-
-
-
-
-

- 8.35.1. Instalação do Libtool -

-

- Prepare Libtool para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-
-

- Nota -

-

- O tempo de teste para libtool pode ser reduzido - significativamente em um sistema com múltiplos núcleos. - Para fazer isso, acrescente TESTSUITEFLAGS=-j<N> - ao final da linha acima. Por exemplo, usar -j4 pode reduzir - o tempo de teste em mais que 60 por cento. -

-
-

- Cinco testes são conhecidos por falharem dentro do ambiente - de construção LFS devido a uma dependência circular, porém - todos os testes passam se verificados novamente após automake - ser instalado. -

-

- Instale o pacote: -

-
make install
-

- Remova uma biblioteca estática inútil: -

-
rm -fv /usr/lib/libltdl.a
-
-
-

- 8.35.2. - Conteúdo do Libtool -

-
-
-
- Aplicativos instalados: - libtool e libtoolize -
-
- Biblioteca instalada: - libltdl.so -
-
- Diretórios instalados: - /usr/include/libltdl e - /usr/share/libtool -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - -
-

- libtool -

-
-

- Fornece serviços generalizados de suporte à - construção de bibliotecas -

-
-

- libtoolize -

-
-

- Fornece uma maneira padrão de adicionar suporte - libtool a um - pacote -

-
-

- libltdl -

-
-

- Esconde as várias dificuldades do dlopening de - bibliotecas -

-
-
-
-
-
-
-
-
-

- 8.36. GDBM-1.23 -

-
-
-
-
-

- O pacote GDBM contém o GNU Database Manager. Ele é uma - biblioteca de funções de banco de dados que usa hash - extensível e funciona semelhante ao dbm UNIX padrão. A - biblioteca fornece primitivos para armazenar pares de - chave/dados, pesquisar e recuperar os dados por sua chave e - deletar uma chave junto com seus dados. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 13 MB -
-
-
-
-
-

- 8.36.1. Instalação do GDBM -

-

- Prepare GDBM para compilação: -

-
./configure --prefix=/usr    \
-            --disable-static \
-            --enable-libgdbm-compat
-
-

- O significado da opção de configure: -

-
-
- --enable-libgdbm-compat -
-
-

- Essa chave habilita a construção da biblioteca de - compatibilidade libgdbm. Alguns pacotes fora do LFS - talvez exijam as rotinas DBM mais antigas que ela - fornece. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.36.2. - Conteúdo do GDBM -

-
-
-
- Aplicativos instalados: - gdbm_dump, gdbm_load, e - gdbmtool -
-
- Bibliotecas instaladas: - libgdbm.so e - libgdbm_compat.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- gdbm_dump -

-
-

- Despeja um banco de dados GDBM para um arquivo -

-
-

- gdbm_load -

-
-

- Recria um banco de dados GDBM a partir de um - arquivo de despejo -

-
-

- gdbmtool -

-
-

- Testa e modifica um banco de dados GDBM -

-
-

- libgdbm -

-
-

- Contém funções para manipular um banco de dados com - hash -

-
-

- libgdbm_compat -

-
-

- Biblioteca de compatibilidade contendo funções DBM - mais antigas -

-
-
-
-
-
-
-
-
-

- 8.37. Gperf-3.1 -

-
-
-
-
-

- Gperf gera uma função de hash perfeita a partir de um - conjunto de chaves. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 6,0 MB -
-
-
-
-
-

- 8.37.1. Instalação do Gperf -

-

- Prepare Gperf para compilação: -

-
./configure --prefix=/usr --docdir=/usr/share/doc/gperf-3.1
-

- Compile o pacote: -

-
make
-

- Os testes são conhecidos por falharem se executar múltiplos - testes simultâneos (opção -j maior que 1). Para testar os - resultados, execute: -

-
make -j1 check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.37.2. - Conteúdo do Gperf -

-
-
-
- Aplicativo instalado: - gperf -
-
- Diretório instalado: - /usr/share/doc/gperf-3.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- gperf -

-
-

- Gera um hash perfeito a partir de um conjunto de - chaves -

-
-
-
-
-
-
-
-
-

- 8.38. Expat-2.4.6 -

-
-
-
-
-

- O pacote Expat contém uma biblioteca C orientada a fluxo para - analisar XML. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 12 MB -
-
-
-
-
-

- 8.38.1. Instalação do Expat -

-

- Prepare Expat para compilação: -

-
./configure --prefix=/usr    \
-            --disable-static \
-            --docdir=/usr/share/doc/expat-2.4.6
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-

- Se desejado, instale a documentação: -

-
install -v -m644 doc/*.{html,css} /usr/share/doc/expat-2.4.6
-
-
-

- 8.38.2. - Conteúdo do Expat -

-
-
-
- Aplicativo instalado: - xmlwf -
-
- Biblioteca instalada: - libexpat.so -
-
- Diretório instalado: - /usr/share/doc/expat-2.4.6 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- xmlwf -

-
-

- É um utilitário não validador para verificar se - documentos XML estão bem formados ou não -

-
-

- libexpat -

-
-

- Contém funções de API para analisar XML -

-
-
-
-
-
-
-
-
-

- 8.39. Inetutils-2.2 -

-
-
-
-
-

- O pacote Inetutils contém aplicativos para redes básicas. -

-
-
-
- Tempo aproximado de - construção: 0,3 UPC -
-
- Espaço em disco - exigido: 30 MB -
-
-
-
-
-

- 8.39.1. Instalação do Inetutils -

-

- Prepare Inetutils para compilação: -

-
./configure --prefix=/usr        \
-            --bindir=/usr/bin    \
-            --localstatedir=/var \
-            --disable-logger     \
-            --disable-whois      \
-            --disable-rcp        \
-            --disable-rexec      \
-            --disable-rlogin     \
-            --disable-rsh        \
-            --disable-servers
-
-

- O significado das opções de configure: -

-
-
- --disable-logger -
-
-

- Essa opção impede que o Inetutils instale o aplicativo - logger, o - qual é usado por scripts para passar mensagens para o - System Log Daemon. Não instale isso, pois o Util-linux - instala uma versão mais recente. -

-
-
- --disable-whois -
-
-

- Essa opção desabilita a construção do cliente - whois do - Inetutils, o qual está desatualizado. Instruções para - um cliente whois melhor estão no - livro BLFS. -

-
-
- --disable-r* -
-
-

- Esses parâmetros desabilitam a construção de - aplicativos obsoletos que não deveriam ser usados - devido a problemas de segurança. As funções fornecidas - por esses aplicativos podem ser fornecidas pelo pacote - openssh no livro BLFS. -

-
-
- --disable-servers -
-
-

- Isso desabilita a instalação dos vários servidores de - rede incluídos como parte do pacote Inetutils. Esses - servidores são considerados inadequados em um sistema - LFS básico. Alguns são inseguros por natureza e só são - considerados seguros em redes confiáveis. Observe que - substituições melhores estão disponíveis para muitos - desses servidores. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-

- Mova um aplicativo para o local adequado: -

-
mv -v /usr/{,s}bin/ifconfig
-
-
-

- 8.39.2. Conteúdo do Inetutils -

-
-
-
- Aplicativos instalados: - dnsdomainname, ftp, ifconfig, - hostname, ping, ping6, talk, telnet, tftp, e - traceroute -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- dnsdomainname -

-
-

- Mostra o nome de domínio DNS do sistema -

-
-

- ftp -

-
-

- É o aplicativo de protocolo de transferência de - arquivos -

-
-

- hostname -

-
-

- Relata ou configura o nome do dispositivo -

-
-

- ifconfig -

-
-

- Gerencia interfaces de rede -

-
-

- ping -

-
-

- Envia pacotes de solicitação de echo e informa - quanto tempo as respostas demoram -

-
-

- ping6 -

-
-

- Uma versão do ping para redes - IPv6 -

-
-

- talk -

-
-

- É usado para conversar com outra(o) usuária(o) -

-
-

- telnet -

-
-

- Uma interface para o protocolo TELNET -

-
-

- tftp -

-
-

- Um aplicativo de transferência de arquivos trivial -

-
-

- traceroute -

-
-

- Rastreia a rota que seus pacotes fazem a partir do - dispositivo em que você está trabalhando para outro - dispositivo em uma rede, mostrando todos os saltos - intermediários (gateways) ao longo do caminho -

-
-
-
-
-
-
-
-
-

- 8.40. Less-590 -

-
-
-
-
-

- O pacote Less contém um visualizador de arquivos de texto. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 4,2 MB -
-
-
-
-
-

- 8.40.1. Instalação do Less -

-

- Prepare Less para compilação: -

-
./configure --prefix=/usr --sysconfdir=/etc
-
-

- O significado das opções de configure: -

-
-
- --sysconfdir=/etc -
-
-

- Essa opção diz aos aplicativos criados pelo pacote para - procurarem em /etc pelos - arquivos de configuração. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
make install
-
-
-

- 8.40.2. - Conteúdo do Less -

-
-
-
- Aplicativos instalados: - less, lessecho e lesskey -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - -
-

- less -

-
-

- Um visualizador de arquivos ou paginador; ele exibe - o conteúdo do arquivo dado, permitindo que a(o) - usuária(o) role, encontre sequências de caracteres - e pule para marcas -

-
-

- lessecho -

-
-

- Necessário para expandir metacaracteres, tais como - * e - ?, em nomes - de arquivos em sistemas Unix -

-
-

- lesskey -

-
-

- Usado para especificar os atalhos de tecla para - less -

-
-
-
-
-
-
-
-
-

- 8.41. Perl-5.34.0 -

-
-
-
-
-

- O pacote Perl contém o Practical Extraction and Report - Language. -

-
-
-
- Tempo aproximado de - construção: 9,3 UPC -
-
- Espaço em disco - exigido: 226 MB -
-
-
-
-
-

- 8.41.1. Instalação do Perl -

-

- Primeiro, aplique uma correção que conserta um problema - destacado por versões recentes do gdbm: -

-
patch -Np1 -i ../perl-5.34.0-upstream_fixes-1.patch
-

- Essa versão do Perl agora constrói os módulos - Compress::Raw::Zlib e Compress::Raw::BZip2. Por padrão, Perl - usará uma cópia interna dos fontes para a construção. Execute - o seguinte comando de modo que Perl usará as bibliotecas - instaladas no sistema: -

-
export BUILD_ZLIB=False
-export BUILD_BZIP2=0
-

- Para ter controle completo sobre a maneira como Perl é - configurado, você pode remover as opções -des - do comando seguinte e escolher manualmente a maneira como - esse pacote é construído. Alternativamente, use o comando - exatamente como está abaixo para usar os padrões que o Perl - detecta automaticamente: -

-
sh Configure -des                                         \
-             -Dprefix=/usr                                \
-             -Dvendorprefix=/usr                          \
-             -Dprivlib=/usr/lib/perl5/5.34/core_perl      \
-             -Darchlib=/usr/lib/perl5/5.34/core_perl      \
-             -Dsitelib=/usr/lib/perl5/5.34/site_perl      \
-             -Dsitearch=/usr/lib/perl5/5.34/site_perl     \
-             -Dvendorlib=/usr/lib/perl5/5.34/vendor_perl  \
-             -Dvendorarch=/usr/lib/perl5/5.34/vendor_perl \
-             -Dman1dir=/usr/share/man/man1                \
-             -Dman3dir=/usr/share/man/man3                \
-             -Dpager="/usr/bin/less -isR"                 \
-             -Duseshrplib                                 \
-             -Dusethreads
-
-

- O significado das opções de configure: -

-
-
- -Dvendorprefix=/usr -
-
-

- Isso garante que perl saiba como dizer - aos pacotes onde eles deveriam instalar módulos perl - deles. -

-
-
- -Dpager="/usr/bin/less - -isR" -
-
-

- Isso garante que less seja usado em - vez de more. -

-
-
- -Dman1dir=/usr/share/man/man1 - -Dman3dir=/usr/share/man/man3 -
-
-

- Uma vez que o Groff ainda não está instalado, - Configure - pensa que nós não queremos páginas de manual para o - Perl. Emitir esses parâmetros substitui essa decisão. -

-
-
- -Duseshrplib -
-
-

- Constrói uma libperl compartilhada necessária para - alguns módulos perl. -

-
-
- -Dusethreads -
-
-

- Constrói perl com suporte para camadas. -

-
-
- -Dprivlib,-Darchlib,-Dsitelib,... -
-
-

- Essas configurações definem onde o Perl está procurando - módulos instalados. As(Os) editoras(es) de LFS optaram - por colocá-los em uma estrutura de diretórios baseada - na versão Major.Minor do Perl (5.34), a qual permite - atualizar o Perl para níveis de Patch mais recentes - (5.34.0) sem a necessidade de reinstalar todos os - módulos novamente. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados (aproximadamente 11 UPCs), execute: -

-
make test
-

- Instale o pacote e limpe: -

-
make install
-unset BUILD_ZLIB BUILD_BZIP2
-
-
-

- 8.41.2. - Conteúdo do Perl -

-
-
-
- Aplicativos instalados: - corelist, cpan, enc2xs, encguess, - h2ph, h2xs, instmodsh, json_pp, libnetcfg, perl, - perl5.34.0 (hard link para perl), perlbug, perldoc, - perlivp, perlthanks (hard link para perlbug), piconv, - pl2pm, pod2html, pod2man, pod2text, pod2usage, - podchecker, podselect, prove, ptar, ptardiff, ptargrep, - shasum, splain, xsubpp e zipdetails -
-
- Bibliotecas instaladas: - Muitas, as quais não podem ser - todas listadas aqui -
-
- Diretório instalado: - /usr/lib/perl5 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- corelist -

-
-

- Um frontend de linha de comando para - Module::CoreList -

-
-

- cpan -

-
-

- Interage com o Comprehensive Perl Archive Network - (CPAN) a partir da linha de comando -

-
-

- enc2xs -

-
-

- Constrói uma extensão Perl para o módulo Encode a - partir tanto de Mapeamentos de Caracteres Unicode - quanto de Arquivos de Codificação Tcl -

-
-

- encguess -

-
-

- Advinha o tipo de codificação de um ou vários - arquivos -

-
-

- h2ph -

-
-

- Converte arquivos de cabeçalho C .h para arquivos de cabeçalho - Perl .ph -

-
-

- h2xs -

-
-

- Converte arquivos de cabeçalho C .h para extensões Perl -

-
-

- instmodsh -

-
-

- Script de shell para examinar módulos Perl - instalados, e pode criar um tarball a partir de um - módulo instalado -

-
-

- json_pp -

-
-

- Converte dados entre certos formatos de entrada e - saída -

-
-

- libnetcfg -

-
-

- Pode ser usado para configurar o módulo Perl - libnet -

-
-

- perl -

-
-

- Combina algumas das melhores características do C, - sed, - awk e - sh em - uma linguagem canivete suíço única -

-
-

- perl5.34.0 -

-
-

- Um hard link para perl -

-
-

- perlbug -

-
-

- Usado para gerar relatórios de defeitos sobre o - Perl, ou módulos que vem como ele, e enviá-los por - correio -

-
-

- perldoc -

-
-

- Exibe uma parte da documentação em formato de pod - que está incorporada na árvore de instalação do - Perl ou em um script Perl -

-
-

- perlivp -

-
-

- O Procedimento de Verificação de Instalação do - Perl; pode ser usado para verificar se o Perl e - suas bibliotecas foram instalados corretamente -

-
-

- perlthanks -

-
-

- Usado para gerar mensagens de agradecimento para - enviar para as(os) desenvolvedoras(es) Perl -

-
-

- piconv -

-
-

- Uma versão Perl do conversor de codificação de - caracteres iconv -

-
-

- pl2pm -

-
-

- Uma ferramenta rudimentar para converter arquivos - Perl4 .pl para - módulos Perl5 .pm -

-
-

- pod2html -

-
-

- Converte arquivos do formato pod para o formato - HTML -

-
-

- pod2man -

-
-

- Converte dados pod para entrada formatada *roff -

-
-

- pod2text -

-
-

- Converte dados pod para texto ASCII formatado -

-
-

- pod2usage -

-
-

- Imprime mensagens de uso a partir de documentos pod - incorporados em arquivos -

-
-

- podchecker -

-
-

- Verifica a sintaxe de arquivos de documentação no - formato pod -

-
-

- podselect -

-
-

- Exibe seções selecionadas de documentação pod -

-
-

- prove -

-
-

- Ferramenta de linha de comando para executar testes - contra o módulo Test::Harness -

-
-

- ptar -

-
-

- Um aplicativo similar ao tar escrito em - Perl -

-
-

- ptardiff -

-
-

- Um aplicativo Perl que compara um arquivamento - extraído com um não extraído -

-
-

- ptargrep -

-
-

- Um aplicativo Perl que aplica correspondência de - padrão ao conteúdo de arquivos em um arquivamento - tar -

-
-

- shasum -

-
-

- Imprime ou verifica somas de verificação SHA -

-
-

- splain -

-
-

- É usado para forçar diagnósticos de aviso - detalhados em Perl -

-
-

- xsubpp -

-
-

- Converte código Perl XS em código C -

-
-

- zipdetails -

-
-

- Exibe detalhes sobre a estrutura interna de um - arquivo Zip -

-
-
-
-
-
-
-
-
-

- 8.42. XML::Parser-2.46 -

-
-
-
-
-

- O módulo XML::Parser é uma interface Perl para o analisador - de XML do James Clark, Expat. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 2,4 MB -
-
-
-
-
-

- 8.42.1. Instalação do XML::Parser -

-

- Prepare XML::Parser para compilação: -

-
perl Makefile.PL
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make test
-

- Instale o pacote: -

-
make install
-
-
-

- 8.42.2. Conteúdo do XML::Parser -

-
-
-
- Módulo instalado: - Expat.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- Expat -

-
-

- Fornece a interface Perl Expat -

-
-
-
-
-
-
-
-
-

- 8.43. Intltool-0.51.0 -

-
-
-
-
-

- O Intltool é uma ferramenta de internacionalização usada para - extrair sequências de caracteres traduzíveis a partir de - arquivos fonte. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 1,5 MB -
-
-
-
-
-

- 8.43.1. Instalação do Intltool -

-

- Primeiro, conserte um aviso que é causado por perl-5.22 e - posteriores: -

-
sed -i 's:\\\${:\\\$\\{:' intltool-update.in
-
-

- Nota -

-

- A expressão regular acima parece incomum por causa de todas - as contra barras. O que ela faz é adicionar uma contra - barra antes do carácter abre chave na sequência '\${' - resultando em '\$\{'. -

-
-

- Prepare Intltool para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-install -v -Dm644 doc/I18N-HOWTO /usr/share/doc/intltool-0.51.0/I18N-HOWTO
-
-
-

- 8.43.2. Conteúdo do Intltool -

-
-
-
- Aplicativos instalados: - intltool-extract, intltool-merge, - intltool-prepare, intltool-update e intltoolize -
-
- Diretórios instalados: - /usr/share/doc/intltool-0.51.0 e - /usr/share/intltool -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- intltoolize -

-
-

- Prepara um pacote para usar intltool -

-
-

- intltool-extract -

-
-

- Gera arquivos de cabeçalho que podem ser lidos por - gettext -

-
-

- intltool-merge -

-
-

- Mescla sequência de caracteres traduzidos em vários - tipos de arquivos -

-
-

- intltool-prepare -

-
-

- Atualiza arquivos pot e mescla eles com arquivos de - tradução -

-
-

- intltool-update -

-
-

- Atualiza os arquivos de modelo po e mescla eles com - as traduções -

-
-
-
-
-
-
-
-
-

- 8.44. Autoconf-2.71 -

-
-
-
-
-

- O pacote Autoconf contém aplicativos para produzir scripts de - shell que podem configurar automaticamente código fonte. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC (cerca de 6,8 UPC com os testes) -
-
- Espaço em disco - exigido: 24 MB -
-
-
-
-
-

- 8.44.1. Instalação do Autoconf -

-

- Prepare Autoconf para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-
-

- Nota -

-

- O tempo de teste para autoconf pode ser reduzido - significativamente em um sistema com múltiplos núcleos. - Para fazer isso, acrescente TESTSUITEFLAGS=-j<N> - ao final da linha acima. Por exemplo, usar -j4 pode reduzir - o tempo de teste em mais que 60 por cento. -

-
-

- Instale o pacote: -

-
make install
-
-
-

- 8.44.2. Conteúdo do Autoconf -

-
-
-
- Aplicativos instalados: - autoconf, autoheader, autom4te, - autoreconf, autoscan, autoupdate e ifnames -
-
- Diretório instalado: - /usr/share/autoconf -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- autoconf -

-
-

- Produz scripts de shell que configuram - automaticamente pacotes de código fonte de - aplicativos para adaptar a vários tipos de sistemas - semelhantes a Unix; os scripts de configuração que - ele produz são independentes—executá-los não - exige o aplicativo autoconf -

-
-

- autoheader -

-
-

- Uma ferramenta para criar arquivos de modelo de - declarações #define de C para - configure usar -

-
-

- autom4te -

-
-

- Um encapsulador para o processador de macro M4 -

-
-

- autoreconf -

-
-

- Automaticamente executa autoconf, - autoheader, - aclocal, - automake, - gettextize e - libtoolize na - ordem correta para economizar tempo quando mudanças - são feitas para arquivos de modelo autoconf e - automake -

-
-

- autoscan -

-
-

- Ajuda a criar um arquivo configure.in para um pacote de - aplicativos; ele examina os arquivos fonte em uma - árvore de diretórios, procurando neles por - problemas de portabilidade comuns, e cria um - arquivo configure.scan que serve como um - arquivo configure.in - preliminar para o pacote -

-
-

- autoupdate -

-
-

- Modifica um arquivo configure.in que ainda chama - macros autoconf por seus - nomes antigos para usar os nomes de macro atuais -

-
-

- ifnames -

-
-

- Ajuda ao escrever arquivos configure.in para um pacote de - aplicativos; ele imprime os identificadores que o - pacote usa em condicionais de preprocessador C [Se - um pacote já foi configurado para ter alguma - portabilidade, então esse aplicativo pode ajudar a - determinar o que configure precisa - checar. Ele também pode preencher lacunas em um - arquivo configure.in - gerado por autoscan]. -

-
-
-
-
-
-
-
-
-

- 8.45. Automake-1.16.5 -

-
-
-
-
-

- O pacote Automake contém aplicativos para gerar Makefiles - para uso com Autoconf. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC (cerca de 8,3 UPC com os testes) -
-
- Espaço em disco - exigido: 115 MB -
-
-
-
-
-

- 8.45.1. Instalação do Automake -

-

- Prepare Automake para compilação: -

-
./configure --prefix=/usr --docdir=/usr/share/doc/automake-1.16.5
-

- Compile o pacote: -

-
make
-

- Usar a opção de make -j4 acelera os testes, mesmo em sistemas - com apenas um processador, devido a atrasos internos em - testes individuais. Para testar os resultados, execute: -

-
make -j4 check
-

- O teste t/subobj.sh é conhecido por falhar. -

-

- Instale o pacote: -

-
make install
-
-
-

- 8.45.2. Conteúdo do Automake -

-
-
-
- Aplicativos instalados: - aclocal, aclocal-1.16 (hard link - com aclocal), automake e automake-1.16 (hard link com - automake) -
-
- Diretórios instalados: - /usr/share/aclocal-1.16, - /usr/share/automake-1.16 e - /usr/share/doc/automake-1.16.5 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- aclocal -

-
-

- Gera arquivos aclocal.m4 baseados no conteúdo - dos arquivos configure.in -

-
-

- aclocal-1.16 -

-
-

- Um hard link para aclocal -

-
-

- automake -

-
-

- Uma ferramenta para gerar automaticamente arquivos - Makefile.in a partir - de arquivos Makefile.am [Para criar todos os - arquivos Makefile.in - para um pacote, execute esse aplicativo no - diretório superior. Escaneando o arquivo - configure.in, ele - automaticamente encontra cada arquivo Makefile.am apropriado e gera o - arquivo Makefile.in - correspondente]. -

-
-

- automake-1.16 -

-
-

- Um hard link para automake -

-
-
-
-
-
-
-
-
-

- 8.46. OpenSSL-3.0.1 -

-
-
-
-
-

- O pacote OpenSSL contém ferramentas de gerenciamento e - bibliotecas relacionadas à criptografia. Essas são úteis para - fornecer funções criptográficas para outros pacotes, tais - como OpenSSH, aplicativos de correio eletrônico e navegadores - de rede (para acessar sítios HTTPS). -

-
-
-
- Tempo aproximado de - construção: 5,4 UPC -
-
- Espaço em disco - exigido: 474 MB -
-
-
-
-
-

- 8.46.1. Instalação do OpenSSL -

-

- Prepare OpenSSL para compilação: -

-
./config --prefix=/usr         \
-         --openssldir=/etc/ssl \
-         --libdir=lib          \
-         shared                \
-         zlib-dynamic
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make test
-

- Um teste, 30-test_afalg.t, é conhecido por falhar em algumas - configurações de kernel (dependendo de valores inconsistentes - de configurações CONFIG_CRYPTO_USER_API*). Se ele falhar, - então ele pode seguramente ser ignorado. -

-

- Instale o pacote: -

-
sed -i '/INSTALL_LIBS/s/libcrypto.a libssl.a//' Makefile
-make MANSUFFIX=ssl install
-

- Adicione a versão ao nome de diretório de documentação, para - ser consistente com outros pacotes: -

-
mv -v /usr/share/doc/openssl /usr/share/doc/openssl-3.0.1
-

- Se desejado, instale alguma documentação adicional: -

-
cp -vfr doc/* /usr/share/doc/openssl-3.0.1
-
-

- Nota -

-

- Você deveria atualizar OpenSSL quando uma versão nova que - conserta vulnerabilidades for anunciada. Os lançamentos - ocorrem em séries, com uma letra para cada lançamento após - o lançamento inicial (por exemplo, 1.1.1, 1.1.1a, 1.1.1b, - etc). Por causa de que LFS instala somente as bibliotecas - compartilhadas, não existe necessidade de recompilar - pacotes que se vinculem a libcrypto.so ou libssl.so quando atualizar na mesma série. -

-

- Entretanto, quaisquer aplicativos em execução vinculados - àquelas bibliotecas precisam ser parados e reiniciados. - Leia-se as entradas relacionadas em Seção 8.2.1, - “Problemas de Atualização” para detalhes. -

-
-
-
-

- 8.46.2. - Conteúdo do OpenSSL -

-
-
-
- Aplicativos instalados: - c_rehash e openssl -
-
- Bibliotecas instaladas: - libcrypto.so e libssl.so -
-
- Diretórios instalados: - /etc/ssl, /usr/include/openssl, - /usr/lib/engines e /usr/share/doc/openssl-3.0.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- c_rehash -

-
-

- é um script Perl - que escaneia todos os arquivos em um diretório e - adiciona links simbólicos para os valores de hash - deles -

-
-

- openssl -

-
-

- é uma ferramenta de linha de comando para usar as - várias funções criptográficas da biblioteca de - criptografia do OpenSSL a partir do shell. Ela - pode ser usada para várias funções que estão - documentadas em man 1 - openssl -

-
-

- libcrypto.so -

-
-

- implementa um intervalo amplo de algoritmos - criptográficos usados em vários padrões da - Internet. Os serviços fornecidos por essa - biblioteca são usados pelas implementações - OpenSSL do SSL, - TLS e S/MIME e eles também tem sido usados para - implementar OpenSSH, OpenPGP e outros padrões - criptográficos -

-
-

- libssl.so -

-
-

- implementa o protocolo Transport Layer Security - (TLS v1). Ela fornece uma API rica, documentação - sobre a qual pode ser encontrada executando - man 3 - ssl -

-
-
-
-
-
-
-
-
-

- 8.47. Kmod-29 -

-
-
-
-
-

- O pacote Kmod contém bibliotecas e utilitários para carregar - módulos de kernel -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 12 MB -
-
-
-
-
-

- 8.47.1. Instalação do Kmod -

-

- Prepare Kmod para compilação: -

-
./configure --prefix=/usr          \
-            --sysconfdir=/etc      \
-            --with-openssl         \
-            --with-xz              \
-            --with-zstd            \
-            --with-zlib
-
-

- O significado das opções de configure: -

-
-
- --with-openssl -
-
-

- Essa opção habilita Kmod a lidar com assinaturas PKCS7 - para módulos de kernel. -

-
-
- --with-xz, --with-zlib, e --with-zstd -
-
-

- Essas opções habilitam Kmod a lidar com módulos de - kernel comprimidos. -

-
-
-
-

- Compile o pacote: -

-
make
-

- A suíte de teste desse pacote exige cabeçalhos de kernel crus - (não os cabeçalhos de kernel sanitizados instalados - anteriormente), os quais estão além do escopo do LFS. -

-

- Instale o pacote e crie links simbólicos para compatibilidade - com Module-Init-Tools (o pacote que anteriormente lidava com - módulos de kernel do Linux): -

-
make install
-
-for target in depmod insmod modinfo modprobe rmmod; do
-  ln -sfv ../bin/kmod /usr/sbin/$target
-done
-
-ln -sfv kmod /usr/bin/lsmod
-
-
-

- 8.47.2. - Conteúdo do Kmod -

-
-
-
- Aplicativos instalados: - depmod (link para kmod), insmod - (link para kmod), kmod, lsmod (link para kmod), modinfo - (link para kmod), modprobe (link para kmod) e rmmod (link - para kmod) -
-
- Biblioteca instalada: - libkmod.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- depmod -

-
-

- Cria um arquivo de dependência baseado nos símbolos - que ele encontra no conjunto existente de módulos; - esse arquivo de dependência é usado por - modprobe - para carregar automaticamente os módulos exigidos -

-
-

- insmod -

-
-

- Instala um módulo carregável no kernel em execução -

-
-

- kmod -

-
-

- Carrega e descarrega módulos de kernel -

-
-

- lsmod -

-
-

- Lista módulos atualmente carregados -

-
-

- modinfo -

-
-

- Examina um arquivo objeto associado com um módulo - de kernel e exibe qualquer informação que ele possa - coletar -

-
-

- modprobe -

-
-

- Usa um arquivo de dependência, criado por - depmod, para - carregar automaticamente módulos relevantes -

-
-

- rmmod -

-
-

- Descarrega módulos a partir do kernel em execução -

-
-

- libkmod -

-
-

- Essa biblioteca é usada por outros aplicativos para - carregar e descarregar módulos de kernel -

-
-
-
-
-
-
-
-
-

- 8.48. Libelf oriundo de - Elfutils-0.186 -

-
-
-
-
-

- Libelf é uma biblioteca para lidar com arquivos ELF - (Executable and Linkable Format). -

-
-
-
- Tempo aproximado de - construção: 0,9 UPC -
-
- Espaço em disco - exigido: 116 MB -
-
-
-
-
-

- 8.48.1. Instalação do Libelf -

-

- Libelf é parte do pacote elfutils-0.186. Use o - elfutils-0.186.tar.bz2 como o tarball fonte. -

-

- Prepare Libelf para compilação: -

-
./configure --prefix=/usr                \
-            --disable-debuginfod         \
-            --enable-libdebuginfod=dummy
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale apenas Libelf: -

-
make -C libelf install
-install -vm644 config/libelf.pc /usr/lib/pkgconfig
-rm /usr/lib/libelf.a
-
-
-

- 8.48.2. Conteúdo do Libelf -

-
-
-
- Biblioteca instalada: - libelf.so (link simbólico) e - libelf-0.186.so -
-
- Diretório instalado: - /usr/include/elfutils -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- libelf -

-
-

- Contém funções de API para lidar com arquivos - objeto ELF -

-
-
-
-
-
-
-
-
-

- 8.49. Libffi-3.4.2 -

-
-
-
-
-

- A biblioteca Libffi fornece uma interface de programação - portável e de alto nível para várias convenções de chamada. - Isso permite a uma(m) programadora(r) chamar qualquer função - especificada por uma descrição de interface de chamada em - tempo de execução. -

-
-
-
- Tempo aproximado de - construção: 1,9 UPC -
-
- Espaço em disco - exigido: 10 MB -
-
-
-
-
-

- 8.49.1. Instalação do Libffi -

-
-

- Nota -

-

- Semelhante a GMP, libffi constrói com otimizações - específicas para o processador em uso. Se construir para - outro sistema, então exporte CFLAGS e CXXFLAGS para - especificar uma construção genérica para sua arquitetura. - Se isso não for feito, então todos os aplicativos que se - vincularem a libffi deflagrarão Illegal Operation Errors. -

-
-

- Prepare libffi para compilação: -

-
./configure --prefix=/usr          \
-            --disable-static       \
-            --with-gcc-arch=native \
-            --disable-exec-static-tramp
-
-

- O significado da opção de configure: -

-
-
- --with-gcc-arch=native -
-
-

- Garante que GCC otimiza para o sistema atual. Se isso - não for especificado, então o sistema é presumido e o - código gerado talvez não esteja correto para alguns - sistemas. Se o código gerado será copiado de um sistema - nativo para um sistema menos capaz, então use o sistema - menos capaz como um parâmetro. Para detalhes acerca de - tipos de sistema alternativos, veja-se - as opções de x86 no manual do GCC. -

-
-
- --disable-exec-static-tramp -
-
-

- Desabilita o suporte de trampolim estático. Ele é uma - nova característica de segurança em libffi, porém - alguns pacotes BLFS (notadamente GJS e gobject-introspection) não foram - adaptados para ele. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.49.2. - Conteúdo do Libffi -

-
-
-
- Biblioteca instalada: - libffi.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- libffi -

-
-

- contém as funções da API da interface de função - estrangeira -

-
-
-
-
-
-
-
-
-

- 8.50. Python-3.10.2 -

-
-
-
-
-

- O pacote Python 3 contém o ambiente Python de - desenvolvimento. Ele é útil para programação orientada a - objetos, escrita de scripts, prototipagem de aplicativos - grandes, ou desenvolvimento de aplicações inteiras. -

-
-
-
- Tempo aproximado de - construção: 4,3 UPC -
-
- Espaço em disco - exigido: 275 MB -
-
-
-
-
-

- 8.50.1. Instalação do Python 3 -

-

- Prepare Python para compilação: -

-
./configure --prefix=/usr        \
-            --enable-shared      \
-            --with-system-expat  \
-            --with-system-ffi    \
-            --with-ensurepip=yes \
-            --enable-optimizations
-
-

- O significado das opções de configure: -

-
-
- --with-system-expat -
-
-

- Essa chave habilita vinculação contra a versão de - sistema do Expat. -

-
-
- --with-system-ffi -
-
-

- Essa chave habilita vinculação contra a versão de - sistema de libffi. -

-
-
- --with-ensurepip=yes -
-
-

- Essa chave habilita construir os aplicativos de - empacotamento pip e setuptools. -

-
-
- --enable-optimizations -
-
-

- Essa chave habilita otimizações estáveis, porém - onerosas. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Executar os testes neste ponto não é recomendado. Os testes - são conhecidos por travar indefinidamente dentro de um - ambiente LFS parcial. Se desejado, então os testes podem ser - reexecutados ao final deste capítulo ou quando Python 3 for - reinstalado em BLFS. Para executar os testes de qualquer - maneira, emita make - test. -

-

- Instale o pacote: -

-
make install
-

- Se desejado, então instale a documentação pré-formatada: -

-
install -v -dm755 /usr/share/doc/python-3.10.2/html
-
-tar --strip-components=1  \
-    --no-same-owner       \
-    --no-same-permissions \
-    -C /usr/share/doc/python-3.10.2/html \
-    -xvf ../python-3.10.2-docs-html.tar.bz2
-
-

- O significado dos comandos de instalação de - documentação: -

-
-
- --no-same-owner e --no-same-permissions -
-
-

- Garanta que os arquivos instalados tenham a propriedade - e as permissões corretas. Sem essas opções, usar - tar instalará os - arquivos de pacote com os valores da(o) criadora(r) - upstream. -

-
-
-
-
-
-

- 8.50.2. - Conteúdo do Python 3 -

-
-
-
- Aplicativos instalados: - 2to3, idle3, pip3, pydoc3, python3 - e python3-config -
-
- Bibliotecas instaladas: - libpython3.10.so e - libpython3.so -
-
- Diretórios instalados: - /usr/include/python3.10, - /usr/lib/python3 e /usr/share/doc/python-3.10.2 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- 2to3 -

-
-

- é um aplicativo Python que lê código fonte - Python 2.x e - aplica uma série de consertos para transformá-lo em - código Python 3.x - válido -

-
-

- idle3 -

-
-

- é um script encapsulador que abre um editor GUI - ciente de Python. - Para esse script executar, você precisa ter - instalado Tk antes - do Python, de forma que o módulo Tkinter Python - seja construído -

-
-

- pip3 -

-
-

- O instalador de pacote para Python. Você pode usar - pip para instalar pacotes originários do Python - Package Index e outros índices -

-
-

- pydoc3 -

-
-

- é a ferramenta de documentação Python -

-
-

- python3 -

-
-

- é uma linguagem de programação orientada a objeto, - interativa e interpretada -

-
-
-
-
-
-
-
-
-

- 8.51. Ninja-1.10.2 -

-
-
-
-
-

- Ninja é um sistema de construção pequeno com um foco em - velocidade. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 64 MB -
-
-
-
-

- Dica -

-

- Esta seção não é estritamente exigida para LFS se não usar - systemd. Por outro lado, ninja associado a meson fazem uma - combinação de sistema de construção poderosa, o qual é - esperado que seja usado mais e mais frequentemente. Ele é - exigido por muitos pacotes no livro - BLFS. -

-
-
-
-

- 8.51.1. Instalação do Ninja -

-

- Quando executado, ninja normalmente executa um número máximo - de processos em paralelo. Por padrão, esse é o número de - núcleos no sistema mais dois. Em alguns casos, isso pode - superaquecer uma CPU ou deixar o sistema sem memória. Se - executar a partir da linha de comando, então passar um - parâmetro -jN limitará o número de processos paralelos, porém - alguns pacotes embutem a execução de ninja e não passam um - parâmetro -j. -

-

- Usar o procedimento opcional abaixo permite que uma(m) - usuária(o) limite o número de processos paralelos via uma - variável de ambiente, NINJAJOBS. Por exemplo, configurar: -

-
export NINJAJOBS=4
-

- limitará ninja a quatro processos paralelos. -

-

- Se desejado, então adicione a capacidade de usar a variável - de ambiente NINJAJOBS executando: -

-
sed -i '/int Guess/a \
-  int   j = 0;\
-  char* jobs = getenv( "NINJAJOBS" );\
-  if ( jobs != NULL ) j = atoi( jobs );\
-  if ( j > 0 ) return j;\
-' src/ninja.cc
-

- Construa Ninja com: -

-
python3 configure.py --bootstrap
-
-

- O significado da opção de construção: -

-
-
- --bootstrap -
-
-

- Esse parâmetro força ninja a reconstruir ele próprio - para o sistema atual. -

-
-
-
-

- Para testar os resultados, execute: -

-
./ninja ninja_test
-./ninja_test --gtest_filter=-SubprocessTest.SetWithLots
-

- Instale o pacote: -

-
install -vm755 ninja /usr/bin/
-install -vDm644 misc/bash-completion /usr/share/bash-completion/completions/ninja
-install -vDm644 misc/zsh-completion  /usr/share/zsh/site-functions/_ninja
-
-
-

- 8.51.2. - Conteúdo do Ninja -

-
-
-
- Aplicativo instalado: - ninja -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- ninja -

-
-

- é o sistema de construção Ninja -

-
-
-
-
-
-
-
-
-

- 8.52. Meson-0.61.1 -

-
-
-
-
-

- Meson é um sistema de construção de código fonte aberto - destinado para ser ambos extremamente rápido e tão amigável - à(ao) usuária(o) quanto possível. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 41 MB -
-
-
-
-

- Dica -

-

- Esta seção não é estritamente exigida para LFS se não usar - systemd. Por outro lado, meson/ninja é um sistema de - construção poderoso, o qual é esperado que seja usado mais - e mais frequentemente. Ele é exigido por muitos pacotes no - livro - BLFS. -

-
-
-
-

- 8.52.1. Instalação do Meson -

-

- Compile Meson com o seguinte comando: -

-
python3 setup.py build
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
python3 setup.py install --root=dest
-cp -rv dest/* /
-install -vDm644 data/shell-completions/bash/meson /usr/share/bash-completion/completions/meson
-install -vDm644 data/shell-completions/zsh/_meson /usr/share/zsh/site-functions/_meson
-
-

- O significado dos parâmetros de install: -

-
-
- --root=dest -
-
-

- Por padrão, python3 - setup.py install instala vários - arquivos (tais como páginas de manual) em Python Eggs. - Com um local raiz especificado, setup.py instala - esses arquivos na hierarquia padrão. Então a hierarquia - pode apenas ser copiada para o local padrão. -

-
-
-
-
-
-

- 8.52.2. - Conteúdo do Meson -

-
-
-
- Aplicativo instalado: - meson -
-
- Diretórios instalados: - /usr/lib/python3.10/site-packages/meson-0.61.1-py3.10.egg-info - e /usr/lib/python3.10/site-packages/mesonbuild -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- meson -

-
-

- Um sistema de construção de alta produtividade -

-
-
-
-
-
-
-
-
-

- 8.53. Coreutils-9.0 -

-
-
-
-
-

- O pacote Coreutils contém utilitários para mostrar e - configurar as características básicas de sistema. -

-
-
-
- Tempo aproximado de - construção: 2,6 UPC -
-
- Espaço em disco - exigido: 153 MB -
-
-
-
-
-

- 8.53.1. Instalação do Coreutils -

-

- POSIX exige que aplicativos originários do Coreutils - reconheçam limites de carácter corretamente mesmo em locales - multibyte. A seguinte correção conserta essa não-conformidade - e outros defeitos relacionados à internacionalização. -

-
patch -Np1 -i ../coreutils-9.0-i18n-1.patch
-
-

- Nota -

-

- No passado, muitos defeitos foram encontrados nessa - correção. Quando reportar novos defeitos para as(os) - mantenedoras(es) do Coreutils, por favor verifique primeiro - se eles são reproduzíveis sem essa correção. -

-
-

- Agora, conserte um problema com valores de retorno de chmod: -

-
patch -Np1 -i ../coreutils-9.0-chmod_fix-1.patch
-

- Agora prepare Coreutils para compilação: -

-
autoreconf -fiv
-FORCE_UNSAFE_CONFIGURE=1 ./configure \
-            --prefix=/usr            \
-            --enable-no-install-program=kill,uptime
-
-

- O significado das opções de configure: -

-
-
- autoreconf -
-
-

- A correção para internacionalização modificou o sistema - de construção do pacote, então os arquivos de - configuração tem de ser regenerados. -

-
-
- FORCE_UNSAFE_CONFIGURE=1 -
-
-

- Essa variável de ambiente permite que o pacote seja - construído como a(o) usuária(o) root. -

-
-
- --enable-no-install-program=kill,uptime -
-
-

- O propósito dessa chave é o de impedir que o Coreutils - instale binários que serão instalados por outros - pacotes posteriormente. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Pule para Instale o pacote se não executar - a suíte de teste. -

-

- Agora a suíte de teste está pronta para ser executada. - Primeiro, execute os testes que são destinados a serem - executados como usuária(o) root: -

-
make NON_ROOT_USERNAME=tester check-root
-

- Nós vamos executar o resto dos testes como a(o) usuária(o) - tester. Certos testes exigem - que a(o) usuária(o) seja um membro de mais que um grupo. Para - que esses testes não sejam pulados, adicione um grupo - temporário e torne a(o) usuária(o) tester parte dele: -

-
echo "dummy:x:102:tester" >> /etc/group
-

- Conserte algumas das permissões de modo que a(o) usuária(o) - não-root possa compilar e executar os testes: -

-
chown -Rv tester . 
-

- Agora execute os testes: -

-
su tester -c "PATH=$PATH make RUN_EXPENSIVE_TESTS=yes check"
-

- O teste test-getlogin é conhecido por falhar dentro do - ambiente chroot do LFS. -

-

- Remova o grupo temporário: -

-
sed -i '/dummy/d' /etc/group
-

- Instale o pacote: -

-
make install
-

- Mova aplicativos para os locais especificados pelo FHS: -

-
mv -v /usr/bin/chroot /usr/sbin
-mv -v /usr/share/man/man1/chroot.1 /usr/share/man/man8/chroot.8
-sed -i 's/"1"/"8"/' /usr/share/man/man8/chroot.8
-
-
-

- 8.53.2. Conteúdo do Coreutils -

-
-
-
- Aplicativos instalados: - [, b2sum, base32, base64, basename, - basenc, cat, chcon, chgrp, chmod, chown, chroot, cksum, - comm, cp, csplit, cut, date, dd, df, dir, dircolors, - dirname, du, echo, env, expand, expr, factor, false, fmt, - fold, groups, head, hostid, id, install, join, link, ln, - logname, ls, md5sum, mkdir, mkfifo, mknod, mktemp, mv, - nice, nl, nohup, nproc, numfmt, od, paste, pathchk, - pinky, pr, printenv, printf, ptx, pwd, readlink, - realpath, rm, rmdir, runcon, seq, sha1sum, sha224sum, - sha256sum, sha384sum, sha512sum, shred, shuf, sleep, - sort, split, stat, stdbuf, stty, sum, sync, tac, tail, - tee, test, timeout, touch, tr, true, truncate, tsort, - tty, uname, unexpand, uniq, unlink, users, vdir, wc, who, - whoami e yes -
-
- Biblioteca instalada: - libstdbuf.so (em - /usr/libexec/coreutils) -
-
- Diretório instalado: - /usr/libexec/coreutils -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- [ -

-
-

- É um comando atual, /usr/bin/[, que é um sinônimo - para o comando test -

-
-

- base32 -

-
-

- Codifica e decodifica dados de acordo com a - especificação base32 (RFC 4648) -

-
-

- base64 -

-
-

- Codifica e decodifica dados de acordo com a - especificação base64 (RFC 4648) -

-
-

- b2sum -

-
-

- Imprime ou verifica somas de verificação BLAKE2 - (512 bits) -

-
-

- basename -

-
-

- Remove qualquer caminho e um dado sufixo de um nome - de arquivo -

-
-

- basenc -

-
-

- Codifica ou decodifica dados usando vários - algoritmos -

-
-

- cat -

-
-

- Concatena arquivos para saída padrão -

-
-

- chcon -

-
-

- Muda contexto de segurança para arquivos e - diretórios -

-
-

- chgrp -

-
-

- Muda a propriedade do grupo de arquivos e - diretórios -

-
-

- chmod -

-
-

- Muda as permissões de cada arquivo para o modo - dado; o modo pode ser ou uma representação - simbólica das mudanças a fazer ou um número octal - representando as novas permissões -

-
-

- chown -

-
-

- Muda a propriedade da(o) usuária(o) e (ou) grupo de - arquivos e dos diretórios -

-
-

- chroot -

-
-

- Executa um comando com o diretório especificado - como o diretório / -

-
-

- cksum -

-
-

- Imprime a soma de verificação Cyclic Redundancy - Check (CRC) e as contagens de bytes de cada arquivo - especificado -

-
-

- comm -

-
-

- Compara dois arquivos ordenados, exibindo em três - colunas as linhas que são únicas e as linhas que - são comuns -

-
-

- cp -

-
-

- Copia arquivos -

-
-

- csplit -

-
-

- Divide um dado arquivo em vários novos arquivos, - separando-os de acordo com padrões dados ou números - de linha e exibindo a contagem de bytes de cada - novo arquivo -

-
-

- cut -

-
-

- Imprime seções de linhas, selecionando as partes de - acordo com campos ou posições dados -

-
-

- date -

-
-

- Exibe a hora atual no formato dado, ou configura a - data do sistema -

-
-

- dd -

-
-

- Copia um arquivo usando o tamanho de bloco e - contagem dados, enquanto opcionalmente realiza - conversões sobre ele -

-
-

- df -

-
-

- Reporta a quantidade de espaço de disco disponível - (e usada) em todos os sistemas de arquivos - montados, ou apenas nos sistemas de arquivos - contendo os arquivos selecionados -

-
-

- dir -

-
-

- Lista o conteúdo de cada diretório dado (o mesmo - que o comando ls) -

-
-

- dircolors -

-
-

- Gera comandos para configurar a variável de - ambiente LS_COLOR para - mudar o esquema de cores usado por ls -

-
-

- dirname -

-
-

- Remove o sufixo que não é diretório de um nome de - arquivo -

-
-

- du -

-
-

- Relata a quantidade de espaço de disco usado pelo - diretório atual, por cada diretório dado (incluindo - todos subdiretórios) ou por cada um dos arquivos - dados -

-
-

- echo -

-
-

- Exibe as sequências de caracteres dadas -

-
-

- env -

-
-

- Executa um comando em um ambiente modificado -

-
-

- expand -

-
-

- Converte tabulação para espaços -

-
-

- expr -

-
-

- Avalia expressões -

-
-

- factor -

-
-

- Imprime os fatores primos de todos os números - inteiros especificados -

-
-

- false -

-
-

- Não faz nada, sem sucesso; sempre sai com um código - de status indicando falha -

-
-

- fmt -

-
-

- Reformata os parágrafos nos arquivos dados -

-
-

- fold -

-
-

- Quebra as linhas nos arquivos dados -

-
-

- groups -

-
-

- Relata relacionamentos de membro de grupo de uma(m) - usuária(o) -

-
-

- head -

-
-

- Imprime as primeiras dez linhas (ou o número de - linhas dado) de cada arquivo dado -

-
-

- hostid -

-
-

- Relata o número identificador (em hexadecimal) do - dispositivo -

-
-

- id -

-
-

- Relata o efetivo ID de usuária(o), ID de grupo, e - os relacionamentos de membro de grupo da(o) - usuária(o) atual ou usuária(o) especificada(o) -

-
-

- install -

-
-

- Copia arquivos enquanto configura seus modos de - permissão e, se possível, seus proprietário e grupo -

-
-

- join -

-
-

- Junta as linhas que tem idênticos campos de junção - a partir de dois arquivos separados -

-
-

- link -

-
-

- Cria um hard link com o nome dado para um arquivo -

-
-

- ln -

-
-

- Faz hard links ou soft (simbólico) links entre - arquivos -

-
-

- logname -

-
-

- Relata o nome de login da(o) usuária(o) atual -

-
-

- ls -

-
-

- Lista o conteúdo de cada diretório dado -

-
-

- md5sum -

-
-

- Relata ou verifica somas de verificação Message - Digest 5 (MD5) -

-
-

- mkdir -

-
-

- Cria diretórios com os nomes dados -

-
-

- mkfifo -

-
-

- Cria First-In, First-Outs (FIFOs), um "pipe - nomeado" na linguagem UNIX, com os nomes dados -

-
-

- mknod -

-
-

- Cria nós de dispositivo com os nomes dados; um nó - de dispositivo é um arquivo especial de caractere, - um arquivo especial de bloco ou um FIFO -

-
-

- mktemp -

-
-

- Cria arquivos temporários de uma maneira segura; é - usado em scripts -

-
-

- mv -

-
-

- Move ou renomeia arquivos ou diretórios -

-
-

- nice -

-
-

- Executa um aplicativo com prioridade de agendamento - modificada -

-
-

- nl -

-
-

- Numera as linhas a partir dos arquivos dados -

-
-

- nohup -

-
-

- Executa um comando imune a interrupções, com sua - saída redirecionada para um arquivo de registro -

-
-

- nproc -

-
-

- Imprime o número de unidades de processamento - disponíveis para um processo -

-
-

- numfmt -

-
-

- Converte números para ou de sequências de - caracteres legíveis por humanos -

-
-

- od -

-
-

- Despeja arquivos em octal e outros formatos -

-
-

- paste -

-
-

- Mescla os arquivos dados, unindo linhas - sequencialmente correspondentes lado a lado, - separadas por caracteres de tabulação -

-
-

- pathchk -

-
-

- Verifica se nomes de arquivos são válidos ou - portáveis -

-
-

- pinky -

-
-

- É um cliente de dedo leve; ele relata algumas - informações sobre as(os) usuárias(os) dadas(os) -

-
-

- pr -

-
-

- Pagina e coluna arquivos para impressão -

-
-

- printenv -

-
-

- Imprime o ambiente -

-
-

- printf -

-
-

- Imprime os argumentos dados de acordo com o formato - dado, muito parecido com a função printf do C -

-
-

- ptx -

-
-

- Produz um índice permutado a partir do conteúdo dos - arquivos dados, com cada palavra-chave no contexto - dela -

-
-

- pwd -

-
-

- Relata o nome do diretório de trabalho atual -

-
-

- readlink -

-
-

- Relata o valor do link simbólico dado -

-
-

- realpath -

-
-

- Imprime o caminho resolvido -

-
-

- rm -

-
-

- Remove arquivos ou diretórios -

-
-

- rmdir -

-
-

- Remove diretórios se eles estiverem vazios -

-
-

- runcon -

-
-

- Executa um comando com contexto de segurança - especificado -

-
-

- seq -

-
-

- Imprime uma sequência de números dentro de um dado - intervalo e com um dado incremento -

-
-

- sha1sum -

-
-

- Imprime ou verifica somas de verificação do Secure - Hash Algorithm 1 (SHA1) 160 bits -

-
-

- sha224sum -

-
-

- Imprime ou verifica somas de verificação do Secure - Hash Algorithm de 224 bits -

-
-

- sha256sum -

-
-

- Imprime ou verifica somas de verificação do Secure - Hash Algorithm de 256 bits -

-
-

- sha384sum -

-
-

- Imprime ou verifica somas de verificação do Secure - Hash Algorithm de 384 bits -

-
-

- sha512sum -

-
-

- Imprime ou verifica somas de verificação do Secure - Hash Algorithm de 512 bits -

-
-

- shred -

-
-

- Sobrescreve os arquivos dados repetidamente com - padrões complexos, tornando difícil recuperar os - dados -

-
-

- shuf -

-
-

- Embaralha linhas do texto -

-
-

- sleep -

-
-

- Pausa pelo período de tempo dado -

-
-

- sort -

-
-

- Ordena as linhas a partir dos arquivos dados -

-
-

- split -

-
-

- Divide o arquivo dado em pedaços, por tamanho ou - por número de linhas -

-
-

- stat -

-
-

- Exibe a situação de arquivo ou sistema de arquivos -

-
-

- stdbuf -

-
-

- Executa comandos com operações de buffer alteradas - para fluxos padrão deles -

-
-

- stty -

-
-

- Configura ou relata configurações de linha de - terminal -

-
-

- sum -

-
-

- Imprime soma de verificação e contagens de blocos - para cada arquivo dado -

-
-

- sync -

-
-

- Libera buffers do sistema de arquivos; isso força - blocos modificados para o disco e atualiza o super - bloco -

-
-

- tac -

-
-

- Concatena os arquivos dados em ordem reversa -

-
-

- tail -

-
-

- Imprime as últimas dez linhas (ou o número dado de - linhas) de cada arquivo dado -

-
-

- tee -

-
-

- Lê a partir da entrada padrão enquanto escreve - tanto para saída padrão quanto para os arquivos - dados -

-
-

- test -

-
-

- Compara valores e verifica tipos de arquivos -

-
-

- timeout -

-
-

- Executa um comando com um limite de tempo -

-
-

- touch -

-
-

- Muda marcas temporais de arquivo, definindo os - horários de acesso e modificação dos arquivos dados - para o horário atual; arquivos que não existem são - criados com tamanho zero -

-
-

- tr -

-
-

- Traduz, comprime e deleta os caracteres dados a - partir da entrada padrão -

-
-

- true -

-
-

- Não faz nada, com sucesso; sempre sai com um código - de status indicando sucesso -

-
-

- truncate -

-
-

- Comprime ou expande um arquivo para o tamanho - especificado -

-
-

- tsort -

-
-

- Realiza uma ordenação topológica; ele escreve uma - lista completamente ordenada de acordo com a - ordenação parcial em um arquivo dado -

-
-

- tty -

-
-

- Relata o nome de arquivo do terminal conectado à - entrada padrão -

-
-

- uname -

-
-

- Relata informação de sistema -

-
-

- unexpand -

-
-

- Converte espaços para tabulação -

-
-

- uniq -

-
-

- Descarta todas, exceto uma das sucessivas linhas - idênticas -

-
-

- unlink -

-
-

- Remove o arquivo dado -

-
-

- users -

-
-

- Relata os nomes das(os) usuárias(os) atualmente - logados -

-
-

- vdir -

-
-

- É o mesmo que ls - -l -

-
-

- wc -

-
-

- Relata o número de linhas, palavras e bytes para - cada arquivo dado, assim como uma linha de total - quando mais que um arquivo for dado -

-
-

- who -

-
-

- Relata quem está logado -

-
-

- whoami -

-
-

- Relata o nome de usuária(o) associado com o ID de - usuária(o) efetivo atual -

-
-

- yes -

-
-

- Repetidamente retorna y ou uma sequência de - caracteres dada até que seja terminado -

-
-

- libstdbuf -

-
-

- Biblioteca usada por stdbuf -

-
-
-
-
-
-
-
-
-

- 8.54. Check-0.15.2 -

-
-
-
-
-

- Check é uma estrutura de teste de unidade para C. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC (cerca - de 3,8 UPC com os testes) -
-
- Espaço em disco - exigido: 12 MB -
-
-
-
-
-

- 8.54.1. Instalação do Check -

-

- Prepare Check para compilação: -

-
./configure --prefix=/usr --disable-static
-

- Construa o pacote: -

-
make
-

- Compilação agora está completa. Para executar a suíte de - teste do Check, execute o seguinte comando: -

-
make check
-

- Instale o pacote: -

-
make docdir=/usr/share/doc/check-0.15.2 install
-
-
-

- 8.54.2. - Conteúdo do Check -

-
-
-
- Aplicativo instalado: - checkmk -
-
- Biblioteca instalada: - libcheck.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- checkmk -

-
-

- Script awk para gerar testes de unidade C para uso - com a estrutura de teste de unidade do Check -

-
-

- libcheck.{a,so} -

-
-

- Contém funções que permitem que Check seja chamado - a partir de um aplicativo de teste -

-
-
-
-
-
-
-
-
-

- 8.55. Diffutils-3.8 -

-
-
-
-
-

- O pacote Diffutils contém aplicativos que mostram as - diferenças entre arquivos ou diretórios. -

-
-
-
- Tempo aproximado de - construção: 0,6 UPC -
-
- Espaço em disco - exigido: 34 MB -
-
-
-
-
-

- 8.55.1. Instalação do Diffutils -

-

- Prepare Diffutils para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.55.2. Conteúdo do Diffutils -

-
-
-
- Aplicativos instalados: - cmp, diff, diff3 e sdiff -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- cmp -

-
-

- Compara dois arquivos e relata se ou em quais bytes - eles diferem -

-
-

- diff -

-
-

- Compara dois arquivos ou diretórios e relata quais - linhas nos arquivos diferem -

-
-

- diff3 -

-
-

- Compara três arquivos linha por linha -

-
-

- sdiff -

-
-

- Mescla dois arquivos e interativamente exibe os - resultados -

-
-
-
-
-
-
-
-
-

- 8.56. Gawk-5.1.1 -

-
-
-
-
-

- O pacote Gawk contém aplicativos para manipular arquivos de - texto. -

-
-
-
- Tempo aproximado de - construção: 0,4 UPC -
-
- Espaço em disco - exigido: 43 MB -
-
-
-
-
-

- 8.56.1. Instalação do Gawk -

-

- Primeiro, garanta que alguns arquivos desnecessários não - sejam instalados: -

-
sed -i 's/extras//' Makefile.in
-

- Prepare Gawk para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-

- Se desejado, então instale a documentação: -

-
mkdir -pv                                   /usr/share/doc/gawk-5.1.1
-cp    -v doc/{awkforai.txt,*.{eps,pdf,jpg}} /usr/share/doc/gawk-5.1.1
-
-
-

- 8.56.2. - Conteúdo do Gawk -

-
-
-
- Aplicativos instalados: - awk (link para gawk), gawk e - awk-5.1.1 -
-
- Bibliotecas instaladas: - filefuncs.so, fnmatch.so, fork.so, - inplace.so, intdiv.so, ordchr.so, readdir.so, - readfile.so, revoutput.so, revtwoway.so, rwarray.so e - time.so (todas em /usr/lib/gawk) -
-
- Diretórios instalados: - /usr/lib/gawk, /usr/libexec/awk, - /usr/share/awk e /usr/share/doc/gawk-5.1.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - -
-

- awk -

-
-

- Um link para gawk -

-
-

- gawk -

-
-

- Um aplicativo para manipular arquivos de texto; é a - implementação GNU do awk -

-
-

- gawk-5.1.1 -

-
-

- Um hard link para gawk -

-
-
-
-
-
-
-
-
-

- 8.57. Findutils-4.9.0 -

-
-
-
-
-

- O pacote Findutils contém aplicativos para procurar arquivos. - Esses aplicativos são fornecidos para procurar recursivamente - dentro de uma árvore de diretório e para criar, manter e - buscar um banco de dados (geralmente mais rápido que o find - recursivo, porém não é confiável se o banco de dados não for - atualizado recentemente). -

-
-
-
- Tempo aproximado de - construção: 0,9 UPC -
-
- Espaço em disco - exigido: 51 MB -
-
-
-
-
-

- 8.57.1. Instalação do Findutils -

-

- Prepare Findutils para compilação: -

-
case $(uname -m) in
-    i?86)   TIME_T_32_BIT_OK=yes ./configure --prefix=/usr --localstatedir=/var/lib/locate ;;
-    x86_64) ./configure --prefix=/usr --localstatedir=/var/lib/locate ;;
-esac
-
-

- O significado das opções de configure: -

-
-
- TIME_32_BIT_OK=yes -
-
-

- Essa configuração é necessária para construir em um - sistema de 32 bits. -

-
-
- --localstatedir -
-
-

- Essa opção muda o local da base de dados locate para estar em - /var/lib/locate, o qual é - conforme com FHS. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
chown -Rv tester .
-su tester -c "PATH=$PATH make check"
-

- Instale o pacote: -

-
make install
-
-
-

- 8.57.2. Conteúdo do Findutils -

-
-
-
- Aplicativos instalados: - find, locate, updatedb e - xargs -
-
- Diretório instalado: - /var/lib/locate -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- find -

-
-

- Pesquisa em árvores de diretórios dadas por - arquivos correspondendo a critérios especificados -

-
-

- locate -

-
-

- Pesquisa em um banco de dados de nomes de arquivo e - relata os nomes que contém uma sequência de - caracteres dada ou correspondem a um padrão dado -

-
-

- updatedb -

-
-

- Atualiza o banco de dados locate; ele - escaneia o sistema de arquivos inteiro (incluindo - outros sistemas de arquivos que estejam montados - atualmente, a menos que dito o contrário) e coloca - cada nome de arquivo que ele encontrar no banco de - dados -

-
-

- xargs -

-
-

- Pode ser usado para aplicar um comando dado a uma - lista de arquivos -

-
-
-
-
-
-
-
-
-

- 8.58. Groff-1.22.4 -

-
-
-
-
-

- O pacote Groff contém aplicativos para processar e formatar - texto. -

-
-
-
- Tempo aproximado de - construção: 0,5 UPC -
-
- Espaço em disco - exigido: 88 MB -
-
-
-
-
-

- 8.58.1. Instalação do Groff -

-

- Groff espera que a variável de ambiente PAGE contenha o tamanho de papel padrão. Para - usuárias(os) nos Estados Unidos da América do Norte, - PAGE=letter é - apropriado. Em outros lugares, PAGE=A4 talvez seja mais - adequado. Embora o tamanho do papel padrão seja configurado - durante a compilação, ele pode ser substituído posteriormente - ecoando ou A4 ou letter para o arquivo - /etc/papersize. -

-

- Prepare Groff para compilação: -

-
PAGE=<paper_size> ./configure --prefix=/usr
-

- Esse pacote não suporta construção paralela. Compile o - pacote: -

-
make -j1
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
make install
-
-
-

- 8.58.2. - Conteúdo do Groff -

-
-
-
- Aplicativos instalados: - addftinfo, afmtodit, chem, eqn, - eqn2graph, gdiffmk, glilypond, gperl, gpinyin, - grap2graph, grn, grodvi, groff, groffer, grog, grolbp, - grolj4, gropdf, grops, grotty, hpftodit, indxbib, lkbib, - lookbib, mmroff, neqn, nroff, pdfmom, pdfroff, pfbtops, - pic, pic2graph, post-grohtml, preconv, pre-grohtml, - refer, roff2dvi, roff2html, roff2pdf, roff2ps, roff2text, - roff2x, soelim, tbl, tfmtodit e troff -
-
- Diretórios instalados: - /usr/lib/groff, - /usr/share/doc/groff-1.22.4 e /usr/share/groff -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- addftinfo -

-
-

- Lê um arquivo de fonte troff e adiciona algumas - informações de métrica de fonte adicionais que são - usadas pelo sistema groff -

-
-

- afmtodit -

-
-

- Cria um arquivo de fonte para uso com groff e - grops -

-
-

- chem -

-
-

- Preprocessador Groff para produzir diagramas de - estrutura química -

-
-

- eqn -

-
-

- Compila descrições de equações embutidas em - arquivos de entrada troff em comandos que são - entendidos por troff -

-
-

- eqn2graph -

-
-

- Converte uma EQN (equação) troff em uma imagem - recortada -

-
-

- gdiffmk -

-
-

- Marca diferenças entre arquivos groff/nroff/troff -

-
-

- glilypond -

-
-

- Transforma partituras escritas na linguagem - lilypond na linguagem groff -

-
-

- gperl -

-
-

- Preprocessador para groff, permitindo adição do - código perl em arquivos groff -

-
-

- gpinyin -

-
-

- Preprocessador para groff, permitindo adição do - idioma semelhante a Chinês Europeu Pinyin em - arquivos groff -

-
-

- grap2graph -

-
-

- Converte um diagrama grap em uma imagem de bitmap - recortada -

-
-

- grn -

-
-

- Um preprocessador groff para - arquivos gremlin -

-
-

- grodvi -

-
-

- Um controlador para groff que produz - formato dvi do TeX -

-
-

- groff -

-
-

- Um frontal para o sistema de formatação de - documentos groff; normalmente, ele executa o - aplicativo troff e um - pós-processador apropriado para o dispositivo - selecionado -

-
-

- groffer -

-
-

- Exibe arquivos groff e páginas de manual em - terminais X e tty -

-
-

- grog -

-
-

- Lê arquivos e advinha quais das opções groff - -e, -man, -me, -mm, -ms, -p, -s - e -t são exigidas para - imprimir arquivos, e relata o comando groff incluindo - aquelas opções -

-
-

- grolbp -

-
-

- É um controlador groff para - impressoras Canon CAPSL (impressoras a laser séries - LBP-4 e LBP-8) -

-
-

- grolj4 -

-
-

- É um controlador para groff que produz - saída no formato PCL5 adequado para uma impressora - HP LaserJet 4 -

-
-

- gropdf -

-
-

- Traduz a saída do GNU troff para PDF -

-
-

- grops -

-
-

- Traduz a saída do GNU troff para - PostScript -

-
-

- grotty -

-
-

- Traduz a saída do GNU troff em uma - forma adequada para dispositivos semelhantes a - máquina de escrever -

-
-

- hpftodit -

-
-

- Cria um arquivo de fonte para uso com groff -Tlj4 a - partir de um arquivo de métrica de fonte rotulada - HP -

-
-

- indxbib -

-
-

- Cria um índice invertido para os bancos de dados - bibliográficos com um arquivo especificado para uso - com refer, - lookbib e - lkbib -

-
-

- lkbib -

-
-

- Pesquisa em bancos de dados bibliográficos por - referências que contenham chaves especificadas e - relata quaisquer referências encontradas -

-
-

- lookbib -

-
-

- Imprime um prompt na saída de erro padrão (a não - ser que a entrada padrão não seja um terminal); lê - uma linha contendo um conjunto de palavras chave a - partir da entrada padrão; pesquisa em bancos de - dados bibliográficos, em um arquivo especificado, - por referências contendo aquelas palavras chave; - imprime quaisquer referências encontradas na saída - padrão; e repete esse processo até o final da - entrada -

-
-

- mmroff -

-
-

- Um preprocessador simples para groff -

-
-

- neqn -

-
-

- Formata equações para saída American Standard Code - for Information Interchange (ASCII) -

-
-

- nroff -

-
-

- Um script que emula o comando nroff usando - groff -

-
-

- pdfmom -

-
-

- É um encapsulador em torno de groff que facilita a - produção de documentos PDF a partir de arquivos - formatados com as macros mom -

-
-

- pdfroff -

-
-

- Cria documentos pdf usando groff -

-
-

- pfbtops -

-
-

- Traduz uma fonte PostScript em formato .pfb para ASCII -

-
-

- pic -

-
-

- Compila descrições de imagens embutidas em arquivos - de entrada troff ou TeX em comandos entendidos por - TeX ou troff -

-
-

- pic2graph -

-
-

- Converte um diagrama PIC em uma imagem recortada -

-
-

- post-grohtml -

-
-

- Traduz a saída do GNU troff para HTML -

-
-

- preconv -

-
-

- Converte codificação de arquivos de entrada em - alguma coisa que o GNU troff entende -

-
-

- pre-grohtml -

-
-

- Traduz a saída do GNU troff para HTML -

-
-

- refer -

-
-

- Copia o conteúdo de um arquivo para a saída padrão, - exceto aquelas linhas entre .[ e .] que são interpretadas - como citações, e linhas entre .R1 e .R2 que são - interpretadas como comandos para como citações são - para serem processadas -

-
-

- roff2dvi -

-
-

- Transforma arquivos roff para o formato DVI -

-
-

- roff2html -

-
-

- Transforma arquivos roff para o formato HTML -

-
-

- roff2pdf -

-
-

- Transforma arquivos roff em PDFs -

-
-

- roff2ps -

-
-

- Transforma arquivos roff em arquivos ps -

-
-

- roff2text -

-
-

- Transforma arquivos roff em arquivos de texto -

-
-

- roff2x -

-
-

- Transforma arquivos roff em outros formatos -

-
-

- soelim -

-
-

- Lê arquivos e substitui linhas da forma - .so arquivo - pelo conteúdo do arquivo mencionado -

-
-

- tbl -

-
-

- Compila descrições de tabelas embutidas em arquivos - de entrada troff em comandos que são entendidos por - troff -

-
-

- tfmtodit -

-
-

- Cria um arquivo fonte para uso com groff -Tdvi -

-
-

- troff -

-
-

- É altamente compatível com o troff do Unix; - ele usualmente deveria ser invocado usando o - comando groff, o qual - também executará preprocessadores e - pós-processadores na ordem apropriada e com as - opções apropriadas -

-
-
-
-
-
-
-
-
-

- 8.59. GRUB-2.06 -

-
-
-
-
-

- O pacote GRUB contém o GRand Unified Bootloader. -

-
-
-
- Tempo aproximado de - construção: 0,7 UPC -
-
- Espaço em disco - exigido: 158 MB -
-
-
-
-
-

- 8.59.1. Instalação do GRUB -

-
-

- Nota -

-

- Se seu sistema tem suporte UEFI e você deseja inicializar - LFS com UEFI, então você pode pular esse pacote em LFS, e - instalar GRUB com suporte UEFI (e as dependências dele) - seguindo - a página BLFS ao final deste capítulo. -

-
-

- Prepare GRUB para compilação: -

-
./configure --prefix=/usr          \
-            --sysconfdir=/etc      \
-            --disable-efiemu       \
-            --disable-werror
-
-

- O significado das novas opções de - configure: -

-
-
- --disable-werror -
-
-

- Isso permite que a construção complete com avisos - introduzidos por mais recentes versões do Flex. -

-
-
- --disable-efiemu -
-
-

- Essa opção minimiza o que é construído desabilitando - uma característica e aplicativos de teste não - necessários para o LFS. -

-
-
-
-

- Compile o pacote: -

-
make
-

- A suíte de teste para esse pacote não é recomendada. A - maioria dos testes depende de pacotes que não estão - disponíveis no limitado ambiente do LFS. Para executar os - testes mesmo assim, execute make check. -

-

- Instale o pacote: -

-
make install
-mv -v /etc/bash_completion.d/grub /usr/share/bash-completion/completions
-

- Usar GRUB para tornar seu sistema LFS inicializável será - discutido em - Seção 10.4, “Usando o GRUB para Configurar o - Processo de Inicialização”. -

-
-
-

- 8.59.2. - Conteúdo do GRUB -

-
-
-
- Aplicativos instalados: - grub-bios-setup, grub-editenv, - grub-file, grub-fstest, grub-glue-efi, grub-install, - grub-kbdcomp, grub-macbless, grub-menulst2cfg, - grub-mkconfig, grub-mkimage, grub-mklayout, - grub-mknetdir, grub-mkpasswd-pbkdf2, grub-mkrelpath, - grub-mkrescue, grub-mkstandalone, grub-ofpathname, - grub-probe, grub-reboot, grub-render-label, - grub-script-check, grub-set-default, grub-sparc64-setup e - grub-syslinux2cfg -
-
- Diretórios instalados: - /usr/lib/grub, /etc/grub.d, - /usr/share/grub e /boot/grub (quando grub-install for - primeiro executado) -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- grub-bios-setup -

-
-

- É um aplicativo auxiliar para grub-install -

-
-

- grub-editenv -

-
-

- Uma ferramenta para editar o bloco ambiente -

-
-

- grub-file -

-
-

- Verifica se FILE é do tipo especificado -

-
-

- grub-fstest -

-
-

- Ferramenta para depurar o controlador de sistema de - arquivos -

-
-

- grub-glue-efi -

-
-

- Processa imagens EFI ia32 e amd64 e cola elas de - acordo com formato Apple -

-
-

- grub-install -

-
-

- Instala o GRUB no seu controlador -

-
-

- grub-kbdcomp -

-
-

- Script que converte um esquema xkb em um - reconhecido por GRUB -

-
-

- grub-macbless -

-
-

- Bênção estilo Mac sobre arquivos HFS ou HFS+ -

-
-

- grub-menulst2cfg -

-
-

- Converte um menu.lst - do GRUB Legacy em um grub.cfg para uso com GRUB 2 -

-
-

- grub-mkconfig -

-
-

- Gera um arquivo de configuração grub -

-
-

- grub-mkimage -

-
-

- Faz uma imagem inicializável do GRUB -

-
-

- grub-mklayout -

-
-

- Gera um arquivo de esquema de teclado do GRUB -

-
-

- grub-mknetdir -

-
-

- Prepara um diretório de inicialização de rede GRUB -

-
-

- grub-mkpasswd-pbkdf2 -

-
-

- Gera uma senha PBKDF2 encriptada para uso no menu - de inicialização -

-
-

- grub-mkrelpath -

-
-

- Faz um caminho de sistema relativo à raiz dele -

-
-

- grub-mkrescue -

-
-

- Faz uma imagem inicializável do GRUB adequada para - um disquete ou CDROM/DVD -

-
-

- grub-mkstandalone -

-
-

- Gera uma imagem independente -

-
-

- grub-ofpathname -

-
-

- É um programa auxiliar que imprime o caminho de um - dispositivo GRUB -

-
-

- grub-probe -

-
-

- Sonda informação de dispositivo para um caminho ou - dispositivo dado -

-
-

- grub-reboot -

-
-

- Configura a entrada de inicialização padrão para o - GRUB para a próxima inicialização apenas -

-
-

- grub-render-label -

-
-

- Renderiza .disk_label da Apple para Macs da Apple -

-
-

- grub-script-check -

-
-

- Verifica script de configuração do GRUB para erros - de sintaxe -

-
-

- grub-set-default -

-
-

- Configura a entrada de inicialização padrão para o - GRUB -

-
-

- grub-sparc64-setup -

-
-

- É um programa auxiliar para grub-setup -

-
-

- grub-syslinux2cfg -

-
-

- Transforma um arquivo de configuração syslinux no - formato grub.cfg -

-
-
-
-
-
-
-
-
-

- 8.60. Gzip-1.11 -

-
-
-
-
-

- O pacote Gzip contém aplicativos para compressão e - descompressão de arquivos. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 20 MB -
-
-
-
-
-

- 8.60.1. Instalação do Gzip -

-

- Prepare Gzip para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.60.2. - Conteúdo do Gzip -

-
-
-
- Aplicativos instalados: - gunzip, gzexe, gzip, uncompress - (hard link com gunzip), zcat, zcmp, zdiff, zegrep, - zfgrep, zforce, zgrep, zless, zmore e znew -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- gunzip -

-
-

- Descomprime arquivos gzipados -

-
-

- gzexe -

-
-

- Cria arquivos executáveis auto-descomprimíveis -

-
-

- gzip -

-
-

- Comprime os arquivos dados usando codificação - Lempel-Ziv (LZ77) -

-
-

- uncompress -

-
-

- Descomprime arquivos comprimidos -

-
-

- zcat -

-
-

- Descomprime os arquivos gzipados dados para a saída - padrão -

-
-

- zcmp -

-
-

- Executa cmp em arquivos - gzipados -

-
-

- zdiff -

-
-

- Executa diff em arquivos - gzipados -

-
-

- zegrep -

-
-

- Executa egrep em arquivos - gzipados -

-
-

- zfgrep -

-
-

- Executa fgrep em arquivos - gzipados -

-
-

- zforce -

-
-

- Força uma extensão .gz em todos os arquivos dados - que são arquivos gzipados, de modo que o - gzip - não comprimirá eles novamente; isso pode ser útil - quando nomes de arquivo foram truncados durante uma - transferência de arquivo -

-
-

- zgrep -

-
-

- Executa grep em arquivos - gzipados -

-
-

- zless -

-
-

- Executa less em arquivos - gzipados -

-
-

- zmore -

-
-

- Executa more em arquivos - gzipados -

-
-

- znew -

-
-

- Recomprime arquivos oriundos do formato - compress - para formato gzip.Z - para .gz -

-
-
-
-
-
-
-
-
-

- 8.61. IPRoute2-5.16.0 -

-
-
-
-
-

- O pacote IPRoute2 contém aplicativos para redes baseadas em - IPV4 básicas e avançadas. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 15 MB -
-
-
-
-
-

- 8.61.1. Instalação do IPRoute2 -

-

- O aplicativo arpd incluído nesse pacote - não será construído dado que ele é dependente do Berkeley DB, - o qual não é instalado em LFS. Entretanto, um diretório para - arpd e uma - página de manual ainda serão instalados. Impeça isso - executando os comandos abaixo. Se o binário arpd for necessário, então - instruções para compilar o Berkeley DB podem ser encontradas - no Livro BLFS em - https://www.linuxfromscratch.org/blfs/view/11.1/server/db.html. -

-
sed -i /ARPD/d Makefile
-rm -fv man/man8/arpd.8
-

- Compile o pacote: -

-
make
-

- Esse pacote não tem uma suíte de teste funcional. -

-

- Instale o pacote: -

-
make SBINDIR=/usr/sbin install
-

- Se desejado, então instale a documentação: -

-
mkdir -pv             /usr/share/doc/iproute2-5.16.0
-cp -v COPYING README* /usr/share/doc/iproute2-5.16.0
-
-
-

- 8.61.2. Conteúdo do IPRoute2 -

-
-
-
- Aplicativos instalados: - bridge, ctstat (link para lnstat), - genl, ifcfg, ifstat, ip, lnstat, nstat, routef, routel, - rtacct, rtmon, rtpr, rtstat (link para lnstat), ss e - tc -
-
- Diretórios instalados: - /etc/iproute2, /usr/lib/tc e - /usr/share/doc/iproute2-5.16.0 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- bridge -

-
-

- Configura pontes de redes -

-
-

- ctstat -

-
-

- Utilitário de situação de conexão -

-
-

- genl -

-
-

- Frontal utilitário de link de rede genérico -

-
-

- ifcfg -

-
-

- Um encapsulador de script de shell para o comando - ip - [Note que ele exige os aplicativos arping e - rdisk - originários do pacote iputils encontrado em - http://www.skbuff.net/iputils/] -

-
-

- ifstat -

-
-

- Mostra as estatísticas de interface, incluindo a - quantidade de pacotes transmitidos e recebidos pela - interface -

-
-

- ip -

-
-

- O executável principal. Ele tem várias funções: -

-

- ip link <dispositivo> - permite usuárias(os) olharem para o estado de - dispositivos e fazerem mudanças -

-

- ip - addr permite usuárias(os) olharem - para endereços e propriedades deles, adicionarem - novos endereços e deletarem antigos -

-

- ip - neighbor permite usuárias(os) - olharem para vínculos de vizinho e propriedades - deles, adicionarem novas entradas de vizinho e - deletarem as antigas -

-

- ip - rule permite usuárias(os) olharem - para políticas de roteamento e mudar elas -

-

- ip - route permite usuárias(os) olharem - para a tabela de roteamento e mudar regras de - tabela de roteamento -

-

- ip - tunnel permite usuárias(os) olharem - para os tuneis IP e propriedades deles, e mudar - elas -

-

- ip - maddr permite usuárias(os) olharem - para os endereços multicast e propriedades deles, e - mudar elas -

-

- ip - mroute permite usuárias(os) - configurarem, mudarem ou deletarem o roteamento - multicast -

-

- ip - monitor permite usuárias(os) - continuamente monitorarem o estado de dispositivos, - endereços e rotas -

-
-

- lnstat -

-
-

- Fornece estatísticas de rede do Linux; ele é uma - substituição difundida e mais completa de - características para o antigo aplicativo - rtstat -

-
-

- nstat -

-
-

- Mostra estatísticas de rede -

-
-

- routef -

-
-

- Um componente do ip - route. Isso é para esvaziar as - tabelas de roteamento -

-
-

- routel -

-
-

- Um componente do ip - route. Isso é para listar as - tabelas de roteamento -

-
-

- rtacct -

-
-

- Exibe o conteúdo de /proc/net/rt_acct -

-
-

- rtmon -

-
-

- Utilitário de monitoramento de rota -

-
-

- rtpr -

-
-

- Converte a saída de ip -o de volta em - um formato legível -

-
-

- rtstat -

-
-

- Utilitário de situação de rota -

-
-

- ss -

-
-

- Similar ao comando netstat; exibe - conexões ativas -

-
-

- tc -

-
-

- Executável de Controle de Tráfego; isso é para - implementações de Quality Of Service (QOS) e Class - Of Service (COS) -

-

- tc - qdisc permite usuárias(os) - configurarem a disciplina de enfileiramento -

-

- tc - class permite usuárias(os) - configurarem classes baseadas no agendamento de - disciplina de enfileiramento -

-

- tc - estimator permite usuárias(os) - estimarem o fluxo de rede dentro de uma rede -

-

- tc - filter permite usuárias(os) - configurarem a filtragem de pacote QOS/COS -

-

- tc - policy permite usuárias(os) - configurarem as políticas de QOS/COS -

-
-
-
-
-
-
-
-
-

- 8.62. Kbd-2.4.0 -

-
-
-
-
-

- O pacote Kbd contém arquivos de tabelas de teclas, fontes de - console e utilitários de teclado. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 33 MB -
-
-
-
-
-

- 8.62.1. Instalação do Kbd -

-

- O comportamento das teclas backspace e delete não é - consistente ao longo dos mapas de teclas no pacote Kbd. A - seguinte correção conserta esse problema para mapas de tecla - i386: -

-
patch -Np1 -i ../kbd-2.4.0-backspace-1.patch
-

- Após corrigir, a tecla backspace gera o carácter com código - 127 e a tecla delete gera uma sequência bem conhecida de - escape. -

-

- Remova o aplicativo redundante resizecons (ele exige que a - defunta svgalib forneça os arquivos de modo de vídeo - para - uso normal setfont dimensiona o - console adequadamente) juntamente com a página de manual - dele. -

-
sed -i '/RESIZECONS_PROGS=/s/yes/no/' configure
-sed -i 's/resizecons.8 //' docs/man/man8/Makefile.in
-

- Prepare Kbd para compilação: -

-
./configure --prefix=/usr --disable-vlock
-
-

- O significado da opção de configure: -

-
-
- --disable-vlock -
-
-

- Essa opção evita que o utilitário vlock seja - construído, pois ele exige a biblioteca PAM, que não - está disponível no ambiente chroot. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-

- Nota -

-

- Para alguns idiomas (por exemplo, Bielorrusso) o pacote Kbd - não fornece um mapa de tecla útil onde o regular mapa de - tecla by supõe a codificação - ISO-8859-5, e o mapa de tecla CP1251 normalmente é usado. - Usuárias(os) de tais idiomas tem que baixar mapas de tecla - funcionais separadamente. -

-
-

- Se desejado, então instale a documentação: -

-
mkdir -pv           /usr/share/doc/kbd-2.4.0
-cp -R -v docs/doc/* /usr/share/doc/kbd-2.4.0
-
-
-

- 8.62.2. Conteúdo - do Kbd -

-
-
-
- Aplicativos instalados: - chvt, deallocvt, dumpkeys, - fgconsole, getkeycodes, kbdinfo, kbd_mode, kbdrate, - loadkeys, loadunimap, mapscrn, openvt, psfaddtable (link - para psfxtable), psfgettable (link para psfxtable), - psfstriptable (link para psfxtable), psfxtable, setfont, - setkeycodes, setleds, setmetamode, setvtrgb, - showconsolefont, showkey, unicode_start e - unicode_stop -
-
- Diretórios instalados: - /usr/share/consolefonts, - /usr/share/consoletrans, /usr/share/keymaps, - /usr/share/doc/kbd-2.4.0 e /usr/share/unimaps -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- chvt -

-
-

- Muda o terminal virtual de primeiro plano -

-
-

- deallocvt -

-
-

- Desaloca terminais virtuais não usados -

-
-

- dumpkeys -

-
-

- Despeja as tabelas de tradução de teclado -

-
-

- fgconsole -

-
-

- Imprime o número do terminal virtual ativo -

-
-

- getkeycodes -

-
-

- Imprime a tabela de mapeamento de código de - escaneamento para código de tecla do kernel -

-
-

- kbdinfo -

-
-

- Obtém informação sobre a situação de um console -

-
-

- kbd_mode -

-
-

- Relata ou configura o modo de teclado -

-
-

- kbdrate -

-
-

- Configura as taxas de repetição e atraso de teclado -

-
-

- loadkeys -

-
-

- Carrega as tabelas de tradução de teclado -

-
-

- loadunimap -

-
-

- Carrega a tabela de mapeamento unicode para fonte - do kernel -

-
-

- mapscrn -

-
-

- Um aplicativo obsoleto que costumava carregar uma - tabela de mapeamento de caractere de saída definida - pela(o) usuária(o) para dentro do controlador de - console; isso é feito agora por setfont -

-
-

- openvt -

-
-

- Inicia um aplicativo em um novo terminal virtual - (VT) -

-
-

- psfaddtable -

-
-

- Adiciona uma tabela de carácter Unicode para uma - fonte de console -

-
-

- psfgettable -

-
-

- Extrai a tabela de carácter Unicode embutida a - partir de uma fonte de console -

-
-

- psfstriptable -

-
-

- Remove a tabela de carácter Unicode embutida a - partir de uma fonte de console -

-
-

- psfxtable -

-
-

- Lida com tabelas de carácter Unicode para fontes de - console -

-
-

- setfont -

-
-

- Muda as fontes Enhanced Graphic Adapter (EGA) e - Video Graphics Array (VGA) no console -

-
-

- setkeycodes -

-
-

- Carrega entradas de tabela de mapeamento de código - de escaneamento para código de tecla do kernel; - isso é útil se existirem teclas incomuns no teclado -

-
-

- setleds -

-
-

- Configura os sinalizadores de teclado e Light - Emitting Diodes (LEDs) -

-
-

- setmetamode -

-
-

- Define o manuseio de meta tecla de teclado -

-
-

- setvtrgb -

-
-

- Configura o mapa de cor de console em todos os - terminais virtuais -

-
-

- showconsolefont -

-
-

- Exibe a fonte de tela de console EGA/VGA atual -

-
-

- showkey -

-
-

- Relata os códigos de escaneamento, códigos de tecla - e códigos ASCII das teclas pressionadas no teclado -

-
-

- unicode_start -

-
-

- Põe o teclado e console em modo UNICODE [Não use - esse aplicativo a menos que seu arquivo de mapa de - tecla esteja na codificação ISO-8859-1. Para outras - codificações, esse utilitário produz resultados - incorretos.] -

-
-

- unicode_stop -

-
-

- Reverte teclado e console do modo UNICODE -

-
-
-
-
-
-
-
-
-

- 8.63. Libpipeline-1.5.5 -

-
-
-
-
-

- O pacote Libpipeline contém uma biblioteca para manipular - pipelines de subprocessos em uma maneira flexível e - conveniente. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 9,7 MB -
-
-
-
-
-

- 8.63.1. Instalação do Libpipeline -

-

- Prepare Libpipeline para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.63.2. Conteúdo do Libpipeline -

-
-
-
- Biblioteca instalada: - libpipeline.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- libpipeline -

-
-

- Essa biblioteca é usada para seguramente construir - pipelines entre subprocessos -

-
-
-
-
-
-
-
-
-

- 8.64. Make-4.3 -

-
-
-
-
-

- O pacote Make contém um aplicativo para controlar a geração - de executáveis e outros arquivos não fonte de um pacote a - partir de arquivos fonte. -

-
-
-
- Tempo aproximado de - construção: 0,5 UPC -
-
- Espaço em disco - exigido: 13 MB -
-
-
-
-
-

- 8.64.1. Instalação do Make -

-

- Prepare Make para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.64.2. - Conteúdo do Make -

-
-
-
- Aplicativo instalado: - make -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- make -

-
-

- Automaticamente determina quais partes de um pacote - precisam ser (re)compiladas e então emite os - comandos relevantes -

-
-
-
-
-
-
-
-
-

- 8.65. Patch-2.7.6 -

-
-
-
-
-

- O pacote Patch contém um aplicativo para modificar ou criar - arquivos por aplicação de um arquivo patch - tipicamente criado pelo aplicativo diff. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 12 MB -
-
-
-
-
-

- 8.65.1. Instalação do Patch -

-

- Prepare Patch para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.65.2. - Conteúdo do Patch -

-
-
-
- Aplicativo instalado: - patch -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- patch -

-
-

- Modifica arquivos de acordo com um arquivo de - correção (Um arquivo de correção normalmente é uma - listagem de diferenças criada com o aplicativo - diff. - Aplicando essas diferenças aos arquivos originais, - patch - cria as versões corrigidas.) -

-
-
-
-
-
-
-
-
-

- 8.66. Tar-1.34 -

-
-
-
-
-

- O pacote Tar fornece a habilidade para criar arquivamentos - tar bem como realizar vários outros tipos de manipulação de - arquivamento. Tar pode ser usado em arquivamentos previamente - criados para extrair arquivos, para armazenar arquivos - adicionais, ou para atualizar ou listar arquivos que já foram - armazenados. -

-
-
-
- Tempo aproximado de - construção: 1,7 UPC -
-
- Espaço em disco - exigido: 40 MB -
-
-
-
-
-

- 8.66.1. Instalação do Tar -

-

- Prepare Tar para compilação: -

-
FORCE_UNSAFE_CONFIGURE=1  \
-./configure --prefix=/usr
-
-

- O significado da opção de configure: -

-
-
- FORCE_UNSAFE_CONFIGURE=1 -
-
-

- Isso força o teste para mknod ser executado como root. Geralmente é considerado - perigoso executar esse teste como a(o) usuária(o) - root, porém como ele - está sendo executado em um sistema que foi apenas - parcialmente construído, substituir ele está OK. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Um teste, capabilities: binary store/restore, é conhecido por - falhar se ele for executado (LFS carece de selinux), porém - será pulado se o kernel do anfitrião não suportar atributos - estendidos no sistema de arquivos usado para construir LFS. -

-

- Instale o pacote: -

-
make install
-make -C doc install-html docdir=/usr/share/doc/tar-1.34
-
-
-

- 8.66.2. Conteúdo - do Tar -

-
-
-
- Aplicativo instalado: - tar -
-
- Diretório instalado: - /usr/share/doc/tar-1.34 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- tar -

-
-

- Cria, extrai arquivos originários de, e lista o - conteúdo de arquivamentos, também conhecidos como - tarballs -

-
-
-
-
-
-
-
-
-

- 8.67. Texinfo-6.8 -

-
-
-
-
-

- O pacote Texinfo contém aplicativos para leitura, escrita e - conversão de páginas info. -

-
-
-
- Tempo aproximado de - construção: 0,6 UPC -
-
- Espaço em disco - exigido: 112 MB -
-
-
-
-
-

- 8.67.1. Instalação do Texinfo -

-

- Prepare Texinfo para compilação: -

-
./configure --prefix=/usr
-

- Novamente, conserte um problema ao construir o pacote com - Glibc-2.34 ou posterior: -

-
sed -e 's/__attribute_nonnull__/__nonnull/' \
-    -i gnulib/lib/malloc/dynarray-skeleton.c
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-

- Opcionalmente, instale os componentes pertencentes a uma - instalação de TeX: -

-
make TEXMF=/usr/share/texmf install-tex
-
-

- O significado do parâmetro de make: -

-
-
- TEXMF=/usr/share/texmf -
-
-

- A variável de arquivo make TEXMF mantém o local da raiz da árvore - do TeX se, por exemplo, um pacote do TeX seja instalado - posteriormente. -

-
-
-
-

- O sistema de documentação Info usa um arquivo de texto - simples para manter a lista de entradas de menu dele. O - arquivo está localizado em /usr/share/info/dir. Infelizmente, devido a - problemas ocasionais nos arquivos Make de vários pacotes, ele - pode as vezes sair de sincronia com as páginas info - instaladas no sistema. Se o arquivo /usr/share/info/dir alguma vez precisar ser - recriado, então os seguintes comandos opcionais realizarão a - tarefa: -

-
pushd /usr/share/info
-  rm -v dir
-  for f in *
-    do install-info $f dir 2>/dev/null
-  done
-popd
-
-
-

- 8.67.2. - Conteúdo do Texinfo -

-
-
-
- Aplicativos instalados: - info, install-info, makeinfo (link - para texi2any), pdftexi2dvi, pod2texi, texi2any, - texi2dvi, texi2pdf e texindex -
-
- Bibliotecas instaladas: - MiscXS.so, Parsetexi.so e - XSParagraph.so (todas em /usr/lib/texinfo) -
-
- Diretórios instalados: - /usr/share/texinfo e - /usr/lib/texinfo -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- info -

-
-

- Usado para ler páginas info as quais são similares - a páginas de manual, porém frequentemente vão muito - mais fundo que somente explanar todas as opções de - linha de comando disponíveis [Por exemplo, compare - man - bison e info bison] -

-
-

- install-info -

-
-

- Usado para instalar páginas info; ele atualiza - entradas no arquivo de índice info -

-
-

- makeinfo -

-
-

- Traduz os documentos fonte do Texinfo dados para - páginas info, texto simples ou HTML -

-
-

- pdftexi2dvi -

-
-

- Usado para formatar o documento do Texinfo dado em - um arquivo Portable Document Format (PDF) -

-
-

- pod2texi -

-
-

- Converte Pod para formato Texinfo -

-
-

- texi2any -

-
-

- Traduz documentação fonte do Texinfo para vários - outros formatos -

-
-

- texi2dvi -

-
-

- Usado para formatar o documento do Texinfo dado em - um arquivo independente de dispositivo que pode ser - impresso -

-
-

- texi2pdf -

-
-

- Usado para formatar o documento do Texinfo dado em - um arquivo Portable Document Format (PDF) -

-
-

- texindex -

-
-

- Usado para ordenar arquivos de índice do Texinfo -

-
-
-
-
-
-
-
-
-

- 8.68. Vim-8.2.4383 -

-
-
-
-
-

- O pacote Vim contém um editor de texto poderoso. -

-
-
-
- Tempo aproximado de - construção: 2,4 UPC -
-
- Espaço em disco - exigido: 206 MB -
-
-
-
-

- Alternativas ao Vim -

-

- Se você preferir outro editor—como Emacs, Joe ou - Nano—por favor consulte - https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/editors.html - para instruções de instalação sugeridas. -

-
-
-
-

- 8.68.1. Instalação do Vim -

-

- Primeiro, mude o local padrão do arquivo de configuração - vimrc para /etc: -

-
echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h
-

- Prepare vim para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para preparar os testes, garanta que usuária(o) tester pode escrever na árvore de fonte: -

-
chown -Rv tester .
-

- Agora execute os testes como usuária(o) tester: -

-
su tester -c "LANG=en_US.UTF-8 make -j1 test" &> vim-test.log
-

- A suíte de teste emite muitos dados binários para a tela. - Isso pode causar problemas com as configurações do terminal - atual. O problema pode ser evitado redirecionando a saída - para um arquivo de registro conforme mostrado acima. Um teste - bem sucedido resultará nas palavras "ALL DONE" no arquivo de - registro ao completar. -

-

- Instale o pacote: -

-
make install
-

- Muitas(os) usuárias(os) estão acostumadas(os) a usar - vi em vez de - vim. Para - permitir a execução do vim quando usuárias(os) - habitualmente digitarem vi, crie um link simbólico - para ambos o binário e a página de manual nos idiomas - fornecidos: -

-
ln -sv vim /usr/bin/vi
-for L in  /usr/share/man/{,*/}man1/vim.1; do
-    ln -sv vim.1 $(dirname $L)/vi.1
-done
-

- Por padrão, a documentação do vim é instalada em /usr/share/vim. O seguinte link simbólico - permite que a documentação seja acessada via /usr/share/doc/vim-8.2.4383, tornando ela - consistente com o local da documentação para outros pacotes: -

-
ln -sv ../vim/vim82/doc /usr/share/doc/vim-8.2.4383
-

- Se um X Window System vier a ser instalado no sistema LFS, - então talvez seja necessário recompilar vim após instalar X. - O Vim vem com uma versão GUI do editor que exige o X e - algumas bibliotecas adicionais para ser instalada. Para mais - informações sobre esse processo, consulte a documentação de - vim e a página de instalação de vim no livro BLFS em - - https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/vim.html. -

-
-
-

- 8.68.2. Configurando Vim -

-

- Por padrão, vim - executa em modo incompatível com vi. Isso talvez seja novo - para usuárias(os) que usaram outros editores no passado. A - configuração nocompatible está incluída - abaixo para destacar o fato de que um novo comportamento está - sendo usado. Ela também lembra àquelas(es) que mudariam para - o modo compatible que esse deveria ser - a primeira configuração no arquivo de configuração. Isso é - necessário, pois ela muda outras configurações, e - substituições precisam vir após essa configuração. Crie um - arquivo de configuração vim padrão executando o - seguinte: -

-
cat > /etc/vimrc << "EOF"
-" Begin /etc/vimrc
-
-" Ensure defaults are set before customizing settings, not after
-source $VIMRUNTIME/defaults.vim
-let skip_defaults_vim=1
-
-set nocompatible
-set backspace=2
-set mouse=
-syntax on
-if (&term == "xterm") || (&term == "putty")
-  set background=dark
-endif
-
-" End /etc/vimrc
-EOF
-

- A configuração set - nocompatible faz com que vim se comporte de uma - maneira mais útil (o padrão) que a maneira compatível com vi. - Remova o no para manter o comportamento - vi antigo. A - configuração set - backspace=2 permite retroceder sobre quebras de - linha, auto recuos e o início de uma inserção. O parâmetro - syntax on habilita o - destaque de sintaxe do vim. A configuração set mouse= habilita adequada - colagem de texto com o mouse quando trabalhar em chroot ou - por meio de uma conexão remota. Finalmente, a declaração - if com a configuração - set background=dark - corrige a suposição do vim sobre a cor de segundo - plano de alguns emuladores de terminal. Isso dá ao destaque - um esquema de cores melhor para uso no segundo plano preto - desses aplicativos. -

-

- Documentação para outras opções disponíveis pode ser obtida - executando o seguinte comando: -

-
vim -c ':options'
-
-

- Nota -

-

- Por padrão, vim instala apenas arquivos de soletrar para o - idioma inglês. Para instalar arquivos de soletrar para seu - idioma preferido, baixe os arquivos *.spl e, opcionalmente, o *.sug para seu idioma e codificação de - caracter a partir de ftp://ftp.vim.org/pub/vim/runtime/spell/ - e salve-os em /usr/share/vim/vim82/spell/. -

-

- Para usar esses arquivos de soletrar, alguma configuração - em /etc/vimrc é necessária, - por exemplo: -

-
set spelllang=en,ru
-set spell
-

- Para mais informação, veja o arquivo README apropriado - localizado na URL acima. -

-
-
-
-

- 8.68.3. Conteúdo - do Vim -

-
-
-
- Aplicativos instalados: - ex (link para vim), rview (link - para vim), rvim (link para vim), vi (link para vim), view - (link para vim), vim, vimdiff (link para vim), vimtutor e - xxd -
-
- Diretório instalado: - /usr/share/vim -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- ex -

-
-

- Inicia vim em modo ex -

-
-

- rview -

-
-

- É uma versão restrita do view; nenhum - comando de shell pode ser iniciado e view não pode ser - suspenso -

-
-

- rvim -

-
-

- É uma versão restrita do vim; nenhum - comando de shell pode ser iniciado e vim não pode ser - suspenso -

-
-

- vi -

-
-

- Link para vim -

-
-

- view -

-
-

- Inicia vim em modo - somente leitura -

-
-

- vim -

-
-

- É o editor -

-
-

- vimdiff -

-
-

- Edita duas ou três versões de um arquivo com - vim e - exibe diferenças -

-
-

- vimtutor -

-
-

- Ensina as teclas básicas e comandos do vim -

-
-

- xxd -

-
-

- Cria um despejo hexadecimal do arquivo dado; ele - também pode fazer o reverso, de forma que ele pode - ser usado para correção de binário -

-
-
-
-
-
-
-
-
-

- 8.69. Eudev-3.2.11 -

-
-
-
-
-

- O pacote Eudev contém aplicativos para criação dinâmica de - nós de dispositivo. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 83 MB -
-
-
-
-
-

- 8.69.1. Instalação do Eudev -

-

- Prepare Eudev para compilação: -

-
./configure --prefix=/usr           \
-            --bindir=/usr/sbin      \
-            --sysconfdir=/etc       \
-            --enable-manpages       \
-            --disable-static
-

- Compile o pacote: -

-
make
-

- Crie alguns diretórios agora que são necessários para testes, - porém também serão usados como uma parte da instalação: -

-
mkdir -pv /usr/lib/udev/rules.d
-mkdir -pv /etc/udev/rules.d
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-

- Instale algumas regras personalizadas e arquivos de suporte - úteis em um ambiente LFS: -

-
tar -xvf ../udev-lfs-20171102.tar.xz
-make -f udev-lfs-20171102/Makefile.lfs install
-
-
-

- 8.69.2. Configurando - Eudev -

-

- Informação acerca de dispositivos de hardware é mantida nos - diretórios /etc/udev/hwdb.d e - /usr/lib/udev/hwdb.d. - Eudev precisa que a - informação seja compilada em um banco de dados binário - /etc/udev/hwdb.bin. Crie o - banco de dados inicial: -

-
udevadm hwdb --update
-

- Esse comando precisa ser executado cada vez que a informação - de hardware for atualizada. -

-
-
-

- 8.69.3. - Conteúdo do Eudev -

-
-
-
- Aplicativos instalados: - udevadm e udevd -
-
- Biblioteca instalada: - libudev.so -
-
- Diretórios instalados: - /etc/udev, /usr/lib/udev e - /usr/share/doc/udev-udev-lfs-20171102 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- udevadm -

-
-

- Ferramenta de administração udev genérica: controla - o daemon udevd, fornece informação a partir do - banco de dados do Udev, monitora uevents, aguarda - que uevents terminem, testa configuração do Udev e - deflagra uevents para um dispositivo dado -

-
-

- udevd -

-
-

- Um daemon que ouve uevents no soquete de link de - rede, cria dispositivos e executa os aplicativos - externos configurados em resposta a esses uevents -

-
-

- libudev -

-
-

- Uma interface de biblioteca para informação de - dispositivo do udev -

-
-

- /etc/udev -

-
-

- Contém arquivos de configuração do Udev, permissões - de dispositivo e regras para nomear dispositivo -

-
-
-
-
-
-
-
-
-

- 8.70. Man-DB-2.10.1 -

-
-
-
-
-

- O pacote Man-DB contém aplicativos para encontrar e - visualizar páginas de manual. -

-
-
-
- Tempo aproximado de - construção: 0,3 UPC -
-
- Espaço em disco - exigido: 39 MB -
-
-
-
-
-

- 8.70.1. Instalação do Man-DB -

-

- Prepare Man-DB para compilação: -

-
./configure --prefix=/usr                         \
-            --docdir=/usr/share/doc/man-db-2.10.1 \
-            --sysconfdir=/etc                     \
-            --disable-setuid                      \
-            --enable-cache-owner=bin              \
-            --with-browser=/usr/bin/lynx          \
-            --with-vgrind=/usr/bin/vgrind         \
-            --with-grap=/usr/bin/grap             \
-            --with-systemdtmpfilesdir=            \
-            --with-systemdsystemunitdir=
-
-

- O significado das opções de configure: -

-
-
- --disable-setuid -
-
-

- Isso desabilita fazer o aplicativo man configurar uid - para usuária(o) man. -

-
-
- --enable-cache-owner=bin -
-
-

- Isso torna os arquivos de cache de sistema de - propriedade da(o) usuária(o) bin. -

-
-
- --with-... -
-
-

- Esses três parâmetros são usados para configurar alguns - aplicativos padrão. lynx é um navegador - de rede baseado em texto (veja-se BLFS para instruções - de instalação); vgrind converte - fontes de aplicativo para entrada do Groff; e - grap é - útil para tipografar gráficos em documentos do Groff. - Os aplicativos vgrind e grap normalmente não - são necessários para visualizar páginas de manual. Eles - não são parte do LFS ou BLFS, mas você deveria ser - capaz de instalá-los após terminar o LFS se você - desejar fazer isso. -

-
-
- --with-systemd... -
-
-

- Esses parâmetros impedem a instalação de diretórios e - arquivos do systemd desnecessários. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.70.2. Páginas de Manual não inglesas no LFS -

-

- A seguinte tabela mostra o conjunto de caracteres no qual - Man-DB supõe que as páginas de manual instaladas sob - /usr/share/man/<ll> - estarão codificadas. Em adição a isto, o Man-DB determina - corretamente se páginas de manual instaladas naquele - diretório estão codificadas com UTF-8. -

-
- -

- Tabela 8.1. Codificação de caracteres esperada das - páginas de manual de 8-bit legadas -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Idioma (código) - - Codificação - - Idioma (código) - - Codificação -
- Dinamarquês (da) - - ISO-8859-1 - - Croata (hr) - - ISO-8859-2 -
- Alemão (de) - - ISO-8859-1 - - Húngaro (hu) - - ISO-8859-2 -
- Inglês (en) - - ISO-8859-1 - - Japonês (ja) - - EUC-JP -
- Espanhol (es) - - ISO-8859-1 - - Coreano (ko) - - EUC-KR -
- Estoniano (et) - - ISO-8859-1 - - Lituano (lt) - - ISO-8859-13 -
- Finlandês (fi) - - ISO-8859-1 - - Letão (lv) - - ISO-8859-13 -
- Francês (fr) - - ISO-8859-1 - - Macedônio (mk) - - ISO-8859-5 -
- Irlandês (ga) - - ISO-8859-1 - - Polonês (pl) - - ISO-8859-2 -
- Galego (gl) - - ISO-8859-1 - - Romeno (ro) - - ISO-8859-2 -
- Indonésio (id) - - ISO-8859-1 - - Russo (ru) - - KOI8-R -
- Islandês (is) - - ISO-8859-1 - - Eslovaco (sk) - - ISO-8859-2 -
- Italiano (it) - - ISO-8859-1 - - Esloveno (sl) - - ISO-8859-2 -
- Bokmal norueguês (nb) - - ISO-8859-1 - - Latim sérvio (sr@latin) - - ISO-8859-2 -
- Holandês (nl) - - ISO-8859-1 - - Sérvio (sr) - - ISO-8859-5 -
- Nynorsk norueguês (nn) - - ISO-8859-1 - - Turco (tr) - - ISO-8859-9 -
- Norueguês (no) - - ISO-8859-1 - - Ucraniano (uk) - - KOI8-U -
- Português (pt) - - ISO-8859-1 - - Vietnamita (vi) - - TCVN5712-1 -
- Sueco (sv) - - ISO-8859-1 - - Chinês simplificado (zh_CN) - - GBK -
- Bielorrusso (be) - - CP1251 - - Chinês simplificado, Singapura (zh_SG) - - GBK -
- Búlgaro (bg) - - CP1251 - - Chinês tradicional, Hong Kong (zh_HK) - - BIG5HKSCS -
- Tcheco (cs) - - ISO-8859-2 - - Chinês tradicional (zh_TW) - - BIG5 -
- Grego (el) - - ISO-8859-7 - -   - -   -
-
-

-
-

- Nota -

-

- Páginas de manual em idiomas que não estão na lista não são - suportadas. -

-
-
-
-

- 8.70.3. - Conteúdo do Man-DB -

-
-
-
- Aplicativos instalados: - accessdb, apropos (link para - whatis), catman, lexgrog, man, man-recode, mandb, manpath - e whatis -
-
- Bibliotecas instaladas: - libman.so e libmandb.so (ambas em - /usr/lib/man-db) -
-
- Diretórios instalados: - /usr/lib/man-db, - /usr/libexec/man-db e /usr/share/doc/man-db-2.10.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- accessdb -

-
-

- Despeja o conteúdo do banco de dados whatis em formato - legível por humanos -

-
-

- apropos -

-
-

- Pesquisa no banco de dados whatis e exibe as - descrições curtas dos comandos de sistema que - contém uma sequência de caracteres dada -

-
-

- catman -

-
-

- Cria ou atualiza páginas de manual pré-formatadas -

-
-

- lexgrog -

-
-

- Exibe informação de sumário em uma linha sobre uma - página de manual dada -

-
-

- man -

-
-

- Formata e exibe a página de manual solicitada -

-
-

- man-recode -

-
-

- Converte páginas de manual para outra codificação -

-
-

- mandb -

-
-

- Cria ou atualiza o banco de dados whatis -

-
-

- manpath -

-
-

- Exibe o conteúdo de $MANPATH ou (se $MANPATH não - estiver configurada) um caminho de busca adequado - baseado nas configurações em man.conf e no ambiente - da(o) usuária(o) -

-
-

- whatis -

-
-

- Pesquisa no banco de dados whatis e exibe as - descrições curtas de comandos do sistema que contém - a palavra chave dada como uma palavra separada -

-
-

- libman -

-
-

- Contém suporte em tempo de execução para o - man -

-
-

- libmandb -

-
-

- Contém suporte em tempo de execução para o - man -

-
-
-
-
-
-
-
-
-

- 8.71. Procps-ng-3.3.17 -

-
-
-
-
-

- O pacote Procps-ng contém aplicativos para monitorar - processos. -

-
-

- Nota -

-

- Esse pacote extrai para o diretório procps-3.3.17, não o esperado - procps-ng-3.3.17. -

-
-
-
-
- Tempo aproximado de - construção: 0,4 UPC -
-
- Espaço em disco - exigido: 19 MB -
-
-
-
-
-

- 8.71.1. Instalação do Procps-ng -

-

- Prepare procps-ng para compilação: -

-
./configure --prefix=/usr                            \
-            --docdir=/usr/share/doc/procps-ng-3.3.17 \
-            --disable-static                         \
-            --disable-kill
-
-

- O significado da opção de configure: -

-
-
- --disable-kill -
-
-

- Essa chave desabilita a construção do comando - kill que - será instalado pelo pacote util-linux. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para executar a suíte de teste, execute: -

-
make check
-

- Cinco testes relacionados a pkill são conhecidos por falhar - devido a um problema com testes que não foram atualizados. -

-

- Instale o pacote: -

-
make install
-
-
-

- 8.71.2. - Conteúdo do Procps-ng -

-
-
-
- Aplicativos instalados: - free, pgrep, pidof, pkill, pmap, - ps, pwdx, slabtop, sysctl, tload, top, uptime, vmstat, w - e watch -
-
- Biblioteca instalada: - libprocps.so -
-
- Diretórios instalados: - /usr/include/proc e - /usr/share/doc/procps-ng-3.3.17 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- free -

-
-

- Relata a quantidade de memória livre e usada (ambas - memória física e swap) no sistema -

-
-

- pgrep -

-
-

- Procura por processos baseado nos nomes deles e - outros atributos -

-
-

- pidof -

-
-

- Relata os PIDs dos aplicativos dados -

-
-

- pkill -

-
-

- Sinaliza processos baseado nos nomes deles e outros - atributos -

-
-

- pmap -

-
-

- Relata o mapeamento de memória do processo dado -

-
-

- ps -

-
-

- Lista os processos em execução atualmente -

-
-

- pwait -

-
-

- Aguarda que um processo termine antes de executar. -

-
-

- pwdx -

-
-

- Relata o diretório de trabalho atual de um processo -

-
-

- slabtop -

-
-

- Exibe informações detalhadas de cache de slab do - kernel em tempo real -

-
-

- sysctl -

-
-

- Modifica parâmetros do kernel em tempo de execução -

-
-

- tload -

-
-

- Imprime um gráfico da média de carga de sistema - atual -

-
-

- top -

-
-

- Exibe uma lista dos processos com maior uso de CPU; - ele fornece uma visão contínua da atividade do - processador em tempo real -

-
-

- uptime -

-
-

- Relata há quanto tempo o sistema está executando, - quantas(os) usuárias(os) estão logadas(os) e as - médias de carga de sistema -

-
-

- vmstat -

-
-

- Relata estatísticas de memória virtual, dando - informações sobre processos, memória, paginação, - Entrada/Saída (E/S) de bloco, traps e atividade da - CPU -

-
-

- w -

-
-

- Mostra quais usuárias(os) estão logadas(os) - atualmente, onde e desde quando -

-
-

- watch -

-
-

- Executa um comando dado repetidamente, exibindo a - primeira tela cheia da saída dele; isso permite que - uma(m) usuária(o) observe a mudança de saída ao - longo do tempo -

-
-

- libprocps -

-
-

- Contém as funções usadas pela maioria dos - aplicativos nesse pacote -

-
-
-
-
-
-
-
-
-

- 8.72. Util-linux-2.37.4 -

-
-
-
-
-

- O pacote Util-linux contém aplicativos utilitários diversos. - Entre eles estão utilitários para lidar com sistemas de - arquivos, consoles, partições e mensagens. -

-
-
-
- Tempo aproximado de - construção: 1,1 UPC -
-
- Espaço em disco - exigido: 261 MB -
-
-
-
-
-

- 8.72.1. Instalação do Util-linux -

-

- Prepare Util-linux para compilação: -

-
./configure ADJTIME_PATH=/var/lib/hwclock/adjtime   \
-            --bindir=/usr/bin    \
-            --libdir=/usr/lib    \
-            --sbindir=/usr/sbin  \
-            --docdir=/usr/share/doc/util-linux-2.37.4 \
-            --disable-chfn-chsh  \
-            --disable-login      \
-            --disable-nologin    \
-            --disable-su         \
-            --disable-setpriv    \
-            --disable-runuser    \
-            --disable-pylibmount \
-            --disable-static     \
-            --without-python     \
-            --without-systemd    \
-            --without-systemdsystemunitdir
-

- As opções --disable e --without impedem avisos acerca de - construir componentes que exigem pacotes ausentes em LFS ou - estão inconsistentes com aplicativos instalados por outros - pacotes. -

-

- Compile o pacote: -

-
make
-

- Se desejado, execute a suíte de teste como uma(m) usuária(o) - não root: -

-
-

- Atenção -

-

- Executar a suíte de teste como a(o) usuária(o) root pode ser danoso ao seu sistema. - Para executá-lo, a opção CONFIG_SCSI_DEBUG para o kernel - precisa estar disponível no sistema em execução atualmente - e precisa ser construída como um módulo. Construí-lo dentro - do kernel impedirá a inicialização. Para cobertura - completa, outros pacotes do BLFS precisam ser instalados. - Se desejado, esse teste pode ser executado após reiniciar - no sistema LFS completo e executar: -

-
bash tests/run.sh --srcdir=$PWD --builddir=$PWD
-
-
-

- Nota -

-

- Existe um teste que falha no ambiente chroot e causa os - testes travarem para sempre. O problema não ocorre do lado - de fora do ambiente chroot. Para contornar o problema, - delete o teste: -

-
rm tests/ts/lsns/ioctl_ns
-
-
chown -Rv tester .
-su tester -c "make -k check"
-

- Instale o pacote: -

-
make install
-
-
-

- 8.72.2. Conteúdo do Util-linux -

-
-
-
- Aplicativos instalados: - addpart, agetty, blkdiscard, blkid, - blkzone, blockdev, cal, cfdisk, chcpu, chmem, choom, - chrt, col, colcrt, colrm, column, ctrlaltdel, delpart, - dmesg, eject, fallocate, fdisk, fincore, findfs, findmnt, - flock, fsck, fsck.cramfs, fsck.minix, fsfreeze, fstrim, - getopt, hexdump, hwclock, i386, ionice, ipcmk, ipcrm, - ipcs, irqtop, isosize, kill, last, lastb (link para - last), ldattach, linux32, linux64, logger, look, losetup, - lsblk, lscpu, lsipc, lsirq, lslocks, lslogins, lsmem, - lsns, mcookie, mesg, mkfs, mkfs.bfs, mkfs.cramfs, - mkfs.minix, mkswap, more, mount, mountpoint, namei, - nsenter, partx, pivot_root, prlimit, readprofile, rename, - renice, resizepart, rev, rfkill, rtcwake, script, - scriptlive, scriptreplay, setarch, setsid, setterm, - sfdisk, sulogin, swaplabel, swapoff (link para swapon), - swapon, switch_root, taskset, uclampset, ul, umount, - uname26, unshare, utmpdump, uuidd, uuidgen, uuidparse, - wall, wdctl, whereis, wipefs, x86_64 e zramctl -
-
- Bibliotecas instaladas: - libblkid.so, libfdisk.so, - libmount.so, libsmartcols.so e libuuid.so -
-
- Diretórios instalados: - /usr/include/blkid, - /usr/include/libfdisk, /usr/include/libmount, - /usr/include/libsmartcols, /usr/include/uuid, - /usr/share/doc/util-linux-2.37.4 e - /var/lib/hwclock -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- addpart -

-
-

- Informa o kernel Linux de novas partições -

-
-

- agetty -

-
-

- Abre uma porta tty, solicita um nome de login e - então invoca o aplicativo login -

-
-

- blkdiscard -

-
-

- Descarta setores em um dispositivo -

-
-

- blkid -

-
-

- Um utilitário de linha de comando para localizar e - imprimir atributos de dispositivo de bloco -

-
-

- blkzone -

-
-

- Executa comando de zona no dispositivo de bloco - dado -

-
-

- blockdev -

-
-

- Permite usuárias(os) chamar ioctls de dispositivo - de bloco a partir da linha de comando -

-
-

- cal -

-
-

- Exibe um calendário simples -

-
-

- cfdisk -

-
-

- Manipula a tabela de partição do dispositivo dado -

-
-

- chcpu -

-
-

- Modifica o estado de CPUs -

-
-

- chmem -

-
-

- Configura memória -

-
-

- choom -

-
-

- Exibe e ajusta a pontuação de matador de OOM -

-
-

- chrt -

-
-

- Manipula atributos de tempo real de um processo -

-
-

- col -

-
-

- Filtra feeds de linha reversa -

-
-

- colcrt -

-
-

- Filtra saída nroff para - terminais que não tem algumas capacidades, tais - como overstriking e half-lines -

-
-

- colrm -

-
-

- Filtra as colunas dadas -

-
-

- column -

-
-

- Formata um arquivo dado em colunas múltiplas -

-
-

- ctrlaltdel -

-
-

- Configura a função da combinação de teclas - Ctrl+Alt+Del para uma reconfiguração hard ou soft -

-
-

- delpart -

-
-

- Pede ao kernel Linux para remover uma partição -

-
-

- dmesg -

-
-

- Despeja as mensagens de inicialização do kernel -

-
-

- eject -

-
-

- Ejeta mídia removível -

-
-

- fallocate -

-
-

- Pré-aloca espaço para um arquivo -

-
-

- fdisk -

-
-

- Manipula a tabela de partição do dispositivo dado -

-
-

- fincore -

-
-

- Conta páginas de conteúdo de arquivo em núcleo -

-
-

- findfs -

-
-

- Encontra um sistema de arquivos pelo rótulo ou - Universally Unique Identifier (UUID) -

-
-

- findmnt -

-
-

- É uma interface de linha de comando para a - biblioteca libmount para funcionar com mountinfo, - fstab e arquivos mtab -

-
-

- flock -

-
-

- Adquire uma trava de arquivo e então executa um - comando com a trava mantida -

-
-

- fsck -

-
-

- É usado para verificar, e opcionalmente reparar, - sistemas de arquivos -

-
-

- fsck.cramfs -

-
-

- Realiza uma verificação de consistência no sistema - de arquivos Cramfs no dispositivo dado -

-
-

- fsck.minix -

-
-

- Realiza uma verificação de consistência no sistema - de arquivos Minix no dispositivo dado -

-
-

- fsfreeze -

-
-

- É um encapsulador muito simples em torno de - operações de controlador de kernel de ioctl de - FIFREEZE/FITHAW -

-
-

- fstrim -

-
-

- Descarta blocos não usados em um sistema de - arquivos montado -

-
-

- getopt -

-
-

- Analisa opções na linha de comando dada -

-
-

- hexdump -

-
-

- Despeja o arquivo dado em hexadecimal ou em outro - formato dado -

-
-

- hwclock -

-
-

- Lê ou configura o relógio de hardware do sistema, - também chamado de Real-Time Clock (RTC) ou relógio - do Basic Input-Output System (BIOS) -

-
-

- i386 -

-
-

- Um link simbólico para setarch -

-
-

- ionice -

-
-

- Obtém ou configura a classe de agendamento de io e - prioridade para um aplicativo -

-
-

- ipcmk -

-
-

- Cria vários recursos IPC -

-
-

- ipcrm -

-
-

- Remove o recurso de Inter-Process Communication - (IPC) dado -

-
-

- ipcs -

-
-

- Fornece informação de situação de IPC -

-
-

- irqtop -

-
-

- Exibe informação de contador de interrupção do - kernel em visão estilo top(1) -

-
-

- isosize -

-
-

- Relata o tamanho de um sistema de arquivos iso9660 -

-
-

- kill -

-
-

- Envia sinais para processos -

-
-

- last -

-
-

- Mostra quais usuárias(os) derradeiramente - logaram-se (e deslogaram-se), pesquisando de volta - ao longo do arquivo /var/log/wtmp; ele também mostra - inicializações de sistema, desligamentos e mudanças - de nível de execução -

-
-

- lastb -

-
-

- Exibe as tentativas de login falhas, conforme - registrado em /var/log/btmp -

-
-

- ldattach -

-
-

- Anexa uma disciplina de linha à uma linha serial -

-
-

- linux32 -

-
-

- Um link simbólico para setarch -

-
-

- linux64 -

-
-

- Um link simbólico para setarch -

-
-

- logger -

-
-

- Adiciona a mensagem dada ao registro do sistema -

-
-

- look -

-
-

- Exibe linhas que começam com a sequência de - caracteres dada -

-
-

- losetup -

-
-

- Configura e controla dispositivos de loop -

-
-

- lsblk -

-
-

- Lista informações sobre todos ou dispositivos de - bloco selecionados em um formato semelhante a - árvore -

-
-

- lscpu -

-
-

- Imprime informação de arquitetura da CPU -

-
-

- lsipc -

-
-

- Imprime informação acerca de facilidades de IPC - empregadas atualmente no sistema -

-
-

- lsirq -

-
-

- Exibe informação de contador de interrupção do - kernel -

-
-

- lslocks -

-
-

- Lista travas locais de sistema -

-
-

- lslogins -

-
-

- Lista informação acerca de contas de usuárias(os), - grupos e sistema -

-
-

- lsmem -

-
-

- Lista os intervalos de memória disponível com a - situação online deles -

-
-

- lsns -

-
-

- Lista espaços de nome -

-
-

- mcookie -

-
-

- Gera cookies mágicos (números hexadecimais - aleatórios de 128 bits) para o xauth -

-
-

- mesg -

-
-

- Controla se outras(os) usuárias(os) podem enviar - mensagens para o terminal da(o) usuária(o) atual -

-
-

- mkfs -

-
-

- Constrói um sistema de arquivos em um dispositivo - (geralmente uma partição de disco rígido) -

-
-

- mkfs.bfs -

-
-

- Cria um sistema de arquivos Santa Cruz Operations - (SCO) bfs -

-
-

- mkfs.cramfs -

-
-

- Cria um sistema de arquivos cramfs -

-
-

- mkfs.minix -

-
-

- Cria um sistema de arquivos Minix -

-
-

- mkswap -

-
-

- Inicializa dispositivo ou arquivo dado para ser - usado como uma área de troca -

-
-

- more -

-
-

- Um filtro para paginar ao longo de texto uma tela - de cada vez -

-
-

- mount -

-
-

- Anexa o sistema de arquivos no dispositivo dado a - um diretório especificado na árvore do sistema de - arquivos -

-
-

- mountpoint -

-
-

- Verifica se o diretório é um ponto de montagem -

-
-

- namei -

-
-

- Mostra os links simbólicos nos nomes de caminho - dados -

-
-

- nsenter -

-
-

- Executa um aplicativo com espaços de nome de outros - processos -

-
-

- partx -

-
-

- Informa ao kernel sobre a presença e numeração de - partições no disco -

-
-

- pivot_root -

-
-

- Torna o sistema de arquivos dado o novo sistema de - arquivos raiz do processo atual -

-
-

- prlimit -

-
-

- Obtém e configura um limite de recursos do processo -

-
-

- readprofile -

-
-

- Lê informação de perfil do kernel -

-
-

- rename -

-
-

- Renomeia os arquivos dados, substituindo uma - sequência de caracteres dada por outra -

-
-

- renice -

-
-

- Altera a prioridade de processos em execução -

-
-

- resizepart -

-
-

- Pede ao kernel Linux para redimensionar uma - partição -

-
-

- rev -

-
-

- Inverte as linhas de um arquivo dado -

-
-

- rkfill -

-
-

- Ferramenta para habilitar e desabilitar - dispositivos sem fios -

-
-

- rtcwake -

-
-

- Usado para entrar em um estado de suspensão do - sistema até o horário de ativação especificado -

-
-

- script -

-
-

- Cria um texto datilografado de uma sessão de - terminal -

-
-

- scriptlive -

-
-

- Reexecuta textos datilografados de sessão usando - informação de tempo -

-
-

- scriptreplay -

-
-

- Reproduz textos datilografados usando informações - de tempo -

-
-

- setarch -

-
-

- Muda a arquitetura relatada em um novo ambiente de - aplicativo e configura sinalizadores de - personalidade -

-
-

- setsid -

-
-

- Executa o aplicativo dado em uma nova sessão -

-
-

- setterm -

-
-

- Configura atributos do terminal -

-
-

- sfdisk -

-
-

- Um manipulador de tabela de partição de disco -

-
-

- sulogin -

-
-

- Permite root se - logar; ele normalmente é invocado por init quando o - sistema entra em modo de usuária(o) única(o) -

-
-

- swaplabel -

-
-

- Permite modificar o UUID e rótulo da área de troca -

-
-

- swapoff -

-
-

- Desabilita dispositivos e arquivos para paginação e - troca -

-
-

- swapon -

-
-

- Habilita dispositivos e arquivos para paginação e - troca e lista os dispositivos e arquivos atualmente - em uso -

-
-

- switch_root -

-
-

- Alterna para outro sistema de arquivos como a raiz - da árvore de montagem -

-
-

- taskset -

-
-

- Recupera ou configura uma afinidade de CPU do - processo -

-
-

- uclampset -

-
-

- Manipula os atributos de fixação de utilização do - sistema ou um processo -

-
-

- ul -

-
-

- Um filtro para traduzir sublinhados em sequências - de escape indicando sublinhamento para o terminal - em uso -

-
-

- umount -

-
-

- Desconecta um sistema de arquivos da árvore de - arquivos do sistema -

-
-

- uname26 -

-
-

- Um link simbólico para setarch -

-
-

- unshare -

-
-

- Executa um aplicativo com alguns espaços de nome - não compartilhados oriundos do pai -

-
-

- utmpdump -

-
-

- Exibe o conteúdo do arquivo de login dado em um - formato mais amigável para a(o) usuária(o) -

-
-

- uuidd -

-
-

- Um daemon usado pela biblioteca UUID para gerar - UUIDs baseados em horário em uma forma segura e - garantidamente única -

-
-

- uuidgen -

-
-

- Cria novos UUIDs. Cada novo UUID pode razoavelmente - ser considerado único entre todos os UUIDs criados, - no sistema local e em outros sistemas, no passado e - no futuro -

-
-

- uuidparse -

-
-

- Um utilitário para analisar identificadores únicos -

-
-

- wall -

-
-

- Exibe o conteúdo de um arquivo ou, por padrão, a - entrada padrão dele, nos terminais de todas(os) - as(os) usuárias(os) logadas(os) atualmente -

-
-

- wdctl -

-
-

- Mostra a situação de vigilante de hardware -

-
-

- whereis -

-
-

- Relata o local do binário, fonte e página de manual - para o comando dado -

-
-

- wipefs -

-
-

- Limpa uma assinatura de sistema de arquivos a - partir de um dispositivo -

-
-

- x86_64 -

-
-

- Um link simbólico para setarch -

-
-

- zramctl -

-
-

- Um aplicativo para configurar e controlar - dispositivos zram (disco ram comprimido) -

-
-

- libblkid -

-
-

- Contém rotinas para identificação de dispositivo e - extração de token -

-
-

- libfdisk -

-
-

- Contém rotinas para manipular tabelas de partição -

-
-

- libmount -

-
-

- Contém rotinas para montagem e desmontagem de - dispositivo de bloco -

-
-

- libsmartcols -

-
-

- Contém rotinas para auxiliar a saída de tela em - forma de tabela -

-
-

- libuuid -

-
-

- Contém rotinas para gerar identificadores únicos - para objetos que talvez sejam acessíveis além do - sistema local -

-
-
-
-
-
-
-
-
-

- 8.73. E2fsprogs-1.46.5 -

-
-
-
-
-

- O pacote e2fsprogs contém os utilitários para lidar com o - sistema de arquivos ext2. Ele - também suporta os sistemas de arquivos de registro em diário - ext3 e ext4. -

-
-
-
- Tempo aproximado de - construção: 4,4 UPC em um - disco giratório, 1,3 UPC em um SSD -
-
- Espaço em disco - exigido: 93 MB -
-
-
-
-
-

- 8.73.1. Instalação do E2fsprogs -

-

- A documentação do e2fsprogs recomenda que o pacote seja - construído em um subdiretório da árvore do fonte: -

-
mkdir -v build
-cd       build
-

- Prepare e2fsprogs para compilação: -

-
../configure --prefix=/usr           \
-             --sysconfdir=/etc       \
-             --enable-elf-shlibs     \
-             --disable-libblkid      \
-             --disable-libuuid       \
-             --disable-uuidd         \
-             --disable-fsck
-
-

- O significado das opções de configure: -

-
-
- --enable-elf-shlibs -
-
-

- Isso cria as bibliotecas compartilhadas as quais alguns - aplicativos nesse pacote usam. -

-
-
- --disable-* -
-
-

- Isso evita que e2fsprogs construa e instale as - bibliotecas libuuid e - libblkid, o daemon - uuidd, e o encapsulador - fsck, uma - vez que o util-linux instala versões mais recentes. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para executar os testes, execute: -

-
make check
-

- Um teste, u_direct_io, é conhecido por falhar em alguns - sistemas. -

-

- Instale o pacote: -

-
make install
-

- Remova bibliotecas estáticas inúteis: -

-
rm -fv /usr/lib/{libcom_err,libe2p,libext2fs,libss}.a
-

- Esse pacote instala um arquivo gzipado .info, mas não atualiza o arquivo do - sistema dir. Descompacte esse - arquivo e então atualize o arquivo do sistema dir usando os seguintes comandos: -

-
gunzip -v /usr/share/info/libext2fs.info.gz
-install-info --dir-file=/usr/share/info/dir /usr/share/info/libext2fs.info
-

- Se desejado, crie e instale alguma documentação adicional - executando os seguintes comandos: -

-
makeinfo -o      doc/com_err.info ../lib/et/com_err.texinfo
-install -v -m644 doc/com_err.info /usr/share/info
-install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info
-
-
-

- 8.73.2. Conteúdo do E2fsprogs -

-
-
-
- Aplicativos instalados: - badblocks, chattr, compile_et, - debugfs, dumpe2fs, e2freefrag, e2fsck, e2image, e2label, - e2mmpstatus, e2scrub, e2scrub_all, e2undo, e4crypt, - e4defrag, filefrag, fsck.ext2, fsck.ext3, fsck.ext4, - logsave, lsattr, mk_cmds, mke2fs, mkfs.ext2, mkfs.ext3, - mkfs.ext4, mklost+found, resize2fs e tune2fs -
-
- Bibliotecas instaladas: - libcom_err.so, libe2p.so, - libext2fs.so e libss.so -
-
- Diretórios instalados: - /usr/include/e2p, /usr/include/et, - /usr/include/ext2fs, /usr/include/ss, /usr/lib/e2fsprogs, - /usr/share/et e /usr/share/ss -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- badblocks -

-
-

- Pesquisa em um dispositivo (geralmente uma partição - de disco) por blocos defeituosos -

-
-

- chattr -

-
-

- Muda os atributos de arquivos em um sistema de - arquivos ext2; ele - também muda sistemas de arquivos ext3, a versão de registro em - diário dos sistemas de arquivos ext2 -

-
-

- compile_et -

-
-

- Um compilador de tabela de erro; ele converte uma - tabela de nomes de códigos de erros e mensagens em - um arquivo fonte C adequado para uso com a - biblioteca com_err -

-
-

- debugfs -

-
-

- Um depurador de sistema de arquivo; ele pode ser - usado para examinar e mudar o estado de um sistema - de arquivos ext2 -

-
-

- dumpe2fs -

-
-

- Imprime informação de superblocos e grupo de blocos - para o sistema de arquivos presente em um - dispositivo dado -

-
-

- e2freefrag -

-
-

- Relata informação de fragmentação de espaço livre -

-
-

- e2fsck -

-
-

- É usado para verificar, e opcionalmente reparar - sistemas de arquivos ext2 e sistemas de arquivos - ext3 -

-
-

- e2image -

-
-

- É usado para salvar dados críticos de sistema de - arquivos ext2 para - um arquivo -

-
-

- e2label -

-
-

- Exibe ou muda o rótulo de sistema de arquivos no - sistema de arquivos ext2 presente em um dispositivo - dado -

-
-

- e2mmpstatus -

-
-

- Verifica situação de MMP de um sistema de arquivos - ext4 -

-
-

- e2scrub -

-
-

- Verifica o conteúdo de um sistema de arquivos - ext[234] montado -

-
-

- e2scrub_all -

-
-

- Verifica todos os sistemas de arquivos ext[234] - montados para erros -

-
-

- e2undo -

-
-

- Reexecuta o registro de desfazer undo_log para um - sistema de arquivos ext2/ext3/ext4 encontrado em um - dispositivo [Isso pode ser usado para desfazer uma - operação falha por um aplicativo do e2fsprogs] -

-
-

- e4crypt -

-
-

- Utilitário de encriptação de sistema de arquivos - ext4 -

-
-

- e4defrag -

-
-

- Desfragmentador online para sistemas de arquivo - ext4 -

-
-

- filefrag -

-
-

- Relatórios sobre quão fragmentado um arquivo - específico pode estar -

-
-

- fsck.ext2 -

-
-

- Por padrão verifica sistemas de arquivo - ext2 e é um hard - link para e2fsck -

-
-

- fsck.ext3 -

-
-

- Por padrão verifica sistemas de arquivo - ext3 e é um hard - link para e2fsck -

-
-

- fsck.ext4 -

-
-

- Por padrão verifica sistemas de arquivo - ext4 e é um hard - link para e2fsck -

-
-

- logsave -

-
-

- Salva a saída de um comando em um arquivo de - registro -

-
-

- lsattr -

-
-

- Lista os atributos de arquivos em um segundo - sistema de arquivos estendido -

-
-

- mk_cmds -

-
-

- Converte uma tabela de nomes de comando e mensagens - de ajuda em um arquivo fonte C adequado para uso - com a biblioteca de subsistema libss -

-
-

- mke2fs -

-
-

- Cria um sistema de arquivos ext2 ou ext3 no dispositivo dado -

-
-

- mkfs.ext2 -

-
-

- Por padrão cria sistemas de arquivos ext2 e é um hard link para - mke2fs -

-
-

- mkfs.ext3 -

-
-

- Por padrão cria sistemas de arquivos ext3 e é um hard link para - mke2fs -

-
-

- mkfs.ext4 -

-
-

- Por padrão cria sistemas de arquivos ext4 e é um hard link para - mke2fs -

-
-

- mklost+found -

-
-

- Usado para criar um diretório lost+found em um sistema de - arquivos ext2; ele - pré-aloca blocos de disco para esse diretório para - facilitar a tarefa do e2fsck -

-
-

- resize2fs -

-
-

- Pode ser usado para alargar ou estreitar um sistema - de arquivos ext2 -

-
-

- tune2fs -

-
-

- Ajusta parâmetros ajustáveis de sistema de arquivos - em um sistema de arquivos ext2 -

-
-

- libcom_err -

-
-

- A rotina comum de exibição de erro -

-
-

- libe2p -

-
-

- Usado por dumpe2fs, - chattr e - lsattr -

-
-

- libext2fs -

-
-

- Contém rotinas para habilitar aplicativos de nível - de usuária(o) para lidar com um sistema de arquivos - ext2 -

-
-

- libss -

-
-

- Usado por debugfs -

-
-
-
-
-
-
-
-
-

- 8.74. Sysklogd-1.5.1 -

-
-
-
-
-

- O pacote sysklogd contém aplicativos para registrar mensagens - de sistema, tais como aquelas dadas pelo kernel quando coisas - incomuns acontecem. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 0,6 MB -
-
-
-
-
-

- 8.74.1. Instalação do Sysklogd -

-

- Primeiro, conserte problemas que causam uma falha de - segmentação sob certas condições em klogd e conserte uma - construção obsoleta de aplicativo: -

-
sed -i '/Error loading kernel symbols/{n;n;d}' ksym_mod.c
-sed -i 's/union wait/int/' syslogd.c
-

- Compile o pacote: -

-
make
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
make BINDIR=/sbin install
-
-
-

- 8.74.2. - Configurando Sysklogd -

-

- Crie um novo arquivo /etc/syslog.conf executando o seguinte: -

-
cat > /etc/syslog.conf << "EOF"
-# Begin /etc/syslog.conf
-
-auth,authpriv.* -/var/log/auth.log
-*.*;auth,authpriv.none -/var/log/sys.log
-daemon.* -/var/log/daemon.log
-kern.* -/var/log/kern.log
-mail.* -/var/log/mail.log
-user.* -/var/log/user.log
-*.emerg *
-
-# End /etc/syslog.conf
-EOF
-
-
-

- 8.74.3. Conteúdo do Sysklogd -

-
-
-
- Aplicativos instalados: - klogd e syslogd -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- klogd -

-
-

- Um daemon de sistema para interceptar e registrar - mensagens do kernel -

-
-

- syslogd -

-
-

- Registra as mensagens que aplicativos do sistema - oferecem para registro [Cada mensagem registrada - contém pelo menos uma marca de data e um nome de - dispositivo, e normalmente o nome do aplicativo - também, mas isso depende do quão confiável o daemon - de registro é dito ser] -

-
-
-
-
-
-
-
-
-

- 8.75. Sysvinit-3.01 -

-
-
-
-
-

- O pacote Sysvinit contém aplicativos para controlar a - inicialização, execução e desligamento do sistema. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 1,4 MB -
-
-
-
-
-

- 8.75.1. Instalação do Sysvinit -

-

- Primeiro, aplique uma correção que remove vários aplicativos - instalados por outros pacotes, esclarece uma mensagem, e - conserta um aviso de compilador: -

-
patch -Np1 -i ../sysvinit-3.01-consolidated-1.patch
-

- Compile o pacote: -

-
make
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
make install
-
-
-

- 8.75.2. Conteúdo do Sysvinit -

-
-
-
- Aplicativos instalados: - bootlogd, fstab-decode, halt, init, - killall5, poweroff (link para halt), reboot (link para - halt), runlevel, shutdown e telinit (link para - init) -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- bootlogd -

-
-

- Registra mensagens de inicialização para um arquivo - de registro -

-
-

- fstab-decode -

-
-

- Executa um comando com argumentos codificados para - fstab -

-
-

- halt -

-
-

- Normalmente invoca shutdown com a - opção -h, - exceto quando já em nível de execução 0, então ele - diz ao kernel para parar o sistema; ele anota no - arquivo /var/log/wtmp - que o sistema está sendo desligado -

-
-

- init -

-
-

- O primeiro processo a ser iniciado quando o kernel - inicializou o hardware e que assume o processo de - inicialização e inicia todos os processos - especificados no arquivo de configuração dele -

-
-

- killall5 -

-
-

- Envia um sinal para todos os processos, exceto os - processos na própria sessão dele, de modo que ele - não matará o shell pai dele -

-
-

- poweroff -

-
-

- Diz ao kernel para parar o sistema e desligar o - computador (veja halt) -

-
-

- reboot -

-
-

- Diz ao kernel para reinicializar o sistema (veja - halt) -

-
-

- runlevel -

-
-

- Relata o nível de execução anterior e o atual, - conforme anotado no último registro de nível de - execução em /run/utmp -

-
-

- shutdown -

-
-

- Desliga o sistema de maneira segura, sinalizando - todos os processos e notificando todas(os) as(os) - usuárias(os) logadas(os) -

-
-

- telinit -

-
-

- Diz ao init para qual - nível de execução mudar -

-
-
-
-
-
-
-
-
-

- 8.76. Acerca dos - Símbolos de Depuração -

-
-
-
-

- A maioria dos aplicativos e bibliotecas é, por padrão, - compilada com símbolos de depuração incluídos (com opção - -g do gcc). Isso significa que - quando depurar um aplicativo ou biblioteca que foi compilado - com informação de depuração, o depurador pode fornecer não - apenas endereços de memória, mas também os nomes das rotinas e - variáveis. -

-

- Entretanto, a inclusão desses símbolos de depuração alarga um - aplicativo ou biblioteca significativamente. O seguinte é um - exemplo da quantidade de espaço que esses símbolos ocupam: -

-
-
    -
  • -

    - Um binário bash com símbolos de - depuração: 1200 KB -

    -
  • -
  • -

    - Um binário bash sem símbolos de - depuração: 480 KB -

    -
  • -
  • -

    - Arquivos do Glibc e GCC (/lib e /usr/lib) com símbolos de depuração: 87 - MB -

    -
  • -
  • -

    - Arquivos do Glibc e GCC sem símbolos de depuração: 16 MB -

    -
  • -
-
-

- Tamanhos talvez variem dependendo de qual compilador e - biblioteca C foram usados, mas quando comparar aplicativos com - e sem símbolos de depuração, a diferença geralmente será um - fator entre dois e cinco. -

-

- Como a maioria das(os) usuárias(os) nunca usará um depurador no - aplicativo de sistema delas(es), um monte de espaço de disco - pode ser recuperado removendo esses símbolos. A próxima seção - mostra como remover todos os símbolos de depuração dos - aplicativos e bibliotecas. -

-
-
-
-
-
-

- 8.77. Despojando -

-
-
-
-

- Esta seção é opcional. Se a(o) pretensa(o) usuária(o) não for - uma(m) programadora(r) e não planeja fazer qualquer depuração - nos aplicativos do sistema, então o tamanho do sistema pode ser - reduzido em cerca de 2 GB removendo os símbolos de depuração de - binários e bibliotecas. Isso não causa nenhum inconveniente - além de não mais poder depurar os aplicativos completamente. -

-

- A maioria das pessoas que usam os comandos mencionados abaixo - não experimenta quaisquer dificuldades. Entretanto, é fácil - cometer um erro de digitação e tornar o novo sistema - inutilizável, de forma que, antes de executar os comandos - strip, é uma boa - ideia produzir uma cópia de segurança do sistema LFS no estado - atual dele. -

-

- Os símbolos de depuração para bibliotecas selecionadas estão - colocados em arquivos separados. Essa informação de depuração é - necessária se executar testes de regressão que usam - valgrind ou - gdb posteriormente em BLFS. -

-

- Observe que strip - sobrescreverá o arquivo de binário ou biblioteca que ele está - processando. Isso pode quebrar os processos usando código ou - dados oriundos do arquivo. Se o próprio processo executando o - strip for - afetado, então o binário ou biblioteca sendo despojado pode ser - destruído e pode tornar o sistema completamente inutilizável. - Para evitar isso, nós copiaremos algumas bibliotecas e binários - para /tmp, despojaremos elas lá, - e instalaremos elas de volta com o comando install. Leia a entrada - relacionada em Seção 8.2.1, - “Problemas de Atualização” para a justificativa - para usar o comando install aqui. -

-
-

- Nota -

-

- O nome do carregador de ELF é ld-linux-x86-64.so.2 em - sistemas de 64 bits e ld-linux.so.2 em sistemas de 32 bits. A - construção abaixo seleciona o nome correto para a arquitetura - atual. -

-
-
save_usrlib="$(cd /usr/lib; ls ld-linux*)
-             libc.so.6
-             libthread_db.so.1
-             libquadmath.so.0.0.0
-             libstdc++.so.6.0.29
-             libitm.so.1.0.0
-             libatomic.so.1.2.0"
-
-cd /usr/lib
-
-for LIB in $save_usrlib; do
-    objcopy --only-keep-debug $LIB $LIB.dbg
-    cp $LIB /tmp/$LIB
-    strip --strip-unneeded /tmp/$LIB
-    objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB
-    install -vm755 /tmp/$LIB /usr/lib
-    rm /tmp/$LIB
-done
-
-online_usrbin="bash find strip"
-online_usrlib="libbfd-2.38.so
-               libhistory.so.8.1
-               libncursesw.so.6.3
-               libm.so.6
-               libreadline.so.8.1
-               libz.so.1.2.11
-               $(cd /usr/lib; find libnss*.so* -type f)"
-
-for BIN in $online_usrbin; do
-    cp /usr/bin/$BIN /tmp/$BIN
-    strip --strip-unneeded /tmp/$BIN
-    install -vm755 /tmp/$BIN /usr/bin
-    rm /tmp/$BIN
-done
-
-for LIB in $online_usrlib; do
-    cp /usr/lib/$LIB /tmp/$LIB
-    strip --strip-unneeded /tmp/$LIB
-    install -vm755 /tmp/$LIB /usr/lib
-    rm /tmp/$LIB
-done
-
-for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \
-         $(find /usr/lib -type f -name \*.a)                 \
-         $(find /usr/{bin,sbin,libexec} -type f); do
-    case "$online_usrbin $online_usrlib $save_usrlib" in
-        *$(basename $i)* )
-            ;;
-        * ) strip --strip-unneeded $i
-            ;;
-    esac
-done
-
-unset BIN LIB save_usrlib online_usrbin online_usrlib
-
-

- Um número grande de arquivos serão relatados como tendo o - formato de arquivo deles não reconhecido. Esses avisos podem - ser seguramente ignorados. Eles indicam que aqueles arquivos - são scripts em vez de binários. -

-
-
-
-
-
-

- 8.78. Limpando -

-
-
-
-

- Finalmente, limpe alguns arquivos extra deixados pela execução - de testes: -

-
rm -rf /tmp/*
-

- Existem também muitos arquivos instalados nos diretórios - /usr/lib e /usr/libexec com uma extensão de nome de arquivo de - .la. Esses são arquivos "libtool archive". Como já dito, eles - somente são úteis quando vincular com bibliotecas estáticas. - Eles são desnecessários, e potencialmente danosos, quando se - usar bibliotecas compartilhadas dinâmicas, especialmente quando - se usar também sistemas de construção não autotools. Para - remover eles, execute: -

-
find /usr/lib /usr/libexec -name \*.la -delete
-

- Para mais informação acerca de arquivos libtool archive, veja a - - seção de BLFS "About Libtool Archive (.la) files". -

-

- O compilador construído em Capítulo 6 - e - Capítulo 7 ainda está instalado parcialmente e não é - mais necessário. Remova ele com: -

-
find /usr -depth -name $(uname -m)-lfs-linux-gnu\* | xargs rm -rf
-

- Por fim, remova a conta de usuária(o) 'tester' temporária - criada no início do capítulo anterior. -

-
userdel -r tester
-
-
-
-
-
-
-

- Capítulo 9. Configuração do - Sistema -

-
-
-
-
-
-
-
-

- 9.1. Introdução -

-
-
-
-

- Inicializar um sistema Linux envolve muitas tarefas. O processo - precisa montar ambos sistemas de arquivos virtual e real, - inicializar dispositivos, ativar a troca, verificar sistemas de - arquivos para integridade, montar quaisquer partições ou - arquivos de troca, configurar o relógio do sistema, ativar - rede, iniciar quaisquer daemons exigidos pelo sistema, e - realizar quaisquer outras tarefas personalizadas necessitadas - pela(o) usuária(o). Esse processo precisa estar organizado para - garantir que as tarefas sejam realizadas na ordem correta, - porém, ao mesmo tempo, ser executado o mais rápido possível. -

-
-

- 9.1.1. System V -

-

- System V é o processo de inicialização clássico que tem sido - usado em sistemas Unix e semelhantes a Unix, tais como Linux, - desde cerca de 1983. Ele consiste de um aplicativo pequeno, - init, que - configura aplicativos básicos, tais como login (via getty), e - executa um script. Esse script, usualmente chamado de - rc, controla a - execução de um conjunto de scripts adicionais que realizam as - tarefas exigidas para inicializar o sistema. -

-

- O aplicativo init é controlado pelo - arquivo /etc/inittab e está - organizado em níveis de execução que podem ser executados - pela(o) usuária(o): -

-
-

- 0 — parar
- 1 — Modo de usuária(o) única(o)
- - 2 — Multiusuária(o), sem rede
- - 3 — Modo de multiusuária(o) completo
- - 4 — Definível pela(o) usuária(o)
- - 5 — Modo de multiusuária(o) completo com gerenciador de tela
- - 6 — reinicializar -

-
-

- O nível de execução padrão usual é 3 ou 5. -

-

- Vantagens -

-
-
    -
  • -

    - Sistema estabelecido, bem compreendido. -

    -
  • -
  • -

    - Fácil de personalizar. -

    -
  • -
-
-

- Desvantagens -

-
-
    -
  • -

    - Talvez seja mais lento inicializar. Um sistema LFS - básico de velocidade média toma de 8 a 12 segundos, - onde o tempo de inicialização é medido desde a primeira - mensagem do kernel até o prompt de login. A - conectividade de rede tipicamente é estabelecida cerca - de 2 segundos após o prompt de login. -

    -
  • -
  • -

    - Processamento em série de tarefas de inicialização. - Isso está relacionado ao ponto anterior. Um atraso em - qualquer processo, tal como uma verificação de sistema - de arquivos, atrasará o processo de inicialização - inteiro. -

    -
  • -
  • -

    - Não suporta diretamente características avançadas, como - grupos de controle (cgroups), e agendamento de - compartilhamento justo por usuária(o). -

    -
  • -
  • -

    - Adicionar scripts exige decisões de sequenciamento - estático, manuais. -

    -
  • -
-
-
-
-
-
-
-
-

- 9.2. - LFS-Bootscripts-20210608 -

-
-
-
-
-

- O pacote LFS-Bootscripts contém um conjunto de scripts para - iniciar/parar o sistema LFS na inicialização/desligamento. Os - arquivos de configuração e procedimentos necessários para - personalizar o processo de inicialização estão descritos nas - seções seguintes. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 244 KB -
-
-
-
-
-

- 9.2.1. Instalação do LFS-Bootscripts -

-

- Instale o pacote: -

-
make install
-
-
-

- 9.2.2. Conteúdo do LFS-Bootscripts -

-
-
-
- Scripts instalados: - checkfs, cleanfs, console, - functions, halt, ifdown, ifup, localnet, modules, - mountfs, mountvirtfs, network, rc, reboot, sendsignals, - setclock, ipv4-static, swap, sysctl, sysklogd, template, - udev e udev_retry -
-
- Diretórios instalados: - /etc/rc.d, /etc/init.d (link - simbólico), /etc/sysconfig, /lib/services e /lib/lsb - (link simbólico) -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- checkfs -

-
-

- Verifica a integridade dos sistemas de arquivos - antes que eles sejam montados (com a exceção dos - sistemas de arquivos baseados em diário e rede) -

-
-

- cleanfs -

-
-

- Remove os arquivos que não deveriam ser preservados - entre as reinicializações, tais como aqueles em - /run/ e /var/lock/; ele recria - /run/utmp e remove os - arquivos possivelmente presentes /etc/nologin, /fastboot e /forcefsck -

-
-

- console -

-
-

- Carrega a tabela de mapa de tecla correta para o - esquema de teclado desejado; ele também configura a - fonte de tela -

-
-

- functions -

-
-

- Contém funções comuns, tais como de verificação de - erro e situação, que são usadas por diversos - scripts de inicialização -

-
-

- halt -

-
-

- Para o sistema -

-
-

- ifdown -

-
-

- Para um dispositivo de rede -

-
-

- ifup -

-
-

- Inicializa um dispositivo de rede -

-
-

- localnet -

-
-

- Configura o nome de dispositivo do sistema e - dispositivo de loopback local -

-
-

- modules -

-
-

- Carrega módulos do kernel listados em /etc/sysconfig/modules, usando - argumentos que também são dados lá -

-
-

- mountfs -

-
-

- Monta todos os sistemas de arquivos, exceto os que - estão marcados como noauto ou são baseados - em rede -

-
-

- mountvirtfs -

-
-

- Monta os sistemas de arquivos do kernel virtuais, - tais como o proc -

-
-

- network -

-
-

- Configura as interfaces de rede, tais como placas - de rede, e configura o gateway padrão (onde - aplicável) -

-
-

- rc -

-
-

- O script de controle de nível de execução mestre; - ele é responsável por executar todos os outros - scripts de inicialização, um por um, em uma - sequência determinada pelo nome dos links - simbólicos sendo processados -

-
-

- reboot -

-
-

- Reinicializa o sistema -

-
-

- sendsignals -

-
-

- Garante que cada processo seja terminado antes que - o sistema reinicialize ou pare -

-
-

- setclock -

-
-

- Reconfigura o relógio do kernel para hora local - quando o relógio do hardware não está configurado - para hora UTC -

-
-

- ipv4-static -

-
-

- Fornece a funcionalidade necessária para atribuir - um endereço Internet Protocol (IP) estático para - uma interface de rede -

-
-

- swap -

-
-

- Habilita e desabilita arquivos e partições de troca -

-
-

- sysctl -

-
-

- Carrega valores de configuração de sistema a partir - do /etc/sysctl.conf, - se esse arquivo existir, para dentro do kernel em - execução -

-
-

- sysklogd -

-
-

- Inicia e para os daemons de registro do sistema e - kernel -

-
-

- template -

-
-

- Um modelo para criar scripts de inicialização - personalizados para outros daemons -

-
-

- udev -

-
-

- Prepara o diretório /dev e inicia o Udev -

-
-

- udev_retry -

-
-

- Tenta novamente uevents do udev que falharam, e - copia arquivos de regras gerados de /run/udev para /etc/udev/rules.d se exigido -

-
-
-
-
-
-
-
-
-

- 9.3. Visão Geral do Manuseio - de Dispositivos e Módulos -

-
-
-
-

- No Capítulo 8, - nós instalamos o pacote udev quando eudev foi construído. Antes de entrarmos em - detalhes referentes a como isso funciona, um histórico breve - dos métodos anteriores de manuseio de dispositivos é oportuno. -

-

- Sistemas Linux em geral tradicionalmente usavam um método de - criação de dispositivo estático, pelo qual muitos nós de - dispositivos eram criados sob /dev (as vezes literalmente milhares de nós), - independente de se os dispositivos de hardware correspondentes - atualmente existissem. Isso tipicamente era feito via um script - MAKEDEV, o qual - contém um número de chamadas ao aplicativo mknod com os números de - dispositivo principal e secundário relevantes para cada - dispositivo possível que pudesse existir no mundo. -

-

- Usando o método udev, somente aqueles dispositivos os quais são - detectados pelo kernel obtém nós de dispositivo criados para - eles. Como esses nós de dispositivo serão criados a cada vez - que o sistema inicializar, eles serão armazenados em um sistema - de arquivos devtmpfs (um - sistema de arquivos virtual que reside inteiramente na memória - do sistema). Nós de dispositivo não exigem muito espaço, de - forma que a memória que é usada é insignificante. -

-
-

- 9.3.1. Histórico -

-

- Em fevereiro 2000, um novo sistema de arquivos chamado - devfs foi mesclado no kernel - 2.3.46 e foi feito disponível durante as séries 2.4 de - kernels estáveis. Embora ele estivesse presente no próprio - fonte do kernel, esse método de criar dispositivos - dinamicamente nunca recebeu suporte decisivo das(os) - desenvolvedoras(es) do kernel centrais. -

-

- O problema principal com a abordagem adotada pelo - devfs era a maneira como ele - lidava com detecção, criação e nomenclatura de dispositivo. O - último problema, esse da nomenclatura de nó de dispositivo, - era talvez o mais crítico. É aceito geralmente que, se nomes - de dispositivo são passíveis de serem configuráveis, então a - política de nomenclatura de dispositivo esteja a cargo de - uma(m) administradora(r) do sistema, não imposta sobre - elas(es) por (quais)qualquer desenvolvedoras(r(es)) - específicas(o(s)). O sistema de arquivos devfs também sofria com algumas condições - que eram inerentes ao projeto dele e não poderiam ser - consertadas sem uma revisão substancial do kernel. Ele ficou - marcado como obsoleto por um longo período – e foi - finalmente removido do kernel em junho de 2006. -

-

- Com o desenvolvimento da árvore do kernel 2.5 instável, - liberada posteriormente como as séries 2.6 dos kernels - estáveis, um novo sistema de arquivos virtual chamado - sysfs veio a existir. O - trabalho do sysfs é o de - exportar uma visão da configuração de hardware do sistema - para processos de espaço de usuária(o). Com essa - representação visível ao espaço de usuária(o), a - possibilidade de desenvolvimento de um substituto de espaço - de usuária(o) para o devfs - tornou-se muito mais realista. -

-
-
-

- 9.3.2. Implementação do Udev -

-
-
-
-
-

- 9.3.2.1. Sysfs -

-
-
-
-

- O sistema de arquivos sysfs - foi mencionado brevemente acima. Alguém talvez questione - como o sysfs sabe sobre os - dispositivos presentes em um sistema e quais números de - dispositivo deveriam ser usados para eles. Controladores - que tenham sido compilados diretamente no kernel registram - os objetos deles com um sysfs (devtmpfs internamente) assim que - eles são detectados pelo kernel. Para controladores - compilados como módulos, esse registro acontecerá quando o - módulo for carregado. Assim que o sistema de arquivos - sysfs for montado (em - /sys), os dados os quais os controladores registram com - sysfs ficam disponíveis - para os processos de espaço de usuária(o) e para udevd para - processamento (incluindo modificações para nós de - dispositivo). -

-
-
-
-
-
-

- 9.3.2.2. Criação de Nó de - Dispositivo -

-
-
-
-

- Arquivos de dispositivo são criados pelo kernel por meio do - sistema de arquivos devtmpfs. Qualquer controlador que - deseje registrar um nó de dispositivo usará o devtmpfs (via o núcleo do controlador) - para fazê-lo. Quando uma instância do devtmpfs é montada em /dev, o nó de dispositivo inicialmente - será criado com um nome, permissões e proprietária(o) - fixos. -

-

- Pouco tempo depois, o kernel enviará um uevent para - udevd. - Baseado nas regras especificadas nos arquivos dentro dos - diretórios /etc/udev/rules.d, - /usr/lib/udev/rules.d e - /run/udev/rules.d, - udevd criará - links simbólicos adicionais para o nó de dispositivo, ou - mudará as permissões, proprietária(o), ou grupo deles, ou - modificará a entrada de banco de dados do udevd interna (nome) para - aquele objeto. -

-

- As regras nesses três diretórios são numeradas e todos os - três diretórios são mesclados. Se udevd não puder encontrar - uma regra para o dispositivo que ele está criando, então - ele deixará as permissões e propriedade no que devtmpfs usou inicialmente. -

-
-
-
-
-
-

- 9.3.2.3. Carregamento de - Módulo -

-
-
-
-

- Controladores de dispositivo compilados como módulos talvez - tenham apelidos construídos dentro deles. Apelidos são - visíveis na saída do aplicativo modinfo e geralmente - estão relacionados aos identificadores específicos ao - barramento dos dispositivos suportados por um módulo. Por - exemplo, o controlador snd-fm801 suporta dispositivos - PCI com ID de fornecedor 0x1319 e ID de dispositivo 0x0801, - e tem um apelido de pci:v00001319d00000801sv*sd*bc04sc01i*. - Para a maioria dos dispositivos, o controlador de - barramento exporta o apelido do controlador que lidaria com - o dispositivo via sysfs. - Por exemplo, o arquivo /sys/bus/pci/devices/0000:00:0d.0/modalias - pode conter a sequência de caracteres pci:v00001319d00000801sv00001319sd00001319bc04sc01i00. - As regras padrão fornecidas com udev causarão udevd chamar /sbin/modprobe com o - conteúdo da variável de ambiente do uevent MODALIAS (o qual deveria ser o mesmo que o - conteúdo do arquivo modalias - em sysfs), dessa forma carregando todos os módulos cujos - apelidos correspondem a essa sequência de caracteres depois - da expansão de carácter curinga. -

-

- Nesse exemplo, isso significa que, em adição a snd-fm801, o obsoleto (e - indesejado) controlador forte será carregado se ele - estiver disponível. Veja abaixo maneiras pelas quais o - carregamento de controladores indesejados pode ser evitado. -

-

- O próprio kernel também é capaz de carregar módulos para - protocolos de rede, sistemas de arquivos e suporte NLS sob - demanda. -

-
-
-
-
-
-

- 9.3.2.4. Lidando com - Dispositivos Plugáveis a Quente/Dinâmicos -

-
-
-
-

- Quando você conecta um dispositivo, como um tocador de MP3 - Universal Serial Bus (USB), o kernel reconhece que o - dispositivo agora está conectado e gera um uevent. Esse - uevent é então tratado pelo udevd como descrito - acima. -

-
-
-
-

- 9.3.3. Problemas ao Carregar Módulos e Criar Dispositivos -

-

- Existem uns poucos possíveis problemas quando se trata de - criar automaticamente nós de dispositivos. -

-
-
-
-
-

- 9.3.3.1. Um módulo do kernel não - é carregado automaticamente -

-
-
-
-

- O Udev só carregará um módulo se ele tiver um apelido - específico a barramento e o controlador de barramento - exportar adequadamente os apelidos necessários para - sysfs. Em outros casos, - deve-se organizar o carregamento de módulo por outros - meios. Com o Linux-5.16.9, udev é conhecido por carregar - controladores escritos adequadamente para dispositivos - INPUT, IDE, PCI, USB, SCSI, SERIO e FireWire. -

-

- Para determinar se o controlador de dispositivo que você - exige tem o suporte necessário para udev, execute - modinfo com o - nome de módulo como o argumento. Agora tente localizar o - diretório de dispositivo sob /sys/bus e verifique se existe um arquivo - modalias lá. -

-

- Se o arquivo modalias existir - em sysfs, então o - controlador suporta o dispositivo e pode falar com ele - diretamente, mas não tem o apelido, isso é um defeito no - controlador. Carregue o controlador sem a ajuda do udev e - espere que o problema seja consertado posteriormente. -

-

- Se não existir arquivo modalias no diretório relevante sob - /sys/bus, então isso - significa que as(os) desenvolvedoras(es) do kernel ainda - não adicionaram suporte modalias para esse tipo de - barramento. Com Linux-5.16.9, esse é o caso com barramentos - ISA. Espere que esse problema seja consertado em versões do - kernel posteriores. -

-

- Udev não é planejado para carregar controladores - encapsuladores, tais como - snd-pcm-oss, e - controladores não hardware, tais como loop, de maneira alguma. -

-
-
-
-
-
-

- 9.3.3.2. Um módulo do kernel não - é carregado automaticamente, e udev não é planejado - para carregar ele -

-
-
-
-

- Se o módulo encapsulador apenas aprimora a - funcionalidade fornecida por algum outro módulo (por - exemplo, snd-pcm-oss - aprimora a funcionalidade de snd-pcm tornando as placas de - som disponíveis para aplicações OSS), então configure - modprobe para - carregar o encapsulador após o udev carregar o módulo - encapsulado. Para fazer isso, adicione uma linha - softdep ao arquivo - /etc/modprobe.d/<filename>.conf - correspondente. Por exemplo: -

-
softdep snd-pcm post: snd-pcm-oss
-

- Observe que o comando softdep também permite - dependências pre:, ou uma - mistura de ambas as dependências pre: e post:. - Veja-se a página de manual modprobe.d(5) para mais informação sobre - a sintaxe e capacidades softdep. -

-

- Se o módulo em questão não é um encapsulador e é útil por - ele próprio, então configure o script de inicialização - modules para - carregar esse módulo na inicialização do sistema. Para - fazer isso, adicione o nome de módulo ao arquivo - /etc/sysconfig/modules em uma - linha separada. Isso funciona para módulos encapsuladores - também, mas é abaixo do ideal naquele caso. -

-
-
-
-
-
-

- 9.3.3.3. Udev carrega algum - módulo indesejado -

-
-
-
-

- Ou não construa o módulo, ou coloque-o na lista negra em um - arquivo /etc/modprobe.d/blacklist.conf como feito - com o módulo forte - no exemplo abaixo: -

-
blacklist forte
-

- Módulos em listas negras ainda podem ser carregados - manualmente com o comando explícito modprobe. -

-
-
-
-
-
-

- 9.3.3.4. Udev cria um - dispositivo incorretamente, ou faz um link simbólico - errado -

-
-
-
-

- Isso geralmente acontece se uma regra inesperadamente - corresponder com um dispositivo. Por exemplo, uma regra mal - escrita pode corresponder com ambos um disco SCSI (como - desejado) e o dispositivo genérico SCSI correspondente - (incorretamente) pelo fornecedor. Encontre a regra - infratora e torne-a mais específica, com a ajuda do comando - udevadm info. -

-
-
-
-
-
-

- 9.3.3.5. Regra do Udev funciona - de forma não confiável -

-
-
-
-

- Isso talvez seja outra manifestação do problema anterior. - Se não, e sua regra usar atributos do sysfs, então isso talvez seja um - problema de temporização do kernel, a ser consertado em - kernels posteriores. Por hora, você pode contornar ele - criando uma regra que aguarda o atributo do sysfs usado e adiciona ele ao arquivo - /etc/udev/rules.d/10-wait_for_sysfs.rules - (crie esse arquivo se ele não existir). Por favor notifique - a lista LFS Development se você o fizer e isso ajudar. -

-
-
-
-
-
-

- 9.3.3.6. Udev não cria um - dispositivo -

-
-
-
-

- O texto adicional assume que o driver está construído - estaticamente dentro do kernel ou já carregado como um - módulo, e que você já verificou que o udev não cria um - dispositivo mal nomeado. -

-

- Udev não tem informação necessária para criar um nó de - dispositivo se um controlador de kernel não exportar os - dados dele para o sysfs. - Isso é mais comum com controladores terceirizados oriundos - de fora da árvore do kernel. Crie um nó de dispositivo - estático em /usr/lib/udev/devices com os números - principal/secundário apropriados (veja o arquivo - devices.txt dentro da - documentação do kernel ou a documentação fornecida pela(o) - fornecedora(r) de controlador terceirizado). O nó de - dispositivo estático será copiado para /dev por udev. -

-
-
-
-
-
-

- 9.3.3.7. Ordem de nomenclatura - de dispositivo muda aleatoriamente após reinicializar -

-
-
-
-

- Isso é devido ao fato de o udev, pelo projeto, lidar com - uevents e carregar módulos em paralelo, e assim em uma - ordem imprevisível. Isso nunca será consertado. Você não deveria - confiar que os nomes de dispositivos do kernel sejam - estáveis. Em vez disso, crie suas próprias regras que fazem - links simbólicos com nomes estáveis baseados em alguns - atributos estáveis do dispositivo, tais como um número de - série ou a saída dos vários utilitários *_id instalados - pelo udev. Veja-se a Seção 9.4, - “Gerenciando Dispositivos” e Seção 9.5, - “Configuração de Rede Geral” para exemplos. -

-
-
-
-

- 9.3.4. Leitura Útil -

-

- Documentação útil adicional está disponível nos seguintes - sítios: -

- -
-
-
-
-
-
-

- 9.4. Gerenciando - Dispositivos -

-
-
-
-
-

- 9.4.1. Dispositivos de Rede -

-

- Udev, por padrão, nomeia dispositivos de rede de acordo com - dados de Firmware/BIOS ou características físicas como - barramento, slot ou endereço MAC. O propósito dessa convenção - de nomenclatura é o de garantir que dispositivos de rede - sejam nomeados consistentemente e não baseados no horário que - a placa de rede foi descoberta. Por exemplo, em um computador - que tem duas placas de rede feitas por Intel e Realtek, a - placa de rede fabricada pela Intel talvez se torne eth0 e a - placa Realtek se torne eth1. Em alguns casos, após uma - reinicialização as placas poderiam ser renumeradas de maneira - inversa. -

-

- No novo esquema de nomenclatura, nomes de dispositivo de rede - típicos seriam então alguma coisa como enp5s0 ou wlp3s0. Se - essa convenção de nomenclatura não for desejada, então o - esquema de nomenclatura tradicional ou um esquema - personalizado pode ser implementado. -

-
-
-
-
-

- 9.4.1.1. Desabilitando - Nomenclatura Persistente na Linha de Comando do - Kernel -

-
-
-
-

- O esquema de nomenclatura tradicional usando eth0, eth1, - etc., pode ser restaurado adicionando-se net.ifnames=0 na linha de - comando do kernel. Isso é mais apropriado para aqueles - sistemas que tem apenas um dispositivo ethernet do mesmo - tipo. Laptops frequentemente tem múltiplas conexões - ethernet que são nomeadas eth0 e wlan0 e são também - candidatas para esse método. A linha de comando é passada - no arquivo de configuração do GRUB. Veja-se Seção 10.4.4, - “Criando o Arquivo de Configuração do - GRUB”. -

-
-
-
-
-
-

- 9.4.1.2. Criando Regras do Udev - Personalizadas -

-
-
-
-

- O esquema de nomenclatura pode ser personalizado criando-se - regras do udev personalizadas. Um script foi incluído que - gera as regras iniciais. Gere essas regras executando: -

-
bash /usr/lib/udev/init-net-rules.sh
-

- Agora, inspecione o arquivo /etc/udev/rules.d/70-persistent-net.rules, - para descobrir qual nome foi atribuído a qual dispositivo - de rede: -

-
cat /etc/udev/rules.d/70-persistent-net.rules
-
-

- Nota -

-

- Em alguns casos tais como quando endereços MAC foram - atribuídos para uma placa de rede manualmente ou em um - ambiente virtual como Qemu ou Xen, o arquivo de regras de - rede talvez não tenha sido gerado, pois endereços não são - atribuídos consistentemente. Nesses casos, esse método - não pode ser usado. -

-
-

- O arquivo começa com um bloco de comentário seguido por - duas linhas para NIC. A primeira linha para cada NIC é uma - descrição comentada mostrando os IDs de hardware delas (por - exemplo, fornecedor de PCI delas e IDs de dispositivo, se - ela for uma placa PCI), juntamente com o controlador delas - entre parênteses, se o controlador puder ser encontrado. - Nem o ID de hardware nem o controlador é usado para - determinar quais nomes dar para uma interface; essa - informação é apenas para referência. A segunda linha é a - regra do udev que corresponde a essa NIC e atualmente - atribui a ela um nome. -

-

- Todas as regras do udev são compostas de muitas chaves, - separadas por vírgulas e espaços em branco opcionais. Essas - chaves da regra e uma explanação de cada uma delas estão a - seguir: -

-
-
    -
  • -

    - SUBSYSTEM=="net" - Isso - diz a udev para ignorar dispositivos que não sejam - placas de rede. -

    -
  • -
  • -

    - ACTION=="add" - Isso diz - a udev para ignorar essa regra para um uevent que não - seja um adicionar (uevents "remover" e "mudar" também - acontecem, porém não precisam renomear interfaces de - rede). -

    -
  • -
  • -

    - DRIVERS=="?*" - Isso - existe de forma que udev ignorará sub-interfaces VLAN - ou bridge (pois essas sub-interfaces não tem - controladores). Essas sub-interfaces são puladas, - pois o nome que seria atribuído conflitaria com os - dispositivos pais delas. -

    -
  • -
  • -

    - ATTR{address} - O valor - dessa chave é o endereço MAC da NIC. -

    -
  • -
  • -

    - ATTR{type}=="1" - Isso - garante que a regra corresponde apenas à interface - primária no caso de certos controladores sem fios os - quais criam múltiplas interfaces virtuais. As - interfaces secundárias são puladas pela mesma razão - que sub-interfaces VLAN e bridge são puladas: - existiria um conflito de nome do contrário. -

    -
  • -
  • -

    - NAME - O valor dessa - chave é o nome que udev atribuirá para essa - interface. -

    -
  • -
-
-

- O valor de NAME é a parte - importante. Assegure-se de que você sabe qual nome foi - atribuído para cada uma das suas placas de rede antes de - prosseguir, e tenha certeza de usar esse valor NAME quando criar seus arquivos de - configuração abaixo. -

-
-
-
-

- 9.4.2. Links Simbólicos de CD-ROM -

-

- Alguns aplicativos que você talvez queira instalar - posteriormente (por exemplo, vários tocadores de mídia) - esperam que os links simbólicos /dev/cdrom e /dev/dvd existam, e apontem para um - dispositivo de CD-ROM ou DVD-ROM. Também, talvez seja - conveniente colocar referências a esses links simbólicos em - /etc/fstab. Udev vem com um - script que gerará arquivos de regras para criar esses links - simbólicos para você, dependendo das capacidades de cada - dispositivo, mas você precisa decidir qual de dois modos de - operação você deseja ter para o script usar. -

-

- Primeiro, o script pode operar em modo por-caminho (usado por padrão - para dispositivos USB e FireWire), onde as regras que ele - cria dependem do caminho físico para o dispositivo de CD ou - DVD. Segundo, ele pode operar em modo por-id (padrão para dispositivos - IDE e SCSI), onde as regras que ele cria dependem das - sequências de caracteres de identificação armazenadas no - próprio dispositivo de CD ou DVD. O caminho é determinado - pelo script path_id do udev, e as - sequências de caracteres de identificação são lidas a partir - do hardware pelos aplicativos ata_id ou scsi_id dele, dependendo de - qual tipo de dispositivo você tenha. -

-

- Existem vantagens para cada abordagem; a abordagem correta a - usar dependerá de que tipos de mudanças de dispositivo talvez - aconteçam. Se você espera o caminho físico para o dispositivo - (isto é, as portas e (ou) slots aos quais ele se conecta) - mudar, por exemplo porque você planeja mover a unidade para - uma porta IDE diferente ou um conector USB diferente, então - você deveria usar o modo por-id. Por outro lado, se você - espera que a identificação do dispositivo mude, por exemplo - porque ele talvez morra, e você o substituiria por um - dispositivo diferente com as mesmas capacidades e que estaria - plugado nos mesmos conectores, então você deveria usar o modo - por-caminho. -

-

- Se ambos os tipos de mudanças são possíveis com a sua - unidade, então escolha um modo baseado no tipo de mudança que - você espera que aconteça com maior frequência. -

-
-

- Importante -

-

- Dispositivos externos (por exemplo, uma unidade de CD - conectada via USB) não deveria usar persistência por - caminho, porque cada vez que o dispositivo for plugado em - uma nova porta externa, o caminho físico dele mudará. Todos - os dispositivos conectados externamente terão esse problema - se você escrever regras do udev para reconhecê-los pelo - caminho físico deles; o problema não está limitado a - unidades de CD e DVD. -

-
-

- Se você deseja ver os valores que os scripts do udev usarão, - então para o dispositivo de CD-ROM apropriado, encontre o - diretório correspondente sob /sys (por exemplo, isso pode ser - /sys/block/hdd) e execute um - comando similar ao seguinte: -

-
udevadm test /sys/block/hdd
-

- Olhe para as linhas contendo a saída de vários aplicativos - *_id. O modo por-id usará o valor ID_SERIAL - se ele existir e não estiver vazio, do contrário ele usará - uma combinação de ID_MODEL e ID_REVISION. O modo por-caminho usará o valor - ID_PATH. -

-

- Se o modo padrão não for adequado para a sua situação, então - a seguinte modificação pode ser feita para o arquivo - /etc/udev/rules.d/83-cdrom-symlinks.rules, - como se segue (onde mode é um de por-id ou por-caminho): -

-
sed -e 's/"write_cd_rules"/"write_cd_rules mode"/' \
-    -i /etc/udev/rules.d/83-cdrom-symlinks.rules
-

- Observe que não é necessário criar os arquivos de regras ou - links simbólicos neste momento, porque você montou com bind o - diretório do sistema anfitrião /dev dentro do sistema LFS, e nós assumimos - que os links simbólicos existem no anfitrião. As regras e - links simbólicos serão criados na primeira vez que você - inicializar seu sistema LFS. -

-

- Entretanto, se você tiver múltiplos dispositivos de CD-ROM, - então os links simbólicos gerados naquele momento talvez - apontem para dispositivos diferentes dos que eles apontam em - seu anfitrião, porque os dispositivos não são descobertos em - uma ordem previsível. As atribuições criadas quando você - inicializar o sistema LFS pela primeira vez serão estáveis, - de forma que isso é um problema apenas se você precisar dos - links simbólicos em ambos os sistemas para apontar para o - mesmo dispositivo. Se você precisar disso, então inspecione - (e possivelmente edite) o arquivo /etc/udev/rules.d/70-persistent-cd.rules - gerado após a inicialização, para ter certeza que os links - simbólicos atribuídos correspondem ao que você precisa. -

-
-
-

- 9.4.3. Lidando com dispositivos duplicados -

-

- Como explicado na Seção 9.3, - “Visão Geral do Manuseio de Dispositivos e - Módulos”, a ordem na qual dispositivos com a mesma - função aparecem em /dev é - essencialmente aleatória. Por exemplo, se você tem uma câmera - web USB e um sintonizador de TV, as vezes /dev/video0 se refere à câmera e - /dev/video1 se refere ao - sintonizador, e as vezes após uma reinicialização a ordem - muda. Para todas as classes de hardware, exceto placas de som - e placas de rede, isso é consertável criando regras do udev - para links simbólicos persistentes personalizados. O caso das - placas de rede é abordado separadamente na Seção 9.5, - “Configuração de Rede Geral”, e configuração - de placa de som pode ser encontrado em - BLFS. -

-

- Para cada um dos seus dispositivos que é provável ter esse - problema (mesmo que o problema não exista em sua distribuição - Linux atual), encontre o diretório correspondente sob - /sys/class ou /sys/block. Para dispositivos de vídeo, - isso talvez seja /sys/class/video4linux/videoX. Descubra os - atributos que identificam o dispositivo de maneira única - (geralmente, IDs de fornecedor e produto e (ou) números - seriais funcionam): -

-
udevadm info -a -p /sys/class/video4linux/video0
-

- Então escreva regras que criam os links simbólicos, por - exemplo: -

-
cat > /etc/udev/rules.d/83-duplicate_devs.rules << "EOF"
-
-# Persistent symlinks for webcam and tuner
-KERNEL=="video*", ATTRS{idProduct}=="1910", ATTRS{idVendor}=="0d81", SYMLINK+="webcam"
-KERNEL=="video*", ATTRS{device}=="0x036f",  ATTRS{vendor}=="0x109e", SYMLINK+="tvtuner"
-
-EOF
-

- O resultado é que os dispositivos /dev/video0 e /dev/video1 ainda se referem aleatoriamente - ao sintonizador e à câmera web (e, portanto, nunca deveriam - ser usados diretamente), mas existem links simbólicos - /dev/tvtuner e /dev/webcam que sempre apontam para o - dispositivo correto. -

-
-
-
-
-
-
-

- 9.5. Configuração de Rede - Geral -

-
-
-
-
-

- 9.5.1. Criando Arquivos de Configuração de Interface de Rede -

-

- Quais interfaces são levantadas ou derrubadas pelo script de - rede usualmente depende dos arquivos em /etc/sysconfig/. Esse diretório deveria - conter um arquivo para cada interface a ser configurada, tal - como ifconfig.xyz, onde - xyz deveria descrever a placa de - rede. O nome de interface (por exemplo, eth0) usualmente é - apropriado. Dentro desse arquivo estão atributos para essa - interface, tais como endereço(s) IP dela, máscaras de - subrede, e por aí vai. É necessário que a base do nome do - arquivo seja ifconfig. -

-
-

- Nota -

-

- Se o procedimento na seção anterior não foi usado, udev - atribuirá nomes de interface de placa de rede baseados em - características físicas do sistema, tais como enp2s1. Se - você não tem certeza qual é seu nome de interface, então - você sempre pode executar ip - link ou ls - /sys/class/net após você ter inicializado - seu sistema. -

-

- Os nomes de interface dependem da implementação e - configuração do daemon udev em execução no sistema. O - daemon udev para LFS (instalado na Seção 8.69, - “Eudev-3.2.11”) não executará até que o - sistema LFS seja inicializado. Assim, não é confiável - determinar os nomes de interface sendo usados no sistema - LFS executando aqueles comandos na distribuição anfitriã, - mesmo que você esteja no - ambiente chroot. -

-
-

- O seguinte comando cria um arquivo modelo para o dispositivo - eth0 com um endereço - de IP estático: -

-
cd /etc/sysconfig/
-cat > ifconfig.eth0 << "EOF"
-ONBOOT=yes
-IFACE=eth0
-SERVICE=ipv4-static
-IP=192.168.1.2
-GATEWAY=192.168.1.1
-PREFIX=24
-BROADCAST=192.168.1.255
-EOF
-

- Os valores em itálico precisam ser mudados em cada arquivo - para corresponder com a configuração adequada. -

-

- Se a variável ONBOOT estiver - configurada para yes, então o script de rede do - System V levantará a Network Interface Card (NIC) durante o - processo de inicialização do sistema. Se configurado para - qualquer coisa exceto yes, então a NIC será ignorada - pelo script de rede e não será levantada automaticamente. A - interface pode ser manualmente iniciada ou parada com os - comandos ifup e - ifdown. -

-

- A variável IFACE define o nome de - interface, por exemplo, eth0. Ela é exigida para todos os - arquivos de configuração de dispositivo de rede. A extensão - de nome de arquivo precisa corresponder a esse valor. -

-

- A variável SERVICE define o método - usado para obter o endereço de IP. O pacote LFS-Bootscripts - tem um formato de atribuição de IP modular, e criar arquivos - adicionais no diretório /lib/services/ permite outros métodos de - atribuição de IP. Isso é comumente usado para Dynamic Host - Configuration Protocol (DHCP), o qual é abordado no livro - BLFS. -

-

- A variável GATEWAY deveria conter - o endereço de IP do gateway padrão, se um estiver presente. - Se não, então comente a variável inteiramente. -

-

- A variável PREFIX contém o número - de bits usados na subrede. Cada octeto em um endereço de IP é - 8 bits. Se a máscara de rede da subrede for 255.255.255.0, - então ela está usando os primeiros três octetos (24 bits) - para especificar o número de rede. Se a máscara de rede for - 255.255.255.240, então ela estaria usando os primeiros 28 - bits. Prefixos mais longos que 24 bits são comumente usados - por Internet Service Providers (ISPs) DSL e baseados em - cabos. Nesse exemplo (PREFIX=24), a máscara de rede é - 255.255.255.0. Ajuste a variável PREFIX de acordo com sua subrede específica. - Se omitida, então o PREFIX padrão é 24. -

-

- Para mais informação veja-se a página de manual do - ifup. -

-
-
-

- 9.5.2. Criando o - Arquivo /etc/resolv.conf -

-

- O sistema precisará de alguma forma de obter resolução de - nome do Domain Name Service (DNS) para resolver nomes de - domínio da Internet para endereços de IP, e vice versa. Isso - é melhor alcançado colocando o endereço de IP do servidor de - DNS, disponível a partir do ISP ou administradora(r) de rede, - no /etc/resolv.conf. Crie o - arquivo executando o seguinte: -

-
cat > /etc/resolv.conf << "EOF"
-# Begin /etc/resolv.conf
-
-domain <Your Domain Name>
-nameserver <IP address of your primary nameserver>
-nameserver <IP address of your secondary nameserver>
-
-# End /etc/resolv.conf
-EOF
-

- A declaração domain pode ser - omitida ou substituída com uma declaração search. Veja-se a página de manual para - resolv.conf para mais detalhes. -

-

- Substitua <IP address of the - nameserver> com o endereço de IP do DNS mais - apropriado para a configuração. Frequentemente existirá mais - que uma entrada (exigências demandam servidores secundários - para capacidade de substituto). Se você precisa ou quer - apenas um servidor de DNS, então remova a segunda linha - nameserver do arquivo. - O endereço de IP também talvez seja um roteador na rede - local. -

-
-

- Nota -

-

- Os endereços DNS IPv4 do Google Public são 8.8.8.8 e 8.8.4.4 para IPv4; e - 2001:4860:4860::8888 e - 2001:4860:4860::8844 para - IPv6. -

-
-
-
-

- 9.5.3. Configurando o nome de - dispositivo do sistema -

-

- Durante o processo de inicialização, o arquivo /etc/hostname é usado para estabelecer o - nome de dispositivo do sistema. -

-

- Crie o arquivo /etc/hostname e - informe um nome de dispositivo executando: -

-
echo "<lfs>" > /etc/hostname
-

- <lfs> precisa - ser substituído com o nome dado para o computador. Não - informe o Fully Qualified Domain Name (FQDN) aqui. Essa - informação é colocada no arquivo /etc/hosts. -

-
-
-

- 9.5.4. - Personalizando o Arquivo /etc/hosts -

-

- Decida acerca do endereço de IP, fully-qualified domain name - (FQDN), e possíveis apelidos para uso no arquivo /etc/hosts. A sintaxe é: -

-
IP_address myhost.example.org aliases
-

- A menos que o computador seja para estar visível para a - Internet (por exemplo, existe um domínio registrado e um - bloco válido de endereços de IP atribuídos—a maioria - das(os) usuárias(os) não tem isso), assegure-se de que o - endereço de IP está no intervalo de endereço de IP de rede - privado. Intervalos válidos são: -

-
Private Network Address Range      Normal Prefix
-10.0.0.1 - 10.255.255.254           8
-172.x.0.1 - 172.x.255.254           16
-192.168.y.1 - 192.168.y.254         24
-

- x pode ser qualquer número no intervalo 16-31. y pode ser - qualquer número no intervalo 0-255. -

-

- Um endereço de IP privado válido poderia ser 192.168.1.1. Um - FQDN válido para esse IP poderia ser lfs.example.org. -

-

- Mesmo se não se usar uma placa de rede, um FQDN válido ainda - é exigido. Isso é necessário para determinados aplicativos - operarem corretamente. -

-

- Crie o arquivo /etc/hosts - executando: -

-
cat > /etc/hosts << "EOF"
-# Begin /etc/hosts
-
-127.0.0.1 localhost.localdomain localhost
-127.0.1.1 <FQDN> <HOSTNAME>
-<192.168.1.1> <FQDN> <HOSTNAME> [alias1] [alias2 ...]
-::1       localhost ip6-localhost ip6-loopback
-ff02::1   ip6-allnodes
-ff02::2   ip6-allrouters
-
-# End /etc/hosts
-EOF
-

- Os valores <192.168.1.1>, - <FQDN> e - <HOSTNAME> - precisam ser mudados para usuárias(os) ou exigências - específicas(os) (se atribuído um endereço de IP por uma(m) - administradora(r) de rede/sistema e a máquina estará - conectada a uma rede existente). O(s) nome(s) de apelido(s) - opcional(is) pode(m) ser omitido(s). -

-

- A entrada ::1 é o homônimo IPv6 do 127.0.0.1 e representa a - interface de loopback IPv6. 127.0.1.1 é uma entrada de - loopback reservada especificamente para o FQDN. -

-
-
-
-
-
-
-

- 9.6. Uso e Configuração do - Script de Inicialização do System V -

-
-
-
-
-

- 9.6.1. Como os Scripts de Inicialização do System V - funcionam? -

-

- O Linux usa um aparato de inicialização especial chamado - SysVinit que é baseado em um conceito de níveis de execução. Isso pode ser - bem diferente de um sistema para outro, de forma que não pode - ser assumido que, porque as coisas funcionam em uma - distribuição do Linux em particular, elas deveriam funcionar - da mesma forma no LFS também. O LFS tem sua própria maneira - de fazer as coisas, mas ele respeita os padrões geralmente - aceitos. -

-

- O SysVinit (o qual será referido como init - daqui pra frente) funciona usando um esquema de níveis de - execução. Existem sete (numerados de 0 a 6) níveis de - execução (atualmente, existem mais níveis de execução, mas - eles são para casos especiais e geralmente não são usados. - Veja-se init(8) para mais - detalhes), e cada um deles corresponde às ações que o - computador é suposto realizar quando ele inicia. O nível de - execução padrão é 3. Aqui estão as descrições dos diferentes - níveis de execução conforme eles estão implementados: -

-
-

- 0: parar o computador
- 1: Modo de usuária(o) única(o)
- 2: Modo de multiusuária(o), sem rede
- - 3: Modo de multiusuária(o), com rede
- - 4: Reservado para personalização, do contrário faz o mesmo que 3
- - 5: Mesmo que 4, ele é usado usualmente para login GUI (como o xdm do X ou o kdm do KDE)
- - 6: reinicializar o computador -

-
-
-
-

- 9.6.2. - Configurando o Sysvinit -

-

- Durante a inicialização do kernel, o primeiro aplicativo que - é executado ou é especificado na linha de comando ou, por - padrão, init. - Esse aplicativo lê o arquivo de inicialização /etc/inittab. Crie esse arquivo com: -

-
cat > /etc/inittab << "EOF"
-# Begin /etc/inittab
-
-id:3:initdefault:
-
-si::sysinit:/etc/rc.d/init.d/rc S
-
-l0:0:wait:/etc/rc.d/init.d/rc 0
-l1:S1:wait:/etc/rc.d/init.d/rc 1
-l2:2:wait:/etc/rc.d/init.d/rc 2
-l3:3:wait:/etc/rc.d/init.d/rc 3
-l4:4:wait:/etc/rc.d/init.d/rc 4
-l5:5:wait:/etc/rc.d/init.d/rc 5
-l6:6:wait:/etc/rc.d/init.d/rc 6
-
-ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
-
-su:S016:once:/sbin/sulogin
-
-1:2345:respawn:/sbin/agetty --noclear tty1 9600
-2:2345:respawn:/sbin/agetty tty2 9600
-3:2345:respawn:/sbin/agetty tty3 9600
-4:2345:respawn:/sbin/agetty tty4 9600
-5:2345:respawn:/sbin/agetty tty5 9600
-6:2345:respawn:/sbin/agetty tty6 9600
-
-# End /etc/inittab
-EOF
-

- Uma explicação desse arquivo de inicialização está na página - de manual para inittab. Para o LFS, o comando - chave que é executado é rc. O arquivo de - inicialização acima instruirá rc a executar todos os - scripts começando com um S no diretório /etc/rc.d/rcS.d seguido por todos os - scripts começando com um S no diretório /etc/rc.d/rc?.d onde o ponto de - interrogação é especificado pelo valor de initdefault. -

-

- Como uma conveniência, o script rc lê uma biblioteca de - funções em /lib/lsb/init-functions. Essa biblioteca - também lê um arquivo de configuração opcional, /etc/sysconfig/rc.site. Quaisquer dos - parâmetros de arquivo de configuração do sistema descritos em - seções subsequentes podem ser alternativamente colocados - nesse arquivo permitindo a consolidação de todos os - parâmetros do sistema nesse único arquivo. -

-

- Como uma conveniência de depuração, o script de funções - também registra todas as saídas para /run/var/bootlog. Dado que o diretório - /run é um tmpfs, esse arquivo - não é persistente ao longo de inicializações, entretanto ele - é adicionado ao arquivo mais permanente /var/log/boot.log ao final do processo de - inicialização. -

-
-
-
-
-

- 9.6.2.1. Mudando Níveis de - Execução -

-
-
-
-

- A mudança de níveis de execução é feita com init <runlevel>, - onde <runlevel> é o nível - de execução alvo. Por exemplo, para reinicializar o - computador, uma(m) usuária(o) poderia emitir o comando - init 6, o - qual é um apelido para o comando reboot. Da mesma forma, - init 0 é um - apelido para o comando halt. -

-

- Existe um número de diretórios sob /etc/rc.d que se parecem com rc?.d (onde ? é o número do nível de - execução) e rcsysinit.d, - todos contendo um número de links simbólicos. Alguns - começam com um K, os - outros começam com um S, e todos eles tem dois números - seguindo a letra inicial. O K significa parar (kill) um - serviço e o S significa iniciar um serviço. Os números - determinam a ordem na qual os scripts são executados, de 00 - a 99—quanto menor o número mais cedo ele se torna - executado. Quando init muda para outro - nível de execução, os serviços adequados são tanto - iniciados quanto parados, dependendo do nível de execução - escolhido. -

-

- Os scripts reais estão em /etc/rc.d/init.d. Eles fazem o trabalho - atual, e os links simbólicos todos apontam para eles. Os - links K e os links S apontam para o mesmo script em - /etc/rc.d/init.d. Isso é - porque os scripts podem ser chamados com parâmetros - diferentes como start, stop, restart, reload e status. Quando um link K é - encontrado, o script apropriado é executado com o argumento - stop. Quando um - link S é encontrado, o script apropriado é executado com o - argumento start. -

-

- Existe uma exceção para essa explicação. Os links que - começam com um S nos - diretórios rc0.d e - rc6.d não farão nada ser - iniciado. Eles serão chamados com o parâmetro stop para parar alguma coisa. - A lógica por trás disso é a de que quando uma(m) usuária(o) - está para reiniciar ou parar o sistema, nada precisa ser - iniciado. O sistema precisa apenas ser parado. -

-

- Estas são descrições do que os argumentos fazem os scripts - fazer: -

-
-
-
- start -
-
-

- O serviço é iniciado. -

-
-
- stop -
-
-

- O serviço é parado. -

-
-
- restart -
-
-

- O serviço é parado e então iniciado novamente. -

-
-
- reload -
-
-

- A configuração do serviço é atualizada. Isso é usado - depois que o arquivo de configuração de um serviço - foi modificado, quando o serviço não precisa ser - reiniciado. -

-
-
- status -
-
-

- Diz se o serviço está executando e com quais PIDs. -

-
-
-
-

- Sinta-se livre para modificar a maneira como o processo de - inicialização funciona (afinal de contas, este é seu - próprio sistema LFS). Os arquivos dados aqui são um exemplo - de como isso pode ser feito. -

-
-
-
-

- 9.6.3. Scripts de Inicialização do Udev -

-

- O script de iniciação /etc/rc.d/init.d/udev inicia o udevd, aciona quaisquer - dispositivos "coldplug" que já tenham sido criados pelo - kernel e aguarda por quaisquer regras para completar. O - script também desconfigura o manuseador do uevent do padrão - do /sbin/hotplug. Isso é feito, - pois o kernel não mais precisa chamar um binário externo. Em - vez disso, o udevd escutará em um - soquete de link de rede os uevents que o kernel gera. -

-

- O script de iniciação /etc/rc.d/init.d/udev_retry - se ocupa de reacionar eventos para subsistemas cujas regras - talvez dependam de sistemas de arquivos que não estão - montados até que o script mountfs seja executado (em - particular, /usr e /var talvez causem isso). Esse script - executa após o script mountfs, de forma que - aquelas regras (se reacionadas) deveriam prosperar na segunda - vez. Ele é configurado a partir do arquivo /etc/sysconfig/udev_retry; quaisquer - palavras nesse arquivo outras que comentários são - consideradas nomes de subsistema para acionar ao tempo de - re-tentativa. Para encontrar o subsistema de um dispositivo, - use udevadm info - --attribute-walk <dispositivo>, onde - <dispositivo> é um caminho absoluto em /dev ou /sys, - tais como /dev/sr0 ou /sys/class/rtc. -

-

- Para informação acerca de carregamento de módulo de kernel e - udev, veja-se Seção 9.3.2.3, - “Carregamento de Módulo”. -

-
-
-

- 9.6.4. - Configurando o Relógio do Sistema -

-

- O script setclock lê a hora a partir - do relógio do hardware, também conhecido como relógio do BIOS - ou do Complementary Metal Oxide Semiconductor (CMOS). Se o - relógio do hardware estiver ajustado para UTC, então esse - script converterá a hora do relógio do hardware para a hora - local usando o arquivo /etc/localtime (o qual diz ao aplicativo - hwclock qual - fuso horário usar). Não existe maneira de detectar se o - relógio do hardware está ou não configurado para UTC, de - forma que isso precisa ser configurado manualmente. -

-

- O aplicativo setclock é executado via - udev quando o kernel detecta - a capacidade do hardware em consequência da inicialização. - Ele também pode ser executado manualmente com o parâmetro - pare para armazenar a hora do sistema para o relógio CMOS. -

-

- Se você não conseguir lembrar se o relógio do hardware está - ou não configurado para UTC, então descubra executando o - comando hwclock --localtime - --show. Isso mostrará o que é a hora atual de - acordo com o relógio do hardware. Se essa hora corresponder à - que o seu relógio diz, então o relógio do hardware está - configurado para hora local. Se a saída originária do - hwclock não for - a hora local, então as chances são as de que ele esteja - configurado para hora UTC. Verifique isso adicionando ou - subtraindo a quantidade apropriada de horas para o fuso - horário à (da) hora mostrada pelo hwclock. Por exemplo, se - você estiver atualmente no fuso horário MST, o qual é - conhecido também como GMT -0700, então adicione sete horas à - hora local. -

-

- Mude o valor da variável UTC - abaixo para um valor de 0 (zero) se o relógio do - hardware NÃO estiver - configurado para hora UTC. -

-

- Crie um novo arquivo /etc/sysconfig/clock executando o seguinte: -

-
cat > /etc/sysconfig/clock << "EOF"
-# Begin /etc/sysconfig/clock
-
-UTC=1
-
-# Set this to any options you might need to give to hwclock,
-# such as machine hardware clock type for Alphas.
-CLOCKPARAMS=
-
-# End /etc/sysconfig/clock
-EOF
-

- Uma boa dica que explica como lidar com hora no LFS está - disponível em - https://www.linuxfromscratch.org/hints/downloads/files/time.txt. - Ela explica problemas como fusos horários, UTC e a variável - de ambiente TZ. -

-
-

- Nota -

-

- Os parâmetros CLOCKPARAMS e UTC também talvez sejam - configurados no arquivo /etc/sysconfig/rc.site. -

-
-
-
-

- 9.6.5. - Configurando o Console do Linux -

-

- Esta seção discute como configurar o script de inicialização - console que - configura o mapa de teclado, fonte do console e nível de - registro do kernel do console. Se caracteres não-ASCII (por - exemplo, o sinal de direitos autorais, o sinal da libra - britânica e o símbolo do Euro) não serão usados e o teclado - for um dos Estados Unidos da América do Norte, então muito - desta seção pode ser saltada. Sem o arquivo de configuração, - (ou configurações equivalentes em rc.site), o script de inicialização - console não - fará nada. -

-

- O script console lê o arquivo - /etc/sysconfig/console para - informação de configuração. Decida qual mapa de teclado e - fonte de tela serão usados. Vários HOWTOs específicos de - idiomas também podem ajudar com isso, veja-se http://www.tldp.org/HOWTO/HOWTO-INDEX/other-lang.html. - Se ainda em dúvida, então olhe nos diretórios /usr/share/keymaps e /usr/share/consolefonts para mapas de - teclado válidos e fontes de tela. Leiam-se as páginas de - manual loadkeys(1) e - setfont(8) para determinar os - argumentos corretos para esses aplicativos. -

-

- O arquivo /etc/sysconfig/console deveria conter - linhas da forma: VARIÁVEL="valor". As seguintes variáveis são - reconhecidas: -

-
-
-
- LOGLEVEL -
-
-

- Essa variável especifica o nível de registro para - mensagens do kernel enviadas para o console como - configurado por dmesg - -n. Níveis válidos são de "1" (sem - mensagens) até "8". O nível padrão é "7". -

-
-
- KEYMAP -
-
-

- Essa variável especifica os argumentos para o - aplicativo loadkeys, - tipicamente, o nome do mapa de teclado a carregar, por - exemplo, it. Se essa variável não - estiver configurada, então o script de inicialização - não executará o aplicativo loadkeys, e o mapa de - teclado do kernel padrão será usado. Observe que uns - poucos mapas de teclado tem múltiplas versões com o - mesmo nome (cz e variantes dele em qwerty/ e qwertz/; - es em olpc/ e qwerty/; e trf em fgGIod/ e qwerty/). - Nesses casos, o diretório pai também deveria ser - especificado (por exemplo, qwerty/es) para garantir que - o mapa de teclado adequado seja carregado. -

-
-
- KEYMAP_CORRECTIONS -
-
-

- Essa (raramente usada) variável especifica os - argumentos para a segunda chamada ao aplicativo - loadkeys. - Isso é útil se o mapa de teclado padrão não for - completamente satisfatório e um pequeno ajuste tenha - que ser feito. Por exemplo, para incluir o símbolo do - Euro em um mapa de teclado que normalmente não o tem, - configure essa variável para euro2. -

-
-
- FONT -
-
-

- Essa variável especifica os argumentos para o - aplicativo setfont. Tipicamente, - isso inclui o nome de fonte, -m, e o nome do mapa de - caracteres de aplicação a carregar. Por exemplo, para - carregar a fonte lat1-16 - juntamente com o mapa de caracteres de aplicação - 8859-1 (já que ele é - apropriado nos Estados Unidos da América do Norte), - configure essa variável para lat1-16 -m - 8859-1. Em modo UTF-8, o kernel - usa o mapa de caracteres de aplicação para conversão - dos códigos de tecla de 8 bits compostos no mapa de - teclado para UTF-8, e assim o argumento do parâmetro - "-m" deveria ser configurado para a codificação dos - códigos de tecla compostos no mapa de teclado. -

-
-
- UNICODE -
-
-

- Configure essa variável para 1, yes ou true para colocar o - console em modo UTF-8. Isso é útil em locales baseados - em UTF-8 e danoso de outra forma. -

-
-
- LEGACY_CHARSET -
-
-

- Para muitos esquemas de teclado, não existe mapa de - teclado Unicode padrão no pacote Kbd. O script de - inicialização console converterá um - mapa de teclado disponível para UTF-8 em tempo real se - essa variável estiver configurada para a codificação do - mapa de teclado não-UTF-8 disponível. -

-
-
-
-

- Alguns exemplos: -

-
-
    -
  • -

    - Para uma configuração não-Unicode, apenas as variáveis - KEYMAP e FONT são geralmente necessárias. Por exemplo, - para uma configuração em polonês, alguém usaria: -

    -
    cat > /etc/sysconfig/console << "EOF"
    -# Begin /etc/sysconfig/console
    -
    -KEYMAP="pl2"
    -FONT="lat2a-16 -m 8859-2"
    -
    -# End /etc/sysconfig/console
    -EOF
    -
  • -
  • -

    - Como mencionado acima, as vezes é necessário ajustar um - mapa de teclado padrão um pouco. O exemplo seguinte - adiciona o símbolo do Euro ao mapa de teclado alemão: -

    -
    cat > /etc/sysconfig/console << "EOF"
    -# Begin /etc/sysconfig/console
    -
    -KEYMAP="de-latin1"
    -KEYMAP_CORRECTIONS="euro2"
    -FONT="lat0-16 -m 8859-15"
    -UNICODE="1"
    -
    -# End /etc/sysconfig/console
    -EOF
    -
  • -
  • -

    - O seguinte é um exemplo habilitado para Unicode para - búlgaro, onde um mapa de teclado UTF-8 padrão existe: -

    -
    cat > /etc/sysconfig/console << "EOF"
    -# Begin /etc/sysconfig/console
    -
    -UNICODE="1"
    -KEYMAP="bg_bds-utf8"
    -FONT="LatArCyrHeb-16"
    -
    -# End /etc/sysconfig/console
    -EOF
    -
  • -
  • -

    - Devido ao uso de uma fonte LatArCyrHeb-16 de 512 glifos - no exemplo anterior, cores brilhantes não mais estão - disponíveis no console do Linux, a menos que uma parte - da RAM usada para armazenamento temporário de dados que - estão esperando para serem enviados para um dispositivo - e que armazene o conteúdo de uma imagem pixel por pixel - seja usada. Se alguém quiser ter cores brilhantes sem - uma parte da RAM usada para armazenamento temporário de - dados que estão esperando para serem enviados para um - dispositivo e que armazene o conteúdo de uma imagem - pixel por pixel e puder viver sem caracteres que não - pertencem a seu idioma, então ainda é possível usar uma - fonte de 256 glifos específica para o idioma, conforme - ilustrado abaixo: -

    -
    cat > /etc/sysconfig/console << "EOF"
    -# Begin /etc/sysconfig/console
    -
    -UNICODE="1"
    -KEYMAP="bg_bds-utf8"
    -FONT="cyr-sun16"
    -
    -# End /etc/sysconfig/console
    -EOF
    -
  • -
  • -

    - O seguinte exemplo ilustra conversão automática de mapa - de teclado de ISO-8859-15 para UTF-8 e habilitação de - teclas mortas em modo Unicode: -

    -
    cat > /etc/sysconfig/console << "EOF"
    -# Begin /etc/sysconfig/console
    -
    -UNICODE="1"
    -KEYMAP="de-latin1"
    -KEYMAP_CORRECTIONS="euro2"
    -LEGACY_CHARSET="iso-8859-15"
    -FONT="LatArCyrHeb-16 -m 8859-15"
    -
    -# End /etc/sysconfig/console
    -EOF
    -
  • -
  • -

    - Alguns mapas de teclado tem teclas mortas (isto é, - teclas que não produzem um carácter por elas próprias, - mas põem um acento no carácter produzido pela próxima - tecla) ou definem regras de composição (tais como: - press - Ctrl+. A E para obter Æ no mapa de - teclado padrão). O Linux-5.16.9 interpreta teclas - mortas e regras de composição no mapa de teclado - corretamente apenas quando os caracteres fonte a serem - compostos juntos não são multibyte. Essa deficiência - não afeta mapas de teclado para idiomas europeus, pois - lá acentos são adicionados a caracteres ASCII não - acentuados, ou dois caracteres ASCII são compostos - juntos. Entretanto, em modo UTF-8 isso é um problema; - por exemplo, para o idioma grego, onde alguém de vez em - quando precisa colocar um acento na letra alpha. A solução é ou - evitar o uso de UTF-8, ou instalar o sistema de janelas - X que não tem essa limitação no manuseio de entradas - dele. -

    -
  • -
  • -

    - Para chinês, japonês, coreano e alguns outros idiomas, - o console do Linux não pode ser configurado para exibir - os caracteres necessários. Usuárias(os) que precisam de - tais idiomas deveriam instalar o Sistema de Janelas X, - fontes que cobrem os intervalos de caracteres - necessários, e o método de entrada adequado (por - exemplo, SCIM, suporta uma ampla variedade de idiomas). -

    -
  • -
-
-
-

- Nota -

-

- O arquivo /etc/sysconfig/console apenas controla a - localização do console de texto do Linux. Ele não tem nada - a ver com configurar o esquema de teclado adequado e fontes - de terminal no Sistema de Janelas X; com sessões do ssh; ou - com um console serial. Em tais situações, as limitações - mencionadas nos últimos dois itens de lista acima não se - aplicam. -

-
-
-
-

- 9.6.6. Criando Arquivos na - Inicialização -

-

- De vez em quando, é desejável criar arquivos em tempo de - inicialização. Por exemplo, o diretório /tmp/.ICE-unix frequentemente é necessário. - Isso pode ser feito criando-se uma entrada no script de - configuração /etc/sysconfig/createfiles. O formato desse - arquivo está embutido nos comentários do arquivo de - configuração padrão. -

-
-
-

- 9.6.7. Configurando o Script - sysklogd -

-

- O script sysklogd invoca o - aplicativo syslogd como uma parte da - inicialização do System V. A opção -m 0 desliga a marca de carimbo - de tempo periódica que o syslogd escreve nos - arquivos de registro a cada 20 minutos por padrão. Se você - quiser ligar essa marca de carimbo de tempo periódica, então - edite /etc/sysconfig/rc.site e - defina a variável SYSKLOGD_PARMS para o valor desejado. Por - exemplo, para remover todos os parâmetros, configure a - variável para um valor nulo: -

-
SYSKLOGD_PARMS=
-

- Veja-se man - syslogd para mais opções. -

-
-
-

- 9.6.8. O - Arquivo rc.site -

-

- O arquivo opcional /etc/sysconfig/rc.site contém configurações - que são automaticamente configuradas para cada script de - inicialização do SystemV. Ele pode alternativamente - configurar os valores especificados nos arquivos hostname, console e clock no diretório /etc/sysconfig/. Se as variáveis associadas - estiverem presentes em ambos desses arquivos separados e - rc.site, então os valores nos - arquivos específicos de script tem precedência. -

-

- rc.site também contém - parâmetros que podem personalizar outros aspectos do processo - de inicialização. Configurar a variável IPROMPT habilitará a - execução seletiva de scripts de inicialização. Outras opções - estão descritas nos comentários de arquivo. A versão padrão - do arquivo é como se segue: -

-
# rc.site
-# Optional parameters for boot scripts.
-
-# Distro Information
-# These values, if specified here, override the defaults
-#DISTRO="Linux From Scratch" # The distro name
-#DISTRO_CONTACT="lfs-dev@linuxfromscratch.org" # Bug report address
-#DISTRO_MINI="LFS" # Short name used in filenames for distro config
-
-# Define custom colors used in messages printed to the screen
-
-# Please consult `man console_codes` for more information
-# under the "ECMA-48 Set Graphics Rendition" section
-#
-# Warning: when switching from a 8bit to a 9bit font,
-# the linux console will reinterpret the bold (1;) to
-# the top 256 glyphs of the 9bit font.  This does
-# not affect framebuffer consoles
-
-# These values, if specified here, override the defaults
-#BRACKET="\\033[1;34m" # Blue
-#FAILURE="\\033[1;31m" # Red
-#INFO="\\033[1;36m"    # Cyan
-#NORMAL="\\033[0;39m"  # Grey
-#SUCCESS="\\033[1;32m" # Green
-#WARNING="\\033[1;33m" # Yellow
-
-# Use a colored prefix
-# These values, if specified here, override the defaults
-#BMPREFIX="      "
-#SUCCESS_PREFIX="${SUCCESS}  *  ${NORMAL} "
-#FAILURE_PREFIX="${FAILURE}*****${NORMAL} "
-#WARNING_PREFIX="${WARNING} *** ${NORMAL} "
-
-# Manually seet the right edge of message output (characters)
-# Useful when resetting console font during boot to override
-# automatic screen width detection
-#COLUMNS=120
-
-# Interactive startup
-#IPROMPT="yes" # Whether to display the interactive boot prompt
-#itime="3"    # The amount of time (in seconds) to display the prompt
-
-# The total length of the distro welcome string, without escape codes
-#wlen=$(echo "Welcome to ${DISTRO}" | wc -c )
-#welcome_message="Welcome to ${INFO}${DISTRO}${NORMAL}"
-
-# The total length of the interactive string, without escape codes
-#ilen=$(echo "Press 'I' to enter interactive startup" | wc -c )
-#i_message="Press '${FAILURE}I${NORMAL}' to enter interactive startup"
-
-# Set scripts to skip the file system check on reboot
-#FASTBOOT=yes
-
-# Skip reading from the console
-#HEADLESS=yes
-
-# Write out fsck progress if yes
-#VERBOSE_FSCK=no
-
-# Speed up boot without waiting for settle in udev
-#OMIT_UDEV_SETTLE=y
-
-# Speed up boot without waiting for settle in udev_retry
-#OMIT_UDEV_RETRY_SETTLE=yes
-
-# Skip cleaning /tmp if yes
-#SKIPTMPCLEAN=no
-
-# For setclock
-#UTC=1
-#CLOCKPARAMS=
-
-# For consolelog (Note that the default, 7=debug, is noisy)
-#LOGLEVEL=7
-
-# For network
-#HOSTNAME=mylfs
-
-# Delay between TERM and KILL signals at shutdown
-#KILLDELAY=3
-
-# Optional sysklogd parameters
-#SYSKLOGD_PARMS="-m 0"
-
-# Console parameters
-#UNICODE=1
-#KEYMAP="de-latin1"
-#KEYMAP_CORRECTIONS="euro2"
-#FONT="lat0-16 -m 8859-15"
-#LEGACY_CHARSET=
-
-
-
-
-
-
-

- 9.6.8.1. Personalizando os - Scripts de Inicialização e Desligamento -

-
-
-
-

- Os scripts de inicialização do LFS inicializam e desligam - um sistema de uma maneira bastante eficiente, porém existem - uns poucos ajustes que você pode fazer no arquivo rc.site - para aumentar a velocidade ainda mais e ajustar mensagens - de acordo com suas preferências. Para fazer isso, ajuste as - configurações no arquivo /etc/sysconfig/rc.site acima. -

-
-
    -
  • -

    - Durante o script de inicialização udev, existe uma chamada para - udev - settle que exige algum tempo para - completar. Esse tempo talvez ou talvez não seja - exigido dependendo dos dispositivos presentes no - sistema. Se você tiver apenas partições simples e uma - placa ethernet, [então] o processo de inicialização - provavelmente não precisará esperar por esse comando. - Para pular ele, configure a variável - OMIT_UDEV_SETTLE=y. -

    -
  • -
  • -

    - O script de inicialização udev_retry também executa - udev - settle por padrão. Esse comando é - necessário por padrão somente se o diretório - /var for montado - separadamente. Isso é porque o relógio precisa do - arquivo /var/lib/hwclock/adjtime. Outras - personalizações talvez também precisem esperar que o - udev complete, porém em muitas instalações ele não é - necessário. Pule o comando configurando a variável - OMIT_UDEV_RETRY_SETTLE=y. -

    -
  • -
  • -

    - Por padrão, as verificações do sistema de arquivos - são silenciosas. Isso pode parecer um atraso durante - o processo de inicialização. Para ligar a saída do - fsck, - configure a variável VERBOSE_FSCK=y. -

    -
  • -
  • -

    - Quando reinicializar, você talvez queira pular a - verificação do sistema de arquivos, fsck, - completamente. Para fazer isso, ou crie o arquivo - /fastboot ou - reinicialize o sistema com o comando /sbin/shutdown -f -r - now. Por outro lado, você pode forçar - que todos os sistemas de arquivos sejam verificados - criando /forcefsck ou - executando shutdown com o - parâmetro -F - em vez de -f. -

    -

    - Configurar a variável FASTBOOT=y desabilitará - fsck - durante o processo de inicialização até que ela seja - removida. Isso não é recomendado em uma base - permanente. -

    -
  • -
  • -

    - Normalmente, todos os arquivos no diretório - /tmp são deletados em - tempo de inicialização. Dependendo do número de - arquivos ou diretórios presentes, isso pode causar um - atraso notável no processo de inicialização. Para - pular a remoção desses arquivos configure a variável - SKIPTMPCLEAN=y. -

    -
  • -
  • -

    - Durante o desligamento, o aplicativo init envia um sinal - TERM para cada aplicativo que ele iniciou (por - exemplo agetty), espera um tempo configurado (padrão - 3 segundos), e envia a cada processo um sinal KILL e - aguarda novamente. Esse processo é repetido no script - sendsignals para - quaisquer processos que não sejam desligados pelos - scripts próprios deles. O atraso para init pode ser - configurado passando um parâmetro. Por exemplo para - remover o atraso em init, passe o - parâmetro -t0 quando desligar ou reinicializar (por - exemplo /sbin/shutdown - -t0 -r now). O atraso para o script - sendsignals pode - ser pulado configurando o parâmetro KILLDELAY=0. -

    -
  • -
-
-
-
-
-
-
-
-
-

- 9.7. Os Arquivos de - Inicialização de Shell do Bash -

-
-
-
-

- O aplicativo de shell /bin/bash (daqui por diante - referenciado como o shell) usa uma coleção de - arquivos de inicialização para auxiliar a criar um ambiente - para executar dentro. Cada arquivo tem um uso específico e - talvez afete o login e ambientes interativos diferentemente. Os - arquivos no diretório /etc - fornecem configurações globais. Se um arquivo equivalente - existir no diretório home, [então] ele talvez substitua as - configurações globais. -

-

- Um shell de login interativo é iniciado após um login bem - sucedido, usando o /bin/login, lendo o arquivo - /etc/passwd. Um shell de - não-login interativo é iniciado na linha de comando (por - exemplo, [prompt]$/bin/bash). Um shell - não-interativo está geralmente presente quando um script de - shell está executando. Ele é não-interativo porque ele está - processando um script e não esperando pela entrada de - usuária(o) entre comandos. -

-

- Para mais informação, veja-se info bash sob a seção - Arquivos de Inicialização do Bash e - Shells Interativos. -

-

- Os arquivos /etc/profile e - ~/.bash_profile são lidos quando - o shell é invocado como um shell de login interativo. -

-

- O /etc/profile de base abaixo - configura algumas variáveis de ambiente necessárias para o - suporte ao idioma nativo. Configurá-las adequadamente resulta - em: -

-
-
    -
  • -

    - A saída dos aplicativos traduzida para o idioma nativo -

    -
  • -
  • -

    - Classificação correta dos caracteres em letras, dígitos e - outras classes. Isso é necessário para o bash aceitar - adequadamente caracteres não ASCII em linhas de comando - em locales não ingleses -

    -
  • -
  • -

    - A sequência de ordenação alfabética correta para o país -

    -
  • -
  • -

    - Tamanho de papel padrão apropriado -

    -
  • -
  • -

    - Formatação correta de valores monetário, hora e data -

    -
  • -
-
-

- Substitua <ll> - abaixo com o código de duas letras para o idioma desejado (por - exemplo, en) e <CC> com o código de duas - letras para o país apropriado (por exemplo, GB). - <charmap> - deveria ser substituído com o mapa de caracteres canônico para - seu locale escolhido. Modificadores opcionais, tais como - @euro, talvez também estejam - presentes. -

-

- A lista de todos os locales suportados pela Glibc pode ser - obtida executando o seguinte comando: -

-
locale -a
-

- Mapas de caracteres podem ter um número de apelidos, por - exemplo, ISO-8859-1 também é referenciado - como iso8859-1 e iso88591. Alguns aplicativos não - podem lidar com os vários sinônimos corretamente (por exemplo, - exigem que UTF-8 seja escrito como - UTF-8, não utf8), - de forma que é mais seguro, na maioria dos casos, escolher o - nome canônico para um locale particular. Para determinar o nome - canônico, execute o seguinte comando, onde <locale name> é a saída - dada por locale - -a para seu locale preferido (en_GB.iso88591 no nosso exemplo). -

-
LC_ALL=<locale name> locale charmap
-

- Para o locale en_GB.iso88591, o comando acima - imprimirá: -

-
ISO-8859-1
-

- Isso resulta em uma configuração de locale final de - en_GB.ISO-8859-1. É importante que - o locale encontrado usando a heurística acima seja testado - antes que ele seja adicionado aos arquivos de inicialização do - Bash: -

-
LC_ALL=<locale name> locale language
-LC_ALL=<locale name> locale charmap
-LC_ALL=<locale name> locale int_curr_symbol
-LC_ALL=<locale name> locale int_prefix
-

- Os comandos acima deveriam imprimir o nome do idioma, a - codificação de caracteres usada pelo locale, a moeda local, e o - prefixo para discar antes do número de telefone para se - alcançar o país. Se quaisquer dos comandos acima falharem com - uma mensagem similar àquela mostrada abaixo, [então] isso - significa que seu locale ou não foi instalado no Seção 8.5, “Glibc-2.35” - ou não é suportado pela instalação padrão da Glibc. -

-
locale: Cannot set LC_* to default locale: No such file or directory
-

- Se isso acontecer, [então] você deveria instalar o locale - desejado usando o comando localedef, ou considere - escolher um locale diferente. As instruções posteriores assumem - que não existem tais mensagens de erro originárias da Glibc. -

-

- Outros pacotes também podem funcionar incorretamente (mas - talvez não necessariamente exibam quaisquer mensagens de erro) - se o nome do locale não corresponder às expectativas deles. - Nesses casos, investigar como outras distribuições do Linux - suportam seu locale poderia fornecer alguma informação útil. -

-

- Uma vez que as configurações de locale adequadas tenham sido - determinadas, crie o arquivo /etc/profile: -

-
cat > /etc/profile << "EOF"
-# Begin /etc/profile
-
-export LANG=<ll>_<CC>.<charmap><@modifiers>
-
-# End /etc/profile
-EOF
-

- Os locales C (padrão) e en_US.utf8 (aquele recomendado - para usuárias(os) do inglês dos Estados Unidos da América do - Norte) são diferentes. C usa o conjunto de caracteres de - 7 bits US-ASCII, e trata bytes com o bit alto configurado como - caracteres inválidos. Esse é o porquê, por exemplo, do comando - ls substituir - eles com pontos de interrogação nesse locale. Também, uma - tentativa de enviar correio com tais caracteres a partir do - Mutt ou Pine resulta em mensagens de não conformidade com RFC - sendo enviadas (o conjunto de caracteres no correio de saída é - indicado como unknown 8-bit). Então você pode - usar o locale C apenas se você tiver certeza de - que nunca precisará de caracteres de 8 bits. -

-

- Locales baseados em UTF-8 não são bem suportados por alguns - aplicativos. Trabalho está em progresso para documentar e, se - possível, consertar tais problemas, veja-se - https://www.linuxfromscratch.org/blfs/view/11.1/introduction/locale-issues.html. -

-
-
-
-
-
-

- 9.8. Criando o Arquivo - /etc/inputrc -

-
-
-
-

- O arquivo inputrc é o arquivo de - configuração para a biblioteca readline, a qual fornece - capacidades de edição enquanto a(o) usuária(o) estiver - digitando uma linha a partir do terminal. Ele funciona - traduzindo entradas de teclado em ações específicas. Readline é - usada pelo bash e maioria dos outros shells, bem como muitos - outros aplicativos. -

-

- A maioria das pessoas não necessita de funcionalidade - específica de usuária(o), de forma que o comando abaixo cria um - /etc/inputrc global usado por - qualquer uma(m) que se logue. Se você mais tarde decidir que - você precisa sobrepor os padrões em uma base por usuária(o), - [então] você pode criar um arquivo .inputrc no diretório home da(o) usuária(o) - com os mapeamentos modificados. -

-

- Para mais informação sobre como editar o arquivo inputrc, veja-se info bash sob a seção - Readline Init File. - info readline é - também uma boa fonte de informação. -

-

- Abaixo está um inputrc global - genérico junto com comentários para explicar o que as várias - opções fazem. Observe que comentários não podem estar na mesma - linha que comandos. Crie o arquivo usando o seguinte comando: -

-
cat > /etc/inputrc << "EOF"
-# Begin /etc/inputrc
-# Modified by Chris Lynn <roryo@roryo.dynup.net>
-
-# Allow the command prompt to wrap to the next line
-set horizontal-scroll-mode Off
-
-# Enable 8bit input
-set meta-flag On
-set input-meta On
-
-# Turns off 8th bit stripping
-set convert-meta Off
-
-# Keep the 8th bit for display
-set output-meta On
-
-# none, visible or audible
-set bell-style none
-
-# All of the following map the escape sequence of the value
-# contained in the 1st argument to the readline specific functions
-"\eOd": backward-word
-"\eOc": forward-word
-
-# for linux console
-"\e[1~": beginning-of-line
-"\e[4~": end-of-line
-"\e[5~": beginning-of-history
-"\e[6~": end-of-history
-"\e[3~": delete-char
-"\e[2~": quoted-insert
-
-# for xterm
-"\eOH": beginning-of-line
-"\eOF": end-of-line
-
-# for Konsole
-"\e[H": beginning-of-line
-"\e[F": end-of-line
-
-# End /etc/inputrc
-EOF
-
-
-
-
-
-

- 9.9. Criando o Arquivo - /etc/shells -

-
-
-
-

- O arquivo shells contém uma lista - dos shells de login no sistema. Os aplicativos usam esse - arquivo para determinar quando um shell é válido. Para cada - shell, uma linha única deveria estar presente, consistindo do - caminho do shell relativo à raiz da estrutura de diretório (/). -

-

- Por exemplo, esse arquivo é consultado pelo chsh para determinar quando - uma usuária desprivilegiada possa mudar o shell de login para a - própria conta dela. Se o nome de comando não estiver listado, - [então] a usuária terá negada a habilidade de mudar shells. -

-

- É uma exigência para aplicativos tais como GDM o qual não publiciza o navegador de - face se ele não puder encontrar /etc/shells, ou daemons do FTP os quais - tradicionalmente proíbem acesso a usuárias(os) com shells não - incluídos nesse arquivo. -

-
cat > /etc/shells << "EOF"
-# Begin /etc/shells
-
-/bin/sh
-/bin/bash
-
-# End /etc/shells
-EOF
-
-
-
-
-
-
-

- Capítulo 10. Tornando o - Sistema LFS Inicializável -

-
-
-
-
-
-
-
-

- 10.1. Introdução -

-
-
-
-

- É hora de tornar o sistema LFS inicializável. Este capítulo - discute a criação do arquivo /etc/fstab; construção de um kernel para o - novo sistema LFS; e instalação do carregador de inicialização - GRUB, de modo que o sistema LFS possa ser selecionado para - iniciar durante a inicialização. -

-
-
-
-
-
-

- 10.2. Criando o Arquivo - /etc/fstab -

-
-
-
-

- O arquivo /etc/fstab é usado por - alguns aplicativos para determinar onde sistemas de arquivos - são para serem montados por padrão; em qual ordem; e quais - precisam ser verificados (para erros de integridade) antes da - montagem. Crie uma nova tabela de sistemas de arquivos como - esta: -

-
cat > /etc/fstab << "EOF"
-# Begin /etc/fstab
-
-# file system  mount-point  type     options             dump  fsck
-#                                                              order
-
-/dev/<xxx>     /            <fff>    defaults            1     1
-/dev/<yyy>     swap         swap     pri=1               0     0
-proc           /proc        proc     nosuid,noexec,nodev 0     0
-sysfs          /sys         sysfs    nosuid,noexec,nodev 0     0
-devpts         /dev/pts     devpts   gid=5,mode=620      0     0
-tmpfs          /run         tmpfs    defaults            0     0
-devtmpfs       /dev         devtmpfs mode=0755,nosuid    0     0
-
-# End /etc/fstab
-EOF
-

- Substitua <xxx>; <yyy>; e <fff> com os valores - apropriados para o sistema, por exemplo, sda2; sda5; e - ext4. Para detalhes sobre os - seis campos nesse arquivo, veja-se man 5 fstab. -

-

- Sistemas de arquivos com origem MS-DOS ou Windows (isto é, - vfat, ntfs, smbfs, cifs, iso9660, udf) precisam de uma opção - especial, utf8, para a finalidade de caracteres não ASCII nos - nomes de arquivo serem interpretados corretamente. Para locales - não UTF-8, o valor de iocharset - deveria ser configurado para ser o mesmo que o conjunto de - caracteres do locale, ajustado de tal maneira que o kernel o - entenda. Isso funciona se a definição de conjunto de caracteres - relevante (encontrada sob File systems -> Native Language - Support quando da configuração do kernel) tenha sido compilada - no kernel ou construída como um módulo. Entretanto, se o - conjunto de caracteres do locale for UTF-8, [então] a - correspondente opção iocharset=utf8 - tornaria o sistema de arquivo sensível a maiúsculas e - minúsculas. Para consertar isso, use a opção especial - utf8 em vez de iocharset=utf8, para locales UTF-8. A opção - codepage também é necessária para - sistemas de arquivos vfat e smbfs. Ela deveria ser configurada - para o número da página de código usada sob MS-DOS em seu país. - Por exemplo, para montar controladores flash USB, uma(m) - usuária(o) do ru_RU.KOI8-R precisaria do seguinte na porção de - opções da linha mount dele em /etc/fstab: -

-
noauto,user,quiet,showexec,codepage=866,iocharset=koi8r
-

- O correspondente fragmento das opções para usuárias(os) do - ru_RU.UTF-8 é: -

-
noauto,user,quiet,showexec,codepage=866,utf8
-

- Observe que usar iocharset é o - padrão para iso8859-1 (a qual - mantém o sistema de arquivo insensível a maiúsculas e - minúsculas), e a opção utf8 diz ao - kernel para converter os nomes de arquivo usando UTF-8, de - forma que eles podem ser interpretados no locale UTF-8. -

-

- É possível também especificar os valores de página de código e - iocharset padrão para alguns sistemas de arquivos durante a - configuração do kernel. Os parâmetros relevantes são chamados - de Default NLS - Option (CONFIG_NLS_DEFAULT); Default Remote NLS - Option (CONFIG_SMB_NLS_DEFAULT); Default codepage for - FAT (CONFIG_FAT_DEFAULT_CODEPAGE); e Default iocharset for - FAT (CONFIG_FAT_DEFAULT_IOCHARSET). Não há maneira - de especificar essas configurações para o sistema de arquivos - ntfs em tempo de compilação do kernel. -

-

- É possível tornar o sistema de arquivos ext3 confiável em casos - de falhas de eletricidade para alguns tipos de disco rígido. - Para fazer isso, adicione a opção de montagem barrier=1 para a entrada apropriada em - /etc/fstab. Para verificar se o - controlador de disco suporta essa opção, execute - hdparm no controlador de disco aplicável. Por exemplo, se: -

-
hdparm -I /dev/sda | grep NCQ
-

- retornar uma saída não vazia, [então] a opção é suportada. -

-

- Nota: partições baseadas em Logical Volume Management (LVM) não - podem usar a opção barrier. -

-
-
-
-
-
-

- 10.3. Linux-5.16.9 -

-
-
-
-
-

- O pacote Linux contém o kernel do Linux. -

-
-
-
- Tempo aproximado de - construção: 1,5 - 130,0 - UPC (tipicamente cerca de 12 UPC) -
-
- Espaço em disco - exigido: 1200 - 8800 MB - (tipicamente cerca de 1700 MB) -
-
-
-
-
-

- 10.3.1. Instalação do kernel -

-

- Construir o kernel envolve uns poucos - passos—configuração; compilação; e instalação. Leia o - arquivo README na árvore do - fonte do kernel para métodos alternativos à maneira que este - livro configura o kernel. -

-

- Prepare para compilação executando o seguinte comando: -

-
make mrproper
-

- Isso garante que a árvore do kernel esteja absolutamente - limpa. O time do kernel recomenda que esse comando seja - executado antes de cada compilação do kernel. Não confie que - a árvore do fonte esteja limpa após descompactar. -

-

- Existem muitas maneiras de configurar as opções do kernel. - Usualmente, isso é feito por meio de uma interface controlada - por menu, por exemplo: -

-
make menuconfig
-
-

- O significado das variáveis de ambiente do make - opcionais: -

-
-
- LANG=<host_LANG_value> - LC_ALL= -
-
-

- Isso estabelece a configuração do locale para aquela - usada no anfitrião. Isso talvez seja necessário para um - adequado desenho de linha da interface ncurses do - menuconfig em um console de texto linux UTF-8. -

-

- Se usada, [então] assegure-se de substituir <host_LANG_value> - pelo valor da variável $LANG - oriunda do seu anfitrião. Você pode, alternativamente, - usar, em vez disso, o valor do anfitrião de - $LC_ALL ou $LC_CTYPE. -

-
-
- make - menuconfig -
-
-

- Isso lança uma interface controlada por menu ncurses. - Para outras (gráficas) interfaces, digite make help. -

-
-
-
-

- Para informação geral sobre configuração do kernel, veja-se - - https://www.linuxfromscratch.org/hints/downloads/files/kernel-configuration.txt. - O BLFS tem alguma informação relativa a exigências de - configuração do kernel particulares de pacotes que estão fora - do LFS em - https://www.linuxfromscratch.org/blfs/view/11.1/longindex.html#kernel-config-index. - Informação adicional sobre configurar e construir o kernel - pode ser encontrada em http://www.kroah.com/lkn/ -

-
-

- Nota -

-

- Um bom ponto de partida para configurar a configuração do - kernel é executar make - defconfig. Isso configurará a configuração - base para um bom estado que leve a sua atual arquitetura de - sistema em conta. -

-

- Assegure-se de habilitar/desabilitar/configurar as - seguintes características ou o sistema poderia não - funcionar corretamente ou inicializar de forma alguma: -

-
General setup -->
-   < > Enable kernel headers through /sys/kernel/kheaders.tar.xz [CONFIG_IKHEADERS]
-Device Drivers  --->
-  Graphics support --->
-   Frame buffer Devices --->
-      [*] Support for frame buffer devices ----
-  Generic Driver Options  --->
-   [ ] Support for uevent helper [CONFIG_UEVENT_HELPER]
-   [*] Maintain a devtmpfs filesystem to mount at /dev [CONFIG_DEVTMPFS]
-
-

- Existem muitas outras opções que talvez sejam desejadas, - dependendo das exigências para o sistema. Para uma lista das - opções necessárias para pacotes do BLFS, veja-se o - Índice BLFS das Configurações do Kernel - (https://www.linuxfromscratch.org/blfs/view/11.1/longindex.html#kernel-config-index). -

-
-

- Nota -

-

- Se seu hardware do anfitrião estiver usando UEFI e você - desejar inicializar o sistema LFS com ela, [então] você - deveria ajustar alguma configuração do kernel seguindo - - a página do BLFS. -

-
-
-

- A justificativa para os itens de configuração - acima: -

-
-
- Enable - kernel headers through - /sys/kernel/kheaders.tar.xz -
-
-

- Isso exigirá cpio ao se construir - o kernel. cpio não é instalado - por LFS. -

-
-
- Support - for uevent helper -
-
-

- Ter essa opção configurada talvez interfira com o - gerenciamento de dispositivo quando se usar Udev/Eudev. -

-
-
- Maintain a - devtmpfs -
-
-

- Isso criará nós de dispositivos automatizados os quais - são povoados pelo kernel, mesmo sem o Udev executando. - O Udev então executa no topo disso, gerenciando - permissões e adicionando links simbólicos. Esse item de - configuração é exigido para todas(os) as(os) - usuárias(os) do Udev/Eudev. -

-
-
-
-

- Alternativamente, make - oldconfig talvez seja mais apropriado em - algumas situações. Veja-se o arquivo README para mais informação. -

-

- Se desejado, [então] pule a configuração do kernel copiando o - arquivo config do kernel, .config, a partir do sistema anfitrião - (assumindo que ele esteja disponível) para o diretório - linux-5.16.9 desempacotado. - Entretanto, nós não recomendamos essa opção. Frequentemente é - melhor explorar todos os menus de configuração e criar a - configuração do kernel a partir do zero. -

-

- Compile a imagem do kernel e módulos: -

-
make
-

- Se usar módulos do kernel, [então] a configuração do módulo - em /etc/modprobe.d talvez seja - exigida. Informação pertinente à configuração de módulos e - kernel está localizada na Seção 9.3, - “Visão Geral do Manuseio de Dispositivos e - Módulos” e na documentação do kernel no diretório - linux-5.16.9/Documentation. - Também, modprobe.d(5) talvez - seja de interesse. -

-

- A menos que o suporte de módulo tenha sido desabilitado na - configuração do kernel, instale os módulos com: -

-
make modules_install
-

- Depois que a compilação do kernel estiver completa, passos - adicionais são exigidos para completar a instalação. Alguns - arquivos precisam ser copiados para o diretório /boot. -

-
-

- Cuidado -

-

- Se o sistema anfitrião tiver uma partição /boot separada, - [então] os arquivos copiados abaixo deveriam ir para lá. A - maneira mais fácil de fazer isso é vincular /boot no - anfitrião (do lado de fora do chroot) à /mnt/lfs/boot antes - de prosseguir. Como a(o) usuária(o) root no sistema anfitrião: -

-
mount --bind /boot /mnt/lfs/boot
-
-

- O caminho para a imagem do kernel talvez varie, dependendo da - plataforma sendo usada. O nome de arquivo abaixo pode ser - mudado para se adequar ao seu gosto, porém o tronco do nome - de arquivo deveria ser vmlinuz para ser compatível com a - configuração automática do processo de inicialização descrito - na próxima seção. O seguinte comando assume uma arquitetura - x86: -

-
cp -iv arch/x86/boot/bzImage /boot/vmlinuz-5.16.9-lfs-11.1
-

- System.map é um arquivo de - símbolo para o kernel. Ele mapeia os pontos de entrada de - função de cada função na API do kernel, assim como os - endereços das estruturas de dados do kernel para o kernel em - execução. Ele é usado como um recurso quando se investigar - problemas do kernel. Emita o seguinte comando para instalar o - arquivo de mapa: -

-
cp -iv System.map /boot/System.map-5.16.9
-

- O arquivo de configuração do kernel .config produzido pelo passo make menuconfig acima - contém todas as seleções de configuração para o kernel que - foi recém compilado. É uma boa ideia manter esse arquivo para - futura referência: -

-
cp -iv .config /boot/config-5.16.9
-

- Instale a documentação para o kernel do Linux: -

-
install -d /usr/share/doc/linux-5.16.9
-cp -r Documentation/* /usr/share/doc/linux-5.16.9
-

- É importante observar que os arquivos no diretório do fonte - do kernel não são de propriedade da(o) root. Sempre que um pacote é - desempacotado como a(o) usuária(o) root (como nós fizemos dentro do - chroot), os arquivos tem os IDs de usuária(o) e grupo do que - quer que fossem no computador da(o) empacotadora(r). Isso - geralmente não é um problema para qualquer outro pacote ser - instalado, pois a árvore do fonte é removida depois da - instalação. Entretanto, a árvore do fonte do Linux - frequentemente é mantida por um longo tempo. Devido a isso, - existe uma chance de que qualquer ID de usuária(o) que a(o) - empacotadora(r) usou será atribuído para alguém na máquina. - Essa pessoa então teria acesso de escrita ao fonte do kernel. -

-
-

- Nota -

-

- Em muitos casos, a configuração do kernel precisará ser - atualizada para pacotes que serão instalados posteriormente - em BLFS. Diferente de outros pacotes, não é necessário - remover a árvore do fonte do kernel depois que o recém - construído kernel for instalado. -

-

- Se a árvore do fonte do kernel será mantida, [então] - execute chown -R - 0:0 no diretório linux-5.16.9 para assegurar que todos os - arquivos são de propriedade da(o) usuária(o) root. -

-
-
-

- Atenção -

-

- Alguma documentação do kernel recomenda criar um link - simbólico a partir de /usr/src/linux apontando para o diretório - do fonte do kernel. Isso é específico para kernels - anteriores à série 2.6 e precisa - não ser criado em um sistema LFS, uma vez que - ele pode causar problemas para pacotes que você talvez - deseje construir tão logo seu sistema LFS base esteja - completo. -

-
-
-

- Atenção -

-

- Os cabeçalhos no diretório include do sistema (/usr/include) deveriam sempre ser aqueles contra os - quais a Glibc foi compilada, isto é, os cabeçalhos - sanitizados instalados na Seção 5.4, - “Cabeçalhos da API do Linux-5.16.9”. - Portanto, eles nunca - deveriam ser substituídos tanto pelos cabeçalhos do kernel - crus quanto por quaisquer outros cabeçalhos sanitizados do - kernel. -

-
-
-
-

- 10.3.2. - Configurando a Ordem de Carregamento de Módulos do Linux -

-

- Na maior parte do tempo, os módulos do Linux são carregados - automaticamente, porém algumas vezes precisa-se de alguma - direção específica. O aplicativo que carrega os módulos, - modprobe ou - insmod, usa - /etc/modprobe.d/usb.conf para - esse propósito. Esse arquivo precisa ser criado, de forma - que, se os controladores do USB (ehci_hcd, ohci_hcd e - uhci_hcd) tiverem sido construídos como módulos, [então] eles - serão carregados na ordem correta; ehci_hcd precisa ser - carregado antes de ohci_hcd e uhci_hcd para evitar um aviso - sendo produzido em tempo de inicialização. -

-

- Crie um novo arquivo /etc/modprobe.d/usb.conf executando o - seguinte: -

-
install -v -m755 -d /etc/modprobe.d
-cat > /etc/modprobe.d/usb.conf << "EOF"
-# Begin /etc/modprobe.d/usb.conf
-
-install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true
-install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i uhci_hcd ; true
-
-# End /etc/modprobe.d/usb.conf
-EOF
-
-
-

- 10.3.3. - Conteúdo do Linux -

-
-
-
- Arquivos instalados: - config-5.16.9, - vmlinuz-5.16.9-lfs-11.1 e System.map-5.16.9 -
-
- Diretórios instalados: - /lib/modules e - /usr/share/doc/linux-5.16.9 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - -
-

- config-5.16.9 -

-
-

- Contém todas as seleções de configuração para o - kernel -

-
-

- vmlinuz-5.16.9-lfs-11.1 -

-
-

- O motor do sistema Linux. Quando se liga o - computador, o kernel é a primeira parte do sistema - operacional que se torna carregada. Ele detecta e - inicializa todos os componentes do hardware do - computador, então torna esses componentes - disponíveis como uma árvore de arquivos para o - software e transforma uma CPU individual em uma - máquina multitarefa capaz de executar dezenas de - aplicativos aparentemente ao mesmo tempo -

-
-

- System.map-5.16.9 -

-
-

- Uma lista de endereços e símbolos; ele mapeia os - pontos de entrada e endereços de todas as funções e - estruturas de dados no kernel -

-
-
-
-
-
-
-
-
-

- 10.4. Usando o GRUB para - Configurar o Processo de Inicialização -

-
-
-
-
-

- Nota -

-

- Se seu sistema tiver suporte UEFI e você desejar inicializar - o LFS com UEFI, [então] você deveria pular esta página, e - configurar o GRUB com suporte UEFI usando as instruções - fornecidas na - página do BLFS. -

-
-
-

- 10.4.1. Introdução -

-
-

- Atenção -

-

- Configurar o GRUB incorretamente pode tornar seu sistema - inoperável sem um dispositivo de inicialização alternativo, - como um CD-ROM ou unidade USB inicializável. Esta seção não - é exigida para inicializar seu sistema LFS. Você talvez - apenas queira modificar seu carregador de inicialização - atual, por exemplo, Grub-Legacy, GRUB2 ou LILO. -

-
-

- Certifique-se de que um disco de inicialização de emergência - esteja pronto para resgatar o computador se o - computador se tornar inutilizável (não inicializável). Se - você ainda não tem um dispositivo de inicialização, [então] - você pode criar um. Para que o procedimento abaixo funcione, - você precisa saltar para a frente para o BLFS e instalar - xorriso - oriundo do pacote - libisoburn. -

-
cd /tmp
-grub-mkrescue --output=grub-img.iso
-xorriso -as cdrecord -v dev=/dev/cdrw blank=as_needed grub-img.iso
-
-
-

- 10.4.2. Convenções de Nomenclatura do GRUB -

-

- O GRUB usa estrutura de nomenclatura própria dele para - unidades e partições na forma de (hdn,m), onde n é o número da unidade rígida e - m é o número da - partição. O número da unidade rígida começa do zero, porém o - número da partição inicia do um para partições normais e - cinco para partições estendidas. Observe que isso é diferente - de versões anteriores onde ambos os números começavam do - zero. Por exemplo, a partição sda1 é (hd0,1) para o GRUB e sdb3 é (hd1,3). Em contraste com o Linux, - GRUB não considera unidades de CD-ROM como unidades rígidas. - Por exemplo, se usar um CD em hdb e uma segunda unidade rígida em - hdc, [então] aquela segunda - unidade rígida ainda seria (hd1). -

-
-
-

- 10.4.3. Definindo a Configuração -

-

- O GRUB funciona escrevendo dados para a primeira trilha - física do disco rígido. Essa área não é parte de nenhum - sistema de arquivos. Os aplicativos lá acessam módulos do - GRUB na partição de inicialização. O local padrão é - /boot/grub/. -

-

- O local da partição de inicialização é uma escolha da(o) - usuária(o) que afeta a configuração. Uma recomendação é ter - uma partição pequena (tamanho sugerido é 200 MB) separada - somente para informação de inicialização. Dessa forma, cada - construção, seja LFS ou alguma distribuição comercial, pode - acessar os mesmos arquivos de inicialização e o acesso pode - ser feito a partir de qualquer sistema inicializado. Se você - escolher fazer isso, [então] você precisará montar a partição - separada, mover todos os arquivos no diretório /boot atual (por exemplo, o kernel linux - que você recém construiu na seção anterior) para a nova - partição. Você precisará então desmontar a partição e - remontar ela como /boot. Se - você fizer isso, [então] tenha certeza de atualizar - /etc/fstab. -

-

- Usar a partição lfs atual também funcionará, porém a - configuração para múltiplos sistemas é mais complicada. -

-

- Usando a informação acima, determine o designador apropriado - para a partição raiz (ou partição de inicialização, se uma - separada for usada). Para o exemplo seguinte, é assumido que - a partição raiz (ou inicialização separada) é sda2. -

-

- Instale os arquivos do GRUB em /boot/grub e configure a trilha de - inicialização: -

-
-

- Atenção -

-

- O seguinte comando sobrescreverá o carregador de - inicialização atual. Não execute o comando de isso não for - desejado, por exemplo, se usar um gerenciador de - inicialização de terceiro para gerenciar o Master Boot - Record (MBR). -

-
-
grub-install /dev/sda
-
-

- Nota -

-

- Se o sistema tiver sido inicializado usando UEFI, [então] o - grub-install - tentará instalar arquivos para o alvo x86_64-efi, porém aqueles - arquivos não foram instalados no Capítulo 8. - Se esse for o caso, [então] adicione --target i386-pc ao comando acima. -

-
-
-
-

- 10.4.4. Criando o - Arquivo de Configuração do GRUB -

-

- Gere o /boot/grub/grub.cfg: -

-
cat > /boot/grub/grub.cfg << "EOF"
-# Begin /boot/grub/grub.cfg
-set default=0
-set timeout=5
-
-insmod ext2
-set root=(hd0,2)
-
-menuentry "GNU/Linux, Linux 5.16.9-lfs-11.1" {
-        linux   /boot/vmlinuz-5.16.9-lfs-11.1 root=/dev/sda2 ro
-}
-EOF
-
-

- Nota -

-

- A partir da perspectiva do GRUB, os arquivos do kernel são - relativos à partição usada. Se você usou uma partição /boot - separada, [então] remova /boot da linha linux acima. Você também - precisará mudar a linha set - root para apontar para a partição de - inicialização. -

-
-

- O GRUB é um aplicativo extremamente poderoso e ele fornece um - tremendo número de opções para inicializar a partir de uma - ampla variedade de dispositivos, sistemas operacionais e - tipos de partição. Existem também muitas opções para - personalização, tais como telas splash gráficas; reprodução - de sons; entrada de mouse; etc. Os detalhes dessas opções - estão além do escopo desta introdução. -

-
-

- Cuidado -

-

- Existe um comando, grub-mkconfig, que pode escrever um - arquivo de configuração automaticamente. Ele usa um - conjunto de scripts em /etc/grub.d/ e destruirá quaisquer - personalizações que você fizer. Esses scripts são - projetados primariamente para distribuições não fonte e não - são recomendados para o LFS. Se você instalar uma - distribuição do Linux comercial, [então] existe uma boa - chance de que esse aplicativo será executado. Tenha certeza - de produzir uma cópia de segurança do seu arquivo grub.cfg. -

-
-
-
-
-
-
-
-
-

- Capítulo 11. O Fim -

-
-
-
-
-
-
-
-

- 11.1. O Fim -

-
-
-
-

- Muito bem! O novo sistema LFS está instalado! Nós desejamos a - você muito sucesso com seu novo e brilhante sistema Linux - construído sob medida. -

-

- Talvez seja uma boa ideia criar um arquivo /etc/lfs-release. Tendo esse arquivo, é muito - fácil para você (e para nós se você precisar pedir por ajuda em - algum ponto) descobrir qual versão do LFS está instalada no - sistema. Crie esse arquivo executando: -

-
echo 11.1 > /etc/lfs-release
-

- Dois arquivos descrevendo o sistema instalado talvez sejam - usados por pacotes que podem ser instalados no sistema - posteriormente, ou em forma de binário ou construindo eles. -

-

- O primeiro deles mostra a situação do seu novo sistema com - respeito ao Linux Standards Base (LSB). Para criar esse - arquivo, execute: -

-
cat > /etc/lsb-release << "EOF"
-DISTRIB_ID="Linux From Scratch"
-DISTRIB_RELEASE="11.1"
-DISTRIB_CODENAME="<seu nome aqui>"
-DISTRIB_DESCRIPTION="Linux From Scratch"
-EOF
-

- O segundo deles contém aproximadamente a mesma informação, e é - usado pelo systemd e alguns ambientes de área de trabalho - gráficos. Para criar esse arquivo, execute: -

-
cat > /etc/os-release << "EOF"
-NAME="Linux From Scratch"
-VERSION="11.1"
-ID=lfs
-PRETTY_NAME="Linux From Scratch 11.1"
-VERSION_CODENAME="<seu nome aqui>"
-EOF
-

- Tenha certeza de colocar algum tipo de personalização para os - campos 'DISTRIB_CODENAME' e 'VERSION_CODENAME' para tornar o - sistema unicamente seu. -

-
-
-
-
-
-

- 11.2. Seja Contado -

-
-
-
-

- Agora que você terminou o livro, você quer ser contada(o) como - uma(m) usuária(o) do LFS? Vá para https://www.linuxfromscratch.org/cgi-bin/lfscounter.php - e registre-se como uma(m) usuária(o) do LFS fornecendo seu nome - e a primeira versão do LFS que você usou. -

-

- Vamos reinicializar no LFS agora. -

-
-
-
-
-
-

- 11.3. Reinicializando o - Sistema -

-
-
-
-

- Agora que todo o software foi instalado, é hora de - reinicializar seu computador. Entretanto, você deveria estar - ciente de umas poucas coisas. O sistema que você criou neste - livro é bastante mínimo, e provavelmente não terá a - funcionalidade que você precisaria para ser capaz de seguir em - frente. Instalando uns poucos pacotes extras a partir do livro - BLFS enquanto ainda em seu ambiente chroot atual, você pode - deixar-se em uma posição muito melhor para continuar tão logo - você reinicialize em sua nova instalação do LFS. Aqui estão - algumas sugestões: -

-
-
    -
  • -

    - Um navegador de modo de texto como o - Lynx permitirá que você facilmente visualize o livro - BLFS em um terminal virtual, enquanto constrói pacotes em - outro. -

    -
  • -
  • -

    - O pacote - make-ca permitirá que você configure certificados de - âncora confiáveis locais, permitindo que o sistema - verifique certificados SSL fornecidos por servidores - remotos (por exemplo, um sítio da web usando o HTTPS). -

    -
  • -
  • -

    - O pacote - GPM permitirá que você realize ações de copiar/colar - em seus terminais virtuais. -

    -
  • -
  • -

    - Se você estiver em uma situação onde configuração de IP - estático não atende suas exigências de rede, [então] - instalar um pacote como - dhcpcd ou a porção cliente do - dhcp talvez seja útil. -

    -
  • -
  • -

    - Instalar - sudo talvez seja útil para construir pacotes como - uma(m) usuária(o) não root e facilmente instalar os - pacotes resultantes em seu novo sistema. -

    -
  • -
  • -

    - Se você quiser acessar seu novo sistema a partir de um - sistema remoto dentro de um ambiente GUI confortável, - [então] instale - openssh. -

    -
  • -
  • -

    - Para tornar a obtenção de arquivos por meio da Internet - mais fácil, instale - wget. -

    -
  • -
  • -

    - Para se conectar a um ponto de acesso sem fios para rede, - instale - wpa_supplicant. -

    -
  • -
  • -

    - Finalmente, uma revisão dos seguintes arquivos de - configuração também é apropriada neste ponto. -

    -
    -
      -
    • -

      - /etc/bashrc -

      -
    • -
    • -

      - /etc/dircolors -

      -
    • -
    • -

      - /etc/fstab -

      -
    • -
    • -

      - /etc/hosts -

      -
    • -
    • -

      - /etc/inputrc -

      -
    • -
    • -

      - /etc/profile -

      -
    • -
    • -

      - /etc/resolv.conf -

      -
    • -
    • -

      - /etc/vimrc -

      -
    • -
    • -

      - /root/.bash_profile -

      -
    • -
    • -

      - /root/.bashrc -

      -
    • -
    • -

      - /etc/sysconfig/ifconfig.eth0 -

      -
    • -
    -
    -
  • -
-
-

- Agora que nós dissemos isso, vamos em frente para inicializar - nossa brilhante e nova instalação do LFS pela primeira vez! - Primeiro saia do ambiente chroot: -

-
logout
-

- Então desmonte os sistemas de arquivos virtuais: -

-
umount -v $LFS/dev/pts
-umount -v $LFS/dev
-umount -v $LFS/run
-umount -v $LFS/proc
-umount -v $LFS/sys
-

- Se múltiplas partições foram criadas, [então] desmonte as - outras partições antes de desmontar a principal, como isto: -

-
umount -v $LFS/usr
-umount -v $LFS/home
-umount -v $LFS
-

- Desmonte o próprio sistema de arquivos do LFS: -

-
umount -v $LFS
-

- Agora, reinicialize o sistema com: -

-
shutdown -r now
-

- Assumindo que o carregador de inicialização GRUB foi - configurado como destacado anteriormente, o menu está - configurado para inicializar o LFS - 11.1 automaticamente. -

-

- Quando a reinicialização estiver completa, o sistema LFS estará - pronto para uso e mais software talvez seja adicionado para - suprir suas necessidades. -

-
-
-
-
-
-

- 11.4. E agora? -

-
-
-
-

- Obrigado por ler este livro LFS. Nós esperamos que você tenha - achado este livro útil e tenha aprendido mais sobre o processo - de criação do sistema. -

-

- Agora que o sistema LFS está instalado, você talvez esteja se - perguntando: E - depois? Para responder a essa pergunta, - nós compilamos uma lista de recursos para você. -

-
-
    -
  • -

    - Manutenção -

    -

    - Notificações de defeitos e segurança são relatadas - regularmente para todo software. Uma vez que um sistema - LFS é compilado a partir do fonte, cabe a você se manter - a par de tais relatórios. Existem vários recursos online - que rastreiam tais relatórios, alguns dos quais estão - mostrados abaixo: -

    -
    -
      -
    • -

      - CERT (Computer Emergency - Response Team) -

      -

      - O CERT tem uma lista de discussão que publica - alertas de segurança a respeito de vários sistemas - operacionais e aplicativos. Informação de - assinatura está disponível em http://www.us-cert.gov/cas/signup.html. -

      -
    • -
    • -

      - Bugtraq -

      -

      - Bugtraq é uma lista de discussão de segurança de - computador de divulgação completa. Ela publica - problemas de segurança descobertos recentemente, e - ocasionalmente consertos potenciais para eles. - Informação de assinatura está disponível em - http://www.securityfocus.com/archive. -

      -
    • -
    -
    -
  • -
  • -

    - Beyond Linux From Scratch -

    -

    - O livro Beyond Linux From Scratch cobre procedimentos de - instalação para uma ampla gama de software além do escopo - do Livro LFS. O projeto BLFS está localizado em https://www.linuxfromscratch.org/blfs/view/11.1/. -

    -
  • -
  • -

    - LFS Hints -

    -

    - As Dicas do LFS são uma coleção de documentos - educacionais submetidos por voluntários na comunidade do - LFS. As dicas estão disponíveis em - https://www.linuxfromscratch.org/hints/downloads/files/. -

    -
  • -
  • -

    - Listas de discussão -

    -

    - Existem várias listas de discussão do LFS que você talvez - assine se você estiver necessitada(o) de ajuda; quiser se - manter atualizada(o) com os mais recentes - desenvolvimentos; quiser contribuir para o projeto; e - mais. Veja-se Capítulo 1 - - Listas de Discussão para mais informação. -

    -
  • -
  • -

    - The Linux Documentation Project -

    -

    - O objetivo do The Linux Documentation Project (TLDP) é o - de colaborar em todos os problemas de documentação do - Linux. O TLDP apresenta uma grande coleção de HOWTOs, - guias e páginas de manual. Ele está localizado em - http://www.tldp.org/. -

    -
  • -
-
-
-
-
-
-
-
-
-

- Parte V. Anexos -

-
-
-
-
-
-
-
-

- Apêndice A. Siglas e Termos -

-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- ABI -

-
-

- Application Binary Interface -

-
-

- ALFS -

-
-

- Automated Linux From Scratch -

-
-

- API -

-
-

- Application Programming Interface -

-
-

- ASCII -

-
-

- American Standard Code for Information Interchange -

-
-

- BIOS -

-
-

- Basic Input/Output System -

-
-

- BLFS -

-
-

- Beyond Linux From Scratch -

-
-

- BSD -

-
-

- Berkeley Software Distribution -

-
-

- chroot -

-
-

- change root -

-
-

- CMOS -

-
-

- Complementary Metal Oxide Semiconductor -

-
-

- COS -

-
-

- Class Of Service -

-
-

- CPU -

-
-

- Central Processing Unit -

-
-

- CRC -

-
-

- Cyclic Redundancy Check -

-
-

- CVS -

-
-

- Concurrent Versions System -

-
-

- DHCP -

-
-

- Dynamic Host Configuration Protocol -

-
-

- DNS -

-
-

- Domain Name Service -

-
-

- EGA -

-
-

- Enhanced Graphics Adapter -

-
-

- ELF -

-
-

- Executable and Linkable Format -

-
-

- EOF -

-
-

- End of File -

-
-

- EQN -

-
-

- equation -

-
-

- ext2 -

-
-

- second extended file system -

-
-

- ext3 -

-
-

- third extended file system -

-
-

- ext4 -

-
-

- fourth extended file system -

-
-

- FAQ -

-
-

- Frequently Asked Questions -

-
-

- FHS -

-
-

- Filesystem Hierarchy Standard -

-
-

- FIFO -

-
-

- First-In, First Out -

-
-

- FQDN -

-
-

- Fully Qualified Domain Name -

-
-

- FTP -

-
-

- File Transfer Protocol -

-
-

- GB -

-
-

- Gigabytes -

-
-

- GCC -

-
-

- GNU Compiler Collection -

-
-

- GID -

-
-

- Group Identifier -

-
-

- GMT -

-
-

- Greenwich Mean Time -

-
-

- HTML -

-
-

- Hypertext Markup Language -

-
-

- IDE -

-
-

- Integrated Drive Electronics -

-
-

- IEEE -

-
-

- Institute of Electrical and Electronic Engineers -

-
-

- IO -

-
-

- Input/Output -

-
-

- IP -

-
-

- Internet Protocol -

-
-

- IPC -

-
-

- Inter-Process Communication -

-
-

- IRC -

-
-

- Internet Relay Chat -

-
-

- ISO -

-
-

- International Organization for Standardization -

-
-

- ISP -

-
-

- Internet Service Provider -

-
-

- KB -

-
-

- Kilobytes -

-
-

- LED -

-
-

- Light Emitting Diode -

-
-

- LFS -

-
-

- Linux From Scratch -

-
-

- LSB -

-
-

- Linux Standard Base -

-
-

- MB -

-
-

- Megabytes -

-
-

- MBR -

-
-

- Master Boot Record -

-
-

- MD5 -

-
-

- Message Digest 5 -

-
-

- NIC -

-
-

- Network Interface Card -

-
-

- NLS -

-
-

- Native Language Support -

-
-

- NNTP -

-
-

- Network News Transport Protocol -

-
-

- NPTL -

-
-

- Native POSIX Threading Library -

-
-

- OSS -

-
-

- Open Sound System -

-
-

- PCH -

-
-

- Pre-Compiled Headers -

-
-

- PCRE -

-
-

- Perl Compatible Regular Expression -

-
-

- PID -

-
-

- Process Identifier -

-
-

- PTY -

-
-

- pseudo terminal -

-
-

- QOS -

-
-

- Quality Of Service -

-
-

- RAM -

-
-

- Random Access Memory -

-
-

- RPC -

-
-

- Remote Procedure Call -

-
-

- RTC -

-
-

- Real Time Clock -

-
-

- SBU -

-
-

- Standard Build Unit -

-
-

- SCO -

-
-

- The Santa Cruz Operation -

-
-

- SHA1 -

-
-

- Secure-Hash Algorithm 1 -

-
-

- TLDP -

-
-

- The Linux Documentation Project -

-
-

- TFTP -

-
-

- Trivial File Transfer Protocol -

-
-

- TLS -

-
-

- Thread-Local Storage -

-
-

- UID -

-
-

- User Identifier -

-
-

- umask -

-
-

- user file-creation mask -

-
-

- USB -

-
-

- Universal Serial Bus -

-
-

- UTC -

-
-

- Coordinated Universal Time -

-
-

- UUID -

-
-

- Universally Unique Identifier -

-
-

- VC -

-
-

- Virtual Console -

-
-

- VGA -

-
-

- Video Graphics Array -

-
-

- VT -

-
-

- Virtual Terminal -

-
-
-
-
-
-
-
-

- Apêndice B. Reconhecimentos -

-
-
-
-

- Nós gostaríamos de agradecer às seguintes pessoas e organizações - por suas contribuições para o Projeto Linux From Scratch. -

-
-
    -
  • -

    - Gerard Beekmans - <gerard AT linuxfromscratch D0T org> – Criador do LFS -

    -
  • -
  • -

    - Bruce Dubbs - <bdubbs AT linuxfromscratch D0T org> – Editor-chefe do - LFS -

    -
  • -
  • -

    - Jim - Gifford <jim AT linuxfromscratch D0T org> – - Colíder do Projeto CLFS -

    -
  • -
  • -

    - Pierre Labastie - <pierre AT linuxfromscratch D0T org> – Editor do BLFS - e Líder do ALFS -

    -
  • -
  • -

    - DJ - Lucas <dj AT linuxfromscratch D0T org> – Editor do - LFS e BLFS -

    -
  • -
  • -

    - Ken - Moffat <ken AT linuxfromscratch D0T org> – Editor - do BLFS -

    -
  • -
  • -

    - Incontáveis outras pessoas nas várias listas de discussão - do LFS e BLFS que ajudaram a tornar este livro possível - dando suas sugestões; testando o livro; e submetendo - relatórios de defeitos; instruções; e suas experiências com - a instalação de vários pacotes. -

    -
  • -
-
-

- Tradutoras(es) -

-
-
    -
  • -

    - Manuel - Canales Esparcia <macana AT macana-es D0T com> – - Projeto de tradução do LFS para espanhol -

    -
  • -
  • -

    - Johan Lenglet - <johan AT linuxfromscratch D0T org> – Projeto de - tradução do LFS para francês até 2008 -

    -
  • -
  • -

    - Jean-Philippe - Mengual <jmengual AT linuxfromscratch D0T org> – - Projeto de tradução do LFS para francês 2008-2016 -

    -
  • -
  • -

    - Julien Lepiller - <jlepiller AT linuxfromscratch D0T org> – Projeto de - tradução do LFS para francês 2017-presente -

    -
  • -
  • -

    - Anderson Lizardo - <lizardo AT linuxfromscratch D0T org> – Projeto de - tradução do LFS para português -

    -
  • -
  • -

    - Thomas - Reitelbach <tr AT erdfunkstelle D0T de> – Projeto - de tradução do LFS para alemão -

    -
  • -
  • -

    - Anton Maisak - <info AT linuxfromscratch D0T org D0T ru> – Projeto de - tradução do LFS para russo -

    -
  • -
  • -

    - Elena Shevcova - <helen AT linuxfromscratch D0T org D0T ru> – Projeto de - tradução do LFS para russo -

    -
  • -
-
-

- Mantenedoras(es) de Espelhos -

-

- Espelhos da América do Norte -

-
-
    -
  • -

    - Scott - Kveton <scott AT osuosl D0T org> – espelho - lfs.oregonstate.edu -

    -
  • -
  • -

    - William - Astle <lost AT l-w D0T net> – espelho - ca.linuxfromscratch.org -

    -
  • -
  • -

    - Eujon Sellers - <jpolen@rackspace.com> – espelho - lfs.introspeed.com -

    -
  • -
  • -

    - Justin - Knierim <tim@idge.net> – espelho - lfs-matrix.net -

    -
  • -
-
-

- Espelhos da América do Sul -

-
- -
-

- Espelhos Europeus -

-
-
    -
  • -

    - Guido - Passet <guido AT primerelay D0T net> – espelho - nl.linuxfromscratch.org -

    -
  • -
  • -

    - Bastiaan - Jacques <baafie AT planet D0T nl> – espelho - lfs.pagefault.net -

    -
  • -
  • -

    - Sven - Cranshoff <sven D0T cranshoff AT lineo D0T be> – - espelho lfs.lineo.be -

    -
  • -
  • -

    - Scarlet Belgium – espelho lfs.scarlet.be -

    -
  • -
  • -

    - Sebastian - Faulborn <info AT aliensoft D0T org> – espelho - lfs.aliensoft.org -

    -
  • -
  • -

    - Stuart - Fox <stuart AT dontuse D0T ms> – espelho - lfs.dontuse.ms -

    -
  • -
  • -

    - Ralf - Uhlemann <admin AT realhost D0T de> – espelho - lfs.oss-mirror.org -

    -
  • -
  • -

    - Antonin Sprinzl - <Antonin D0T Sprinzl AT tuwien D0T ac D0T at> – espelho - at.linuxfromscratch.org -

    -
  • -
  • -

    - Fredrik Danerklint - <fredan-lfs AT fredan D0T org> – espelho - se.linuxfromscratch.org -

    -
  • -
  • -

    - Franck - <franck AT linuxpourtous D0T com> – espelho - lfs.linuxpourtous.com -

    -
  • -
  • -

    - Philippe - Baque <baque AT cict D0T fr> – espelho lfs.cict.fr -

    -
  • -
  • -

    - Vitaly - Chekasin <gyouja AT pilgrims D0T ru> – espelho - lfs.pilgrims.ru -

    -
  • -
  • -

    - Benjamin - Heil <kontakt AT wankoo D0T org> – espelho - lfs.wankoo.org -

    -
  • -
  • -

    - Anton Maisak - <info AT linuxfromscratch D0T org D0T ru> – espelho - linuxfromscratch.org.ru -

    -
  • -
-
-

- Espelhos Asiáticos -

-
-
    -
  • -

    - Satit - Phermsawang <satit AT wbac D0T ac D0T th> – espelho - lfs.phayoune.org -

    -
  • -
  • -

    - Shizunet - Co.,Ltd. <info AT shizu-net D0T jp> – espelho - lfs.mirror.shizu-net.jp -

    -
  • -
  • -

    - Init - World <http://www.initworld.com/> – espelho - lfs.initworld.com -

    -
  • -
-
-

- Espelhos da Austrália -

-
-
    -
  • -

    - Jason - Andrade <jason AT dstc D0T edu D0T au> – espelho - au.linuxfromscratch.org -

    -
  • -
-
-

- Ex-membros da Equipe do Projeto -

-
-
    -
  • -

    - Christine - Barczak <theladyskye AT linuxfromscratch D0T org> - – Editor do Livro LFS -

    -
  • -
  • -

    - Archaic <archaic@linuxfromscratch.org> – - Escritor/Editor Técnico do LFS (Dicas e Patches); Líder do - Projeto HLFS; Editor do BLFS; Mantenedor do Projeto Dicas e - Patches -

    -
  • -
  • -

    - Matthew Burgess - <matthew AT linuxfromscratch D0T org> – Líder de - Projeto do LFS; Escritor/Editor Técnico do LFS -

    -
  • -
  • -

    - Nathan Coulson - <nathan AT linuxfromscratch D0T org> – Mantenedor de - Scripts de Inicialização do LFS -

    -
  • -
  • -

    - Timothy Bauscher -

    -
  • -
  • -

    - Robert Briggs -

    -
  • -
  • -

    - Ian Chilton -

    -
  • -
  • -

    - Jeroen Coumans - <jeroen AT linuxfromscratch D0T org> – Desenvolvedor - de Sítio da Web; Mantenedor de FAQ -

    -
  • -
  • -

    - Manuel Canales - Esparcia <manuel AT linuxfromscratch D0T org> – - Mantenedor de XML e XSL do LFS/BLFS/HLFS -

    -
  • -
  • -

    - Alex Groenewoud – Escritor Técnico do LFS -

    -
  • -
  • -

    - Marc Heerdink -

    -
  • -
  • -

    - Jeremy Huntwork - <jhuntwork AT linuxfromscratch D0T org> – Escritor - Técnico do LFS; Mantenedor de LiveCD do LFS -

    -
  • -
  • -

    - Bryan Kadzban - <bryan AT linuxfromscratch D0T org> – Escritor Técnico - do LFS -

    -
  • -
  • -

    - Mark Hymers -

    -
  • -
  • -

    - Seth W. Klein – Mantenedor do FAQ -

    -
  • -
  • -

    - Nicholas Leippe - <nicholas AT linuxfromscratch D0T org> – Mantenedor da - Wiki -

    -
  • -
  • -

    - Anderson Lizardo - <lizardo AT linuxfromscratch D0T org> – Mantenedor de - Scripts de Infraestrutura de Sítio Web -

    -
  • -
  • -

    - Randy McMurchy - <randy AT linuxfromscratch D0T org> – Líder de Projeto - do BLFS; Editor do LFS -

    -
  • -
  • -

    - Dan Nicholson - <dnicholson AT linuxfromscratch D0T org> – Editor do - LFS e BLFS -

    -
  • -
  • -

    - Alexander E. - Patrakov <alexander AT linuxfromscratch D0T org> – - Escritor Técnico do LFS; Editor de Internacionalização do - LFS; Mantenedor de Live CD do LFS -

    -
  • -
  • -

    - Simon Perreault -

    -
  • -
  • -

    - Scot Mc Pherson - <scot AT linuxfromscratch D0T org> – Mantenedor do - Gateway NNTP do LFS -

    -
  • -
  • -

    - Douglas R. Reno - <renodr AT linuxfromscratch D0T org> – Editor do - Systemd -

    -
  • -
  • -

    - Ryan Oliver - <ryan AT linuxfromscratch D0T org> – Colíder de - Projeto do CLFS -

    -
  • -
  • -

    - Greg - Schafer <gschafer AT zip D0T com D0T au> – Escritor - Técnico do LFS e Arquiteto do Método de Construção de - Habilitação de 64 bits de Próxima Geração -

    -
  • -
  • -

    - Jesse Tie-Ten-Quee – Escritor Técnico do LFS -

    -
  • -
  • -

    - James Robertson - <jwrober AT linuxfromscratch D0T org> – Mantenedor do - Bugzilla -

    -
  • -
  • -

    - Tushar Teredesai - <tushar AT linuxfromscratch D0T org> – Editor do Livro - BLFS; Líder de Projeto de Dicas e Patches -

    -
  • -
  • -

    - Jeremy Utley - <jeremy AT linuxfromscratch D0T org> – Escritor - Técnico do LFS; Mantenedor do Bugzilla; Mantenedor de - Scripts de Inicialização do LFS -

    -
  • -
  • -

    - Zack - Winkles <zwinkles AT gmail D0T com> – Escritor - Técnico do LFS -

    -
  • -
-
-
-
-
-
-
-

- Apêndice C. Dependências -

-
-
-
-

- Cada pacote construído no LFS depende de um ou mais outros - pacotes para construir e instalar adequadamente. Alguns pacotes - até participam em dependências circulares, isto é, o primeiro - pacote depende do segundo o qual, na sequência, depende do - primeiro. Por causa dessas dependências, a ordem na qual pacotes - são construídos no LFS é muito importante. O propósito desta - página é o de documentar as dependências de cada pacote - construído no LFS. -

-

- Para cada pacote que é construído, existem três, e as vezes até - cinco tipos de dependências listadas abaixo. A primeira lista que - outros pacotes necessitam estar disponíveis para compilar e - instalar o pacote em questão. A segunda lista os pacotes que - precisam estar disponíveis quando quaisquer aplicativos ou - bibliotecas oriundos do pacote forem usados em tempo de execução. - A terceira lista que pacotes, em adição àqueles na primeira - lista, necessitam estar disponíveis para executar as suítes de - teste. A quarta lista de dependências são pacotes que exigem que - esse pacote esteja construído e instalado no local final dele - antes que eles sejam construídos e instalados. Na maioria dos - casos, isso é porque esses pacotes codificarão rigidamente - caminhos para binários dentro dos scripts deles. Se não for - construído em uma certa ordem, [então] isso poderia resultar em - caminhos como /tools/bin/[binário] sendo colocados dentro de - scripts instalados para o sistema final. Isso obviamente não é - desejável. -

-

- A última lista de dependências são pacotes opcionais que não são - endereçados no LFS, porém poderiam ser úteis para a(o) - usuária(o). Esses pacotes talvez tenham dependências obrigatórias - ou opcionais adicionais deles próprios. Para essas dependências, - a prática recomendada é a de instalá-las depois de completar o - livro LFS e então voltar e reconstruir o pacote LFS. Em muitos - casos, a reinstalação é endereçada no BLFS. -

-

- Acl -

-
- -
-
- Instalação depende de: - Attr, Bash, Binutils, Coreutils, GCC, - Gettext, Grep, M4, Make, Perl, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Attr e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Automake, Diffutils, Findutils e - Libtool -
-
-
-
- -
-
- Precisa ser instalado antes - de: Coreutils, Sed, Tar e - Vim -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Attr -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, M4, Make, Perl, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Automake, Diffutils, Findutils e - Libtool -
-
-
-
- -
-
- Precisa ser instalado antes - de: Acl e Libcap -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Autoconf -

-
- -
-
- Instalação depende de: - Bash, Coreutils, Grep, M4, Make, Perl, - Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Coreutils, - Grep, M4, Make, Sed e Texinfo -
-
-
-
- -
-
- Suíte de teste depende de: - Automake, Diffutils, Findutils, GCC e - Libtool -
-
-
-
- -
-
- Precisa ser instalado antes - de: Automake -
-
-
-
- -
-
- Dependências opcionais: - - Emacs -
-
-
-

- Automake -

-
- -
-
- Instalação depende de: - Autoconf, Bash, Coreutils, Gettext, - Grep, M4, Make, Perl, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Coreutils, - Grep, M4, Sed e Texinfo -
-
-
-
- -
-
- Suíte de teste depende de: - Binutils, Bison, Bzip2, DejaGNU, - Diffutils, Expect, Findutils, Flex, GCC, Gettext, Gzip, - Libtool e Tar -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Bash -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bison, Coreutils, - Diffutils, Gawk, GCC, Glibc, Grep, Make, Ncurses, Patch, - Readline, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc, Ncurses e - Readline -
-
-
-
- -
-
- Suíte de teste depende de: - Expect e Shadow -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - Xorg -
-
-
-

- Bc -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Grep e Make -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc, Ncurses e - Readline -
-
-
-
- -
-
- Suíte de teste depende de: - Gawk -
-
-
-
- -
-
- Precisa ser instalado antes - de: Linux -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Binutils -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - File, Flex, Gawk, GCC, Glibc, Grep, Make, Perl, Sed, Texinfo - e Zlib -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - DejaGNU e Expect -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Elfutils -
-
-
-

- Bison -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, M4, Make, Perl e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils, Findutils e Flex -
-
-
-
- -
-
- Precisa ser instalado antes - de: Kbd e Tar -
-
-
-
- -
-
- Dependências opcionais: - - Doxygen -
-
-
-

- Bzip2 -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - GCC, Glibc, Make e Patch -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: File -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Check -

-
- -
-
- Instalação depende de: - Gawk, GCC, Grep, Make, Sed e - Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash e Gawk -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Coreutils -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, GMP, Grep, Libcap, Make, OpenSSL, Patch, - Perl, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils, E2fsprogs, Findutils, Shadow - e Util-linux -
-
-
-
- -
-
- Precisa ser instalado antes - de: Bash, Diffutils, Eudev, - Findutils e Man-DB -
-
-
-
- -
-
- Dependências opcionais: - Expect.pm e IO::Tty -
-
-
-

- DejaGNU -

-
- -
-
- Instalação depende de: - Bash, Coreutils, Diffutils, Expect, - GCC, Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Expect e Bash -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Diffutils -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Gawk, GCC, - Gettext, Glibc, Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Perl -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- E2fsprogs -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, Gzip, Make, Sed, Texinfo e - Util-linux -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e - Util-linux -
-
-
-
- -
-
- Suíte de teste depende de: - Procps-ng e Psmisc -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Eudev -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Gawk, GCC, - Glibc, Grep, Gperf, Make, Sed e Util-linux -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc, Kmod, Xz, - Util-linux e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Expat -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Gawk, GCC, - Glibc, Grep, Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Python e - XML::Parser -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Expect -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - GCC, Glibc, Grep, Make, Patch, Sed e Tcl -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e Tcl -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - Tk -
-
-
-

- File -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bzip2, Coreutils, - Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed, Xz e - Zlib -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc, Bzip2, Xz e - Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - libseccomp -
-
-
-

- Findutils -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - DejaGNU, Diffutils e Expect -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Flex -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, M4, Make, Patch, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Glibc e - M4 -
-
-
-
- -
-
- Suíte de teste depende de: - Bison e Gawk -
-
-
-
- -
-
- Precisa ser instalado antes - de: Binutils, IProute2, Kbd, - Kmod e Man-DB -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Gawk -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, GMP, Grep, Make, MPFR, Patch, Readline, Sed e - Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Glibc e - Mpfr -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - libsigsegv -
-
-
-

- GCC -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Findutils, Gawk, GCC, Gettext, Glibc, GMP, Grep, M4, Make, - MPC, MPFR, Patch, Perl, Sed, Tar, Texinfo e Zstd -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Binutils, - Glibc, Mpc e Python -
-
-
-
- -
-
- Suíte de teste depende de: - DejaGNU, Expect e Shadow -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - GNAT e ISL -
-
-
-

- GDBM -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - GCC, Grep, Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Glibc e - Readline -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Gettext -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Gawk, GCC, - Glibc, Grep, Make, Ncurses, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Acl, Bash, Gcc e - Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils, Perl e Tcl -
-
-
-
- -
-
- Precisa ser instalado antes - de: Automake e Bison -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Glibc -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bison, Coreutils, - Diffutils, Gawk, GCC, Gettext, Grep, Gzip, Cabeçalhos da API - do Linux, Make, Perl, Python, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Nenhuma -
-
-
-
- -
-
- Suíte de teste depende de: - File -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- GMP -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, M4, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: GCC e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: MPFR e GCC -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Gperf -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc e - Make -
-
-
-
- -
-
- Exigido em tempo de - execução: GCC e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils e Expect -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Grep -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - GCC, Gettext, Glibc, Grep, Make, Patch, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Gawk -
-
-
-
- -
-
- Precisa ser instalado antes - de: Man-DB -
-
-
-
- -
-
- Dependências opcionais: - - PCRE e - libsigsegv -
-
-
-

- Groff -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bison, Coreutils, Gawk, - GCC, Glibc, Grep, Make, Patch, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: GCC, Glibc e - Perl -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Man-DB e Perl -
-
-
-
- -
-
- Dependências opcionais: - - ghostscript e - Uchardet -
-
-
-

- GRUB -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bison, Coreutils, - Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed, - Texinfo e Xz -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, GCC, Gettext, - Glibc, Xz e Sed -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Gzip -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils e Less -
-
-
-
- -
-
- Precisa ser instalado antes - de: Man-DB -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Iana-Etc -

-
- -
-
- Instalação depende de: - Coreutils -
-
-
-
- -
-
- Exigido em tempo de - execução: Nenhuma -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Perl -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Inetutils -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Grep, Make, Ncurses, Patch, Sed, Texinfo e Zlib -
-
-
-
- -
-
- Exigido em tempo de - execução: GCC, Glibc, Ncurses - e Readline -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Tar -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Intltool -

-
- -
-
- Instalação depende de: - Bash, Gawk, Glibc, Make, Perl, Sed e - XML::Parser -
-
-
-
- -
-
- Exigido em tempo de - execução: Autoconf, Automake, - Bash, Glibc, Grep, Perl e Sed -
-
-
-
- -
-
- Suíte de teste depende de: - Perl -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- IProute2 -

-
- -
-
- Instalação depende de: - Bash, Bison, Coreutils, Flex, GCC, - Glibc, Make, Libcap, Libelf, Cabeçalhos da API do Linux e - Zlib -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Coreutils, - Glibc, Libcap, Libelf e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - Berkeley DB e - iptables -
-
-
-

- Jinja2 -

-
- -
-
- Instalação depende de: - MarkupSafe e Python -
-
-
-
- -
-
- Exigido em tempo de - execução: MarkupSafe e - Python -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Systemd -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Kbd -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bison, Check, - Coreutils, Flex, GCC, Gettext, Glibc, Gzip, Make, Patch e - Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Coreutils e - Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Kmod -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bison, Coreutils, Flex, - GCC, Gettext, Glibc, Gzip, Make, OpenSSL, Pkg-config, Sed, Xz - e Zlib -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc, Xz e - Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Eudev -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Less -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - GCC, Glibc, Grep, Make, Ncurses e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e - Ncurses -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Gzip -
-
-
-
- -
-
- Dependências opcionais: - - PCRE -
-
-
-

- Libcap -

-
- -
-
- Instalação depende de: - Attr, Bash, Binutils, Coreutils, GCC, - Glibc, Perl, Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: IProute2 e Shadow -
-
-
-
- -
-
- Dependências opcionais: - - Linux-PAM -
-
-
-

- Libelf -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc e - Make -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: IProute2 e Linux -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Libffi -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - DejaGnu -
-
-
-
- -
-
- Precisa ser instalado antes - de: Python -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Libpipeline -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Check -
-
-
-
- -
-
- Precisa ser instalado antes - de: Man-DB -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Libtool -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Autoconf, Automake, - Bash, Binutils, Coreutils, File, GCC, Glibc, Grep, Make e - Sed -
-
-
-
- -
-
- Suíte de teste depende de: - Autoconf, Automake e Findutils -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Linux -

-
- -
-
- Instalação depende de: - Bash, Bc, Binutils, Coreutils, - Diffutils, Findutils, GCC, Glibc, Grep, Gzip, Kmod, Libelf, - Make, Ncurses, OpenSSL, Perl e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Nenhuma -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - cpio -
-
-
-

- Cabeçalhos da API do Linux -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Findutils, - GCC, Glibc, Grep, Gzip, Make, Perl e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Nenhuma -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- M4 -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils -
-
-
-
- -
-
- Precisa ser instalado antes - de: Autoconf e Bison -
-
-
-
- -
-
- Dependências opcionais: - - libsigsegv -
-
-
-

- Make -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Perl e Procps-ng -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - Guile -
-
-
-

- Man-DB -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bzip2, Coreutils, Flex, - GCC, GDBM, Gettext, Glibc, Grep, Groff, Gzip, Less, - Libpipeline, Make, Sed e Xz -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, GDBM, Groff, - Glibc, Gzip, Less, Libpipeline e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Util-linux -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - libseccomp -
-
-
-

- Man-Pages -

-
- -
-
- Instalação depende de: - Bash, Coreutils e Make -
-
-
-
- -
-
- Exigido em tempo de - execução: Nenhuma -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- MarkupSafe -

-
- -
-
- Instalação depende de: - Python -
-
-
-
- -
-
- Exigido em tempo de - execução: Python -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Jinja2 -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Meson -

-
- -
-
- Instalação depende de: - Ninja e Python -
-
-
-
- -
-
- Exigido em tempo de - execução: Python -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Systemd -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- MPC -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, GMP, Make, MPFR, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc, GMP e - MPFR -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: GCC -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- MPFR -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, GMP, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e GMP -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Gawk e GCC -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Ncurses -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, Make, Patch e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Bash, GRUB, Inetutils, - Less, Procps-ng, Psmisc, Readline, Texinfo, Util-linux e - Vim -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Ninja -

-
- -
-
- Instalação depende de: - Binutils, Coreutils, GCC e - Python -
-
-
-
- -
-
- Exigido em tempo de - execução: GCC e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Meson -
-
-
-
- -
-
- Dependências opcionais: - - Asciidoc, - Doxygen, - Emacs e re2c -
-
-
-

- OpenSSL -

-
- -
-
- Instalação depende de: - Binutils, Coreutils, GCC, Make e - Perl -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e Perl -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Coreutils, Kmod e - Linux -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Patch -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Grep, Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e Patch -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - Ed -
-
-
-

- Perl -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Gawk, GCC, - GDBM, Glibc, Grep, Groff, Make, Sed e Zlib -
-
-
-
- -
-
- Exigido em tempo de - execução: GDBM e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Iana-Etc, Less e Procps-ng -
-
-
-
- -
-
- Precisa ser instalado antes - de: Autoconf -
-
-
-
- -
-
- Dependências opcionais: - - Berkeley DB -
-
-
-

- Pkg-config -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Gawk, GCC, - Glibc, Grep, Make, Popt e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Kmod -
-
-
-
- -
-
- Dependências opcionais: - - Glib2 -
-
-
-

- Procps-ng -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Make e Ncurses -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - DejaGNU -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Psmisc -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, Make, Ncurses e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e - Ncurses -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Python -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Expat, GCC, - Gdbm, Gettext, Glibc, Grep, Libffi, Make, Ncurses, OpenSSL, - Sed e Util-linux -
-
-
-
- -
-
- Exigido em tempo de - execução: Bzip2, Expat, Gdbm, - Glibc, Libffi, Ncurses, OpenSSL e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - GDB e Valgrind -
-
-
-
- -
-
- Precisa ser instalado antes - de: Ninja -
-
-
-
- -
-
- Dependências opcionais: - - Berkeley DB, - libnsl, - SQLite e - Tk -
-
-
-

- Readline -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Gawk, GCC, - Glibc, Grep, Make, Ncurses, Patch, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e - Ncurses -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Bash e Gawk -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Sed -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Acl, Attr e - Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils e Gawk -
-
-
-
- -
-
- Precisa ser instalado antes - de: E2fsprogs, File, Libtool e - Shadow -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Shadow -

-
- -
-
- Instalação depende de: - Acl, Attr, Bash, Binutils, Coreutils, - Diffutils, Findutils, Gawk, GCC, Gettext, Glibc, Grep, - Libcap, Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Coreutils -
-
-
-
- -
-
- Dependências opcionais: - - CrackLib e - Linux-PAM -
-
-
-

- Sysklogd -

-
- -
-
- Instalação depende de: - Binutils, Coreutils, GCC, Glibc, Make e - Patch -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Systemd -

-
- -
-
- Instalação depende de: - Acl, Attr, Bash, Binutils, Coreutils, - Diffutils, Expat, Gawk, GCC, Glibc, Gperf, Grep, Jinja2, - Libcap, Meson, Sed, Util-linux e Zstd -
-
-
-
- -
-
- Exigido em tempo de - execução: Acl, Attr, Glibc, - Libcap e Util-linux -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
- -

- Sysvinit -

-
- -
-
- Instalação depende de: - Binutils, Coreutils, GCC, Glibc, Make e - Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Tar -

-
- -
-
- Instalação depende de: - Acl, Attr, Bash, Binutils, Bison, - Coreutils, GCC, Gettext, Glibc, Grep, Inetutils, Make, Sed e - Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Acl, Attr, Bzip2, - Glibc, Gzip e Xz -
-
-
-
- -
-
- Suíte de teste depende de: - Autoconf, Diffutils, Findutils, Gawk e - Gzip -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Tcl -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - GCC, Glibc, Grep, Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Texinfo -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, Make, Ncurses, Patch e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e - Ncurses -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Util-linux -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Eudev, Findutils, Gawk, GCC, Gettext, Glibc, Grep, Libcap, - Make, Ncurses, Sed e Zlib -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc, Libcap, - Ncurses, Readline e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - Linux-PAM e - smartmontools -
-
-
-

- Vim -

-
- -
-
- Instalação depende de: - Acl, Attr, Bash, Binutils, Coreutils, - Diffutils, GCC, Glibc, Grep, Make, Ncurses e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Acl, Attr, Glibc, - Python, Ncurses e Tcl -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - Xorg, - GTK+2, LessTif, - Ruby e - GPM -
-
-
-

- XML::Parser -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Expat, GCC, - Glibc, Make e Perl -
-
-
-
- -
-
- Exigido em tempo de - execução: Expat, Glibc e - Perl -
-
-
-
- -
-
- Suíte de teste depende de: - Perl -
-
-
-
- -
-
- Precisa ser instalado antes - de: Intltool -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Xz -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - GCC, Glibc e Make -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Eudev, File, GRUB, Kmod e - Man-DB -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Zlib -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: File, Kmod, Perl e - Util-linux -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Zstd -

-
- -
-
- Instalação depende de: - Binutils, Coreutils, GCC, Glibc, Gzip, - Make e Xz -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: GCC e Systemd -
-
-
-
- -
-
- Dependências opcionais: - LZ4 -
-
-
-
-
-
-
-
-

- Apêndice D. Scripts de inicialização e - configuração do sistema versão-20210608 -

-
-
-
-

- Os scripts neste anexo estão listados pelo diretório onde eles - normalmente residem. A ordem é /etc/rc.d/init.d; /etc/sysconfig; /etc/sysconfig/network-devices; e /etc/sysconfig/network-devices/services. Dentro - de cada seção, os arquivos estão listados na ordem em que eles - normalmente são chamados. -

-
-
-
-
-

- D.1. /etc/rc.d/init.d/rc -

-
-
-
-

- O script rc é o primeiro script - chamado pelo init e inicia o - processo de inicialização. -

-
#!/bin/bash
-########################################################################
-# Begin rc
-#
-# Description : Main Run Level Control Script
-#
-# Authors     : Gerard Beekmans  - gerard AT linuxfromscratch D0T org
-#             : DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-. /lib/lsb/init-functions
-
-print_error_msg()
-{
-   log_failure_msg
-   # $i is set when called
-   MSG="FAILURE:\n\nYou should not be reading this error message.\n\n"
-   MSG="${MSG}It means that an unforeseen error took place in\n"
-   MSG="${MSG}${i},\n"
-   MSG="${MSG}which exited with a return value of ${error_value}.\n"
-
-   MSG="${MSG}If you're able to track this error down to a bug in one of\n"
-   MSG="${MSG}the files provided by the ${DISTRO_MINI} book,\n"
-   MSG="${MSG}please be so kind to inform us at ${DISTRO_CONTACT}.\n"
-   log_failure_msg "${MSG}"
-
-   log_info_msg "Press Enter to continue..."
-   wait_for_user
-}
-
-check_script_status()
-{
-   # $i is set when called
-   if [ ! -f ${i} ]; then
-      log_warning_msg "${i} is not a valid symlink."
-      SCRIPT_STAT="1"
-   fi
-
-   if [ ! -x ${i} ]; then
-      log_warning_msg "${i} is not executable, skipping."
-      SCRIPT_STAT="1"
-   fi
-}
-
-run()
-{
-   if [ -z $interactive ]; then
-      ${1} ${2}
-      return $?
-   fi
-
-   while true; do
-      read -p "Run ${1} ${2} (Yes/no/continue)? " -n 1 runit
-      echo
-
-      case ${runit} in
-         c | C)
-            interactive=""
-            ${i} ${2}
-            ret=${?}
-            break;
-            ;;
-
-         n | N)
-            return 0
-            ;;
-
-         y | Y)
-            ${i} ${2}
-            ret=${?}
-            break
-            ;;
-      esac
-   done
-
-   return $ret
-}
-
-# Read any local settings/overrides
-[ -r /etc/sysconfig/rc.site ] && source /etc/sysconfig/rc.site
-
-DISTRO=${DISTRO:-"Linux From Scratch"}
-DISTRO_CONTACT=${DISTRO_CONTACT:-"lfs-dev@linuxfromscratch.org (Registration required)"}
-DISTRO_MINI=${DISTRO_MINI:-"LFS"}
-IPROMPT=${IPROMPT:-"no"}
-
-# These 3 signals will not cause our script to exit
-trap "" INT QUIT TSTP
-
-[ "${1}" != "" ] && runlevel=${1}
-
-if [ "${runlevel}" == "" ]; then
-   echo "Usage: ${0} <runlevel>" >&2
-   exit 1
-fi
-
-previous=${PREVLEVEL}
-[ "${previous}" == "" ] && previous=N
-
-if [ ! -d /etc/rc.d/rc${runlevel}.d ]; then
-   log_info_msg "/etc/rc.d/rc${runlevel}.d does not exist.\n"
-   exit 1
-fi
-
-if [ "$runlevel" == "6" -o "$runlevel" == "0" ]; then IPROMPT="no"; fi
-
-# Note: In ${LOGLEVEL:-7}, it is ':' 'dash' '7', not minus 7
-if [ "$runlevel" == "S" ]; then
-   [ -r /etc/sysconfig/console ] && source /etc/sysconfig/console
-   dmesg -n "${LOGLEVEL:-7}"
-fi
-
-if [ "${IPROMPT}" == "yes" -a "${runlevel}" == "S" ]; then
-   # The total length of the distro welcome string, without escape codes
-   wlen=${wlen:-$(echo "Welcome to ${DISTRO}" | wc -c )}
-   welcome_message=${welcome_message:-"Welcome to ${INFO}${DISTRO}${NORMAL}"}
-
-   # The total length of the interactive string, without escape codes
-   ilen=${ilen:-$(echo "Press 'I' to enter interactive startup" | wc -c )}
-   i_message=${i_message:-"Press '${FAILURE}I${NORMAL}' to enter interactive startup"}
-
-
-   # dcol and icol are spaces before the message to center the message
-   # on screen. itime is the amount of wait time for the user to press a key
-   wcol=$(( ( ${COLUMNS} - ${wlen} ) / 2 ))
-   icol=$(( ( ${COLUMNS} - ${ilen} ) / 2 ))
-   itime=${itime:-"3"}
-
-   echo -e "\n\n"
-   echo -e "\\033[${wcol}G${welcome_message}"
-   echo -e "\\033[${icol}G${i_message}${NORMAL}"
-   echo ""
-   read -t "${itime}" -n 1 interactive 2>&1 > /dev/null
-fi
-
-# Make lower case
-[ "${interactive}" == "I" ] && interactive="i"
-[ "${interactive}" != "i" ] && interactive=""
-
-# Read the state file if it exists from runlevel S
-[ -r /run/interactive ] && source /run/interactive
-
-# Attempt to stop all services started by the previous runlevel,
-# and killed in this runlevel
-if [ "${previous}" != "N" ]; then
-   for i in $(ls -v /etc/rc.d/rc${runlevel}.d/K* 2> /dev/null)
-   do
-      check_script_status
-      if [ "${SCRIPT_STAT}" == "1" ]; then
-         SCRIPT_STAT="0"
-         continue
-      fi
-
-      suffix=${i#/etc/rc.d/rc$runlevel.d/K[0-9][0-9]}
-      prev_start=/etc/rc.d/rc$previous.d/S[0-9][0-9]$suffix
-      sysinit_start=/etc/rc.d/rcS.d/S[0-9][0-9]$suffix
-
-      if [ "${runlevel}" != "0" -a "${runlevel}" != "6" ]; then
-         if [ ! -f ${prev_start} -a  ! -f ${sysinit_start} ]; then
-            MSG="WARNING:\n\n${i} can't be "
-            MSG="${MSG}executed because it was not "
-            MSG="${MSG}not started in the previous "
-            MSG="${MSG}runlevel (${previous})."
-            log_warning_msg "$MSG"
-            continue
-         fi
-      fi
-
-      run ${i} stop
-      error_value=${?}
-
-      if [ "${error_value}" != "0" ]; then print_error_msg; fi
-   done
-fi
-
-if [ "${previous}" == "N" ]; then export IN_BOOT=1; fi
-
-if [ "$runlevel" == "6" -a -n "${FASTBOOT}" ]; then
-   touch /fastboot
-fi
-
-
-# Start all functions in this runlevel
-for i in $( ls -v /etc/rc.d/rc${runlevel}.d/S* 2> /dev/null)
-do
-   if [ "${previous}" != "N" ]; then
-      suffix=${i#/etc/rc.d/rc$runlevel.d/S[0-9][0-9]}
-      stop=/etc/rc.d/rc$runlevel.d/K[0-9][0-9]$suffix
-      prev_start=/etc/rc.d/rc$previous.d/S[0-9][0-9]$suffix
-
-      [ -f ${prev_start} -a ! -f ${stop} ] && continue
-   fi
-
-   check_script_status
-      if [ "${SCRIPT_STAT}" == "1" ]; then
-         SCRIPT_STAT="0"
-         continue
-      fi
-
-   case ${runlevel} in
-      0|6)
-         run ${i} stop
-         ;;
-      *)
-         run ${i} start
-         ;;
-   esac
-
-   error_value=${?}
-
-   if [ "${error_value}" != "0" ]; then print_error_msg; fi
-done
-
-# Store interactive variable on switch from runlevel S and remove if not
-if [ "${runlevel}" == "S" -a "${interactive}" == "i" ]; then
-    echo "interactive=\"i\"" > /run/interactive
-else
-    rm -f /run/interactive 2> /dev/null
-fi
-
-# Copy the boot log on initial boot only
-if [ "${previous}" == "N" -a  "${runlevel}" != "S" ]; then
-   cat $BOOTLOG >> /var/log/boot.log
-
-   # Mark the end of boot
-   echo "--------" >> /var/log/boot.log
-
-   # Remove the temporary file
-   rm -f $BOOTLOG 2> /dev/null
-fi
-
-# End rc
-
-
-
-
-
-
-

- D.2. /lib/lsb/init-functions -

-
-
-
-
#!/bin/sh
-########################################################################
-#
-# Begin /lib/lsb/init-funtions
-#
-# Description : Run Level Control Functions
-#
-# Authors     : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-#             : DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-# Notes       : With code based on Matthias Benkmann's simpleinit-msb
-#               http://winterdrache.de/linux/newboot/index.html
-#
-#               The file should be located in /lib/lsb
-#
-########################################################################
-
-## Environmental setup
-# Setup default values for environment
-umask 022
-export PATH="/bin:/usr/bin:/sbin:/usr/sbin"
-
-## Set color commands, used via echo
-# Please consult `man console_codes for more information
-# under the "ECMA-48 Set Graphics Rendition" section
-#
-# Warning: when switching from a 8bit to a 9bit font,
-# the linux console will reinterpret the bold (1;) to
-# the top 256 glyphs of the 9bit font.  This does
-# not affect framebuffer consoles
-
-NORMAL="\\033[0;39m"         # Standard console grey
-SUCCESS="\\033[1;32m"        # Success is green
-WARNING="\\033[1;33m"        # Warnings are yellow
-FAILURE="\\033[1;31m"        # Failures are red
-INFO="\\033[1;36m"           # Information is light cyan
-BRACKET="\\033[1;34m"        # Brackets are blue
-
-# Use a colored prefix
-BMPREFIX="      "
-SUCCESS_PREFIX="${SUCCESS}  *  ${NORMAL} "
-FAILURE_PREFIX="${FAILURE}*****${NORMAL} "
-WARNING_PREFIX="${WARNING} *** ${NORMAL} "
-SKIP_PREFIX="${INFO}  S   ${NORMAL}"
-
-SUCCESS_SUFFIX="${BRACKET}[${SUCCESS}  OK  ${BRACKET}]${NORMAL}"
-FAILURE_SUFFIX="${BRACKET}[${FAILURE} FAIL ${BRACKET}]${NORMAL}"
-WARNING_SUFFIX="${BRACKET}[${WARNING} WARN ${BRACKET}]${NORMAL}"
-SKIP_SUFFIX="${BRACKET}[${INFO} SKIP ${BRACKET}]${NORMAL}"
-
-BOOTLOG=/run/bootlog
-KILLDELAY=3
-SCRIPT_STAT="0"
-
-# Set any user specified environment variables e.g. HEADLESS
-[ -r /etc/sysconfig/rc.site ]  && . /etc/sysconfig/rc.site
-
-## Screen Dimensions
-# Find current screen size
-if [ -z "${COLUMNS}" ]; then
-   COLUMNS=$(stty size)
-   COLUMNS=${COLUMNS##* }
-fi
-
-# When using remote connections, such as a serial port, stty size returns 0
-if [ "${COLUMNS}" = "0" ]; then
-   COLUMNS=80
-fi
-
-## Measurements for positioning result messages
-COL=$((${COLUMNS} - 8))
-WCOL=$((${COL} - 2))
-
-## Set Cursor Position Commands, used via echo
-SET_COL="\\033[${COL}G"      # at the $COL char
-SET_WCOL="\\033[${WCOL}G"    # at the $WCOL char
-CURS_UP="\\033[1A\\033[0G"   # Up one line, at the 0'th char
-CURS_ZERO="\\033[0G"
-
-################################################################################
-# start_daemon()                                                               #
-# Usage: start_daemon [-f] [-n nicelevel] [-p pidfile] pathname [args...]      #
-#                                                                              #
-# Purpose: This runs the specified program as a daemon                         #
-#                                                                              #
-# Inputs: -f: (force) run the program even if it is already running.           #
-#         -n nicelevel: specify a nice level. See 'man nice(1)'.               #
-#         -p pidfile: use the specified file to determine PIDs.                #
-#         pathname: the complete path to the specified program                 #
-#         args: additional arguments passed to the program (pathname)          #
-#                                                                              #
-# Return values (as defined by LSB exit codes):                                #
-#       0 - program is running or service is OK                                #
-#       1 - generic or unspecified error                                       #
-#       2 - invalid or excessive argument(s)                                   #
-#       5 - program is not installed                                           #
-################################################################################
-start_daemon()
-{
-    local force=""
-    local nice="0"
-    local pidfile=""
-    local pidlist=""
-    local retval=""
-
-    # Process arguments
-    while true
-    do
-        case "${1}" in
-
-            -f)
-                force="1"
-                shift 1
-                ;;
-
-            -n)
-                nice="${2}"
-                shift 2
-                ;;
-
-            -p)
-                pidfile="${2}"
-                shift 2
-                ;;
-
-            -*)
-                return 2
-                ;;
-
-            *)
-                program="${1}"
-                break
-                ;;
-        esac
-    done
-
-    # Check for a valid program
-    if [ ! -e "${program}" ]; then return 5; fi
-
-    # Execute
-    if [ -z "${force}" ]; then
-        if [ -z "${pidfile}" ]; then
-            # Determine the pid by discovery
-            pidlist=`pidofproc "${1}"`
-            retval="${?}"
-        else
-            # The PID file contains the needed PIDs
-            # Note that by LSB requirement, the path must be given to pidofproc,
-            # however, it is not used by the current implementation or standard.
-            pidlist=`pidofproc -p "${pidfile}" "${1}"`
-            retval="${?}"
-        fi
-
-        # Return a value ONLY
-        # It is the init script's (or distribution's functions) responsibilty
-        # to log messages!
-        case "${retval}" in
-
-            0)
-                # Program is already running correctly, this is a
-                # successful start.
-                return 0
-                ;;
-
-            1)
-                # Program is not running, but an invalid pid file exists
-                # remove the pid file and continue
-                rm -f "${pidfile}"
-                ;;
-
-            3)
-                # Program is not running and no pidfile exists
-                # do nothing here, let start_deamon continue.
-                ;;
-
-            *)
-                # Others as returned by status values shall not be interpreted
-                # and returned as an unspecified error.
-                return 1
-                ;;
-        esac
-    fi
-
-    # Do the start!
-    nice -n "${nice}" "${@}"
-}
-
-################################################################################
-# killproc()                                                                   #
-# Usage: killproc [-p pidfile] pathname [signal]                               #
-#                                                                              #
-# Purpose: Send control signals to running processes                           #
-#                                                                              #
-# Inputs: -p pidfile, uses the specified pidfile                               #
-#         pathname, pathname to the specified program                          #
-#         signal, send this signal to pathname                                 #
-#                                                                              #
-# Return values (as defined by LSB exit codes):                                #
-#       0 - program (pathname) has stopped/is already stopped or a             #
-#           running program has been sent specified signal and stopped         #
-#           successfully                                                       #
-#       1 - generic or unspecified error                                       #
-#       2 - invalid or excessive argument(s)                                   #
-#       5 - program is not installed                                           #
-#       7 - program is not running and a signal was supplied                   #
-################################################################################
-killproc()
-{
-    local pidfile
-    local program
-    local prefix
-    local progname
-    local signal="-TERM"
-    local fallback="-KILL"
-    local nosig
-    local pidlist
-    local retval
-    local pid
-    local delay="30"
-    local piddead
-    local dtime
-
-    # Process arguments
-    while true; do
-        case "${1}" in
-            -p)
-                pidfile="${2}"
-                shift 2
-                ;;
-
-             *)
-                 program="${1}"
-                 if [ -n "${2}" ]; then
-                     signal="${2}"
-                     fallback=""
-                 else
-                     nosig=1
-                 fi
-
-                 # Error on additional arguments
-                 if [ -n "${3}" ]; then
-                     return 2
-                 else
-                     break
-                 fi
-                 ;;
-        esac
-    done
-
-    # Check for a valid program
-    if [ ! -e "${program}" ]; then return 5; fi
-
-    # Check for a valid signal
-    check_signal "${signal}"
-    if [ "${?}" -ne "0" ]; then return 2; fi
-
-    # Get a list of pids
-    if [ -z "${pidfile}" ]; then
-        # determine the pid by discovery
-        pidlist=`pidofproc "${1}"`
-        retval="${?}"
-    else
-        # The PID file contains the needed PIDs
-        # Note that by LSB requirement, the path must be given to pidofproc,
-        # however, it is not used by the current implementation or standard.
-        pidlist=`pidofproc -p "${pidfile}" "${1}"`
-        retval="${?}"
-    fi
-
-    # Return a value ONLY
-    # It is the init script's (or distribution's functions) responsibilty
-    # to log messages!
-    case "${retval}" in
-
-        0)
-            # Program is running correctly
-            # Do nothing here, let killproc continue.
-            ;;
-
-        1)
-            # Program is not running, but an invalid pid file exists
-            # Remove the pid file.
-
-            progname=${program##*/}
-
-            if [[ -e "/run/${progname}.pid" ]]; then
-                pidfile="/run/${progname}.pid"
-                rm -f "${pidfile}"
-            fi
-
-            # This is only a success if no signal was passed.
-            if [ -n "${nosig}" ]; then
-                return 0
-            else
-                return 7
-            fi
-            ;;
-
-        3)
-            # Program is not running and no pidfile exists
-            # This is only a success if no signal was passed.
-            if [ -n "${nosig}" ]; then
-                return 0
-            else
-                return 7
-            fi
-            ;;
-
-        *)
-            # Others as returned by status values shall not be interpreted
-            # and returned as an unspecified error.
-            return 1
-            ;;
-    esac
-
-    # Perform different actions for exit signals and control signals
-    check_sig_type "${signal}"
-
-    if [ "${?}" -eq "0" ]; then # Signal is used to terminate the program
-
-        # Account for empty pidlist (pid file still exists and no
-        # signal was given)
-        if [ "${pidlist}" != "" ]; then
-
-            # Kill the list of pids
-            for pid in ${pidlist}; do
-
-                kill -0 "${pid}" 2> /dev/null
-
-                if [ "${?}" -ne "0" ]; then
-                    # Process is dead, continue to next and assume all is well
-                    continue
-                else
-                    kill "${signal}" "${pid}" 2> /dev/null
-
-                    # Wait up to ${delay}/10 seconds to for "${pid}" to
-                    # terminate in 10ths of a second
-
-                    while [ "${delay}" -ne "0" ]; do
-                        kill -0 "${pid}" 2> /dev/null || piddead="1"
-                        if [ "${piddead}" = "1" ]; then break; fi
-                        sleep 0.1
-                        delay="$(( ${delay} - 1 ))"
-                    done
-
-                    # If a fallback is set, and program is still running, then
-                    # use the fallback
-                    if [ -n "${fallback}" -a "${piddead}" != "1" ]; then
-                        kill "${fallback}" "${pid}" 2> /dev/null
-                        sleep 1
-                        # Check again, and fail if still running
-                        kill -0 "${pid}" 2> /dev/null && return 1
-                    fi
-                fi
-            done
-        fi
-
-        # Check for and remove stale PID files.
-        if [ -z "${pidfile}" ]; then
-            # Find the basename of $program
-            prefix=`echo "${program}" | sed 's/[^/]*$//'`
-            progname=`echo "${program}" | sed "s@${prefix}@@"`
-
-            if [ -e "/run/${progname}.pid" ]; then
-                rm -f "/run/${progname}.pid" 2> /dev/null
-            fi
-        else
-            if [ -e "${pidfile}" ]; then rm -f "${pidfile}" 2> /dev/null; fi
-        fi
-
-    # For signals that do not expect a program to exit, simply
-    # let kill do its job, and evaluate kill's return for value
-
-    else # check_sig_type - signal is not used to terminate program
-        for pid in ${pidlist}; do
-            kill "${signal}" "${pid}"
-            if [ "${?}" -ne "0" ]; then return 1; fi
-        done
-    fi
-}
-
-################################################################################
-# pidofproc()                                                                  #
-# Usage: pidofproc [-p pidfile] pathname                                       #
-#                                                                              #
-# Purpose: This function returns one or more pid(s) for a particular daemon    #
-#                                                                              #
-# Inputs: -p pidfile, use the specified pidfile instead of pidof               #
-#         pathname, path to the specified program                              #
-#                                                                              #
-# Return values (as defined by LSB status codes):                              #
-#       0 - Success (PIDs to stdout)                                           #
-#       1 - Program is dead, PID file still exists (remaining PIDs output)     #
-#       3 - Program is not running (no output)                                 #
-################################################################################
-pidofproc()
-{
-    local pidfile
-    local program
-    local prefix
-    local progname
-    local pidlist
-    local lpids
-    local exitstatus="0"
-
-    # Process arguments
-    while true; do
-        case "${1}" in
-
-            -p)
-                pidfile="${2}"
-                shift 2
-                ;;
-
-            *)
-                program="${1}"
-                if [ -n "${2}" ]; then
-                    # Too many arguments
-                    # Since this is status, return unknown
-                    return 4
-                else
-                    break
-                fi
-                ;;
-        esac
-    done
-
-    # If a PID file is not specified, try and find one.
-    if [ -z "${pidfile}" ]; then
-        # Get the program's basename
-        prefix=`echo "${program}" | sed 's/[^/]*$//'`
-
-        if [ -z "${prefix}" ]; then
-           progname="${program}"
-        else
-           progname=`echo "${program}" | sed "s@${prefix}@@"`
-        fi
-
-        # If a PID file exists with that name, assume that is it.
-        if [ -e "/run/${progname}.pid" ]; then
-            pidfile="/run/${progname}.pid"
-        fi
-    fi
-
-    # If a PID file is set and exists, use it.
-    if [ -n "${pidfile}" -a -e "${pidfile}" ]; then
-
-        # Use the value in the first line of the pidfile
-        pidlist=`/bin/head -n1 "${pidfile}"`
-        # This can optionally be written as 'sed 1q' to repalce 'head -n1'
-        # should LFS move /bin/head to /usr/bin/head
-    else
-        # Use pidof
-        pidlist=`pidof "${program}"`
-    fi
-
-    # Figure out if all listed PIDs are running.
-    for pid in ${pidlist}; do
-        kill -0 ${pid} 2> /dev/null
-
-        if [ "${?}" -eq "0" ]; then
-            lpids="${lpids}${pid} "
-        else
-            exitstatus="1"
-        fi
-    done
-
-    if [ -z "${lpids}" -a ! -f "${pidfile}" ]; then
-        return 3
-    else
-        echo "${lpids}"
-        return "${exitstatus}"
-    fi
-}
-
-################################################################################
-# statusproc()                                                                 #
-# Usage: statusproc [-p pidfile] pathname                                      #
-#                                                                              #
-# Purpose: This function prints the status of a particular daemon to stdout    #
-#                                                                              #
-# Inputs: -p pidfile, use the specified pidfile instead of pidof               #
-#         pathname, path to the specified program                              #
-#                                                                              #
-# Return values:                                                               #
-#       0 - Status printed                                                     #
-#       1 - Input error. The daemon to check was not specified.                #
-################################################################################
-statusproc()
-{
-   local pidfile
-   local pidlist
-
-   if [ "${#}" = "0" ]; then
-      echo "Usage: statusproc [-p pidfle] {program}"
-      exit 1
-   fi
-
-   # Process arguments
-   while true; do
-       case "${1}" in
-
-           -p)
-               pidfile="${2}"
-               shift 2
-               ;;
-
-           *)
-               if [ -n "${2}" ]; then
-                   echo "Too many arguments"
-                   return 1
-               else
-                   break
-               fi
-               ;;
-       esac
-   done
-
-   if [ -n "${pidfile}" ]; then
-      pidlist=`pidofproc -p "${pidfile}" $@`
-   else
-      pidlist=`pidofproc $@`
-   fi
-
-   # Trim trailing blanks
-   pidlist=`echo "${pidlist}" | sed -r 's/ +$//'`
-
-   base="${1##*/}"
-
-   if [ -n "${pidlist}" ]; then
-      /bin/echo -e "${INFO}${base} is running with Process" \
-         "ID(s) ${pidlist}.${NORMAL}"
-   else
-      if [ -n "${base}" -a -e "/run/${base}.pid" ]; then
-         /bin/echo -e "${WARNING}${1} is not running but" \
-            "/run/${base}.pid exists.${NORMAL}"
-      else
-         if [ -n "${pidfile}" -a -e "${pidfile}" ]; then
-            /bin/echo -e "${WARNING}${1} is not running" \
-               "but ${pidfile} exists.${NORMAL}"
-         else
-            /bin/echo -e "${INFO}${1} is not running.${NORMAL}"
-         fi
-      fi
-   fi
-}
-
-################################################################################
-# timespec()                                                                   #
-#                                                                              #
-# Purpose: An internal utility function to format a timestamp                  #
-#          a boot log file.  Sets the STAMP variable.                          #
-#                                                                              #
-# Return value: Not used                                                       #
-################################################################################
-timespec()
-{
-   STAMP="$(echo `date +"%b %d %T %:z"` `hostname`) "
-   return 0
-}
-
-################################################################################
-# log_success_msg()                                                            #
-# Usage: log_success_msg ["message"]                                           #
-#                                                                              #
-# Purpose: Print a successful status message to the screen and                 #
-#          a boot log file.                                                    #
-#                                                                              #
-# Inputs: $@ - Message                                                         #
-#                                                                              #
-# Return values: Not used                                                      #
-################################################################################
-log_success_msg()
-{
-    /bin/echo -n -e "${BMPREFIX}${@}"
-    /bin/echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${SET_COL}${SUCCESS_SUFFIX}"
-
-    # Strip non-printable characters from log file
-    logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
-
-    timespec
-    /bin/echo -e "${STAMP} ${logmessage} OK" >> ${BOOTLOG}
-
-    return 0
-}
-
-log_success_msg2()
-{
-    /bin/echo -n -e "${BMPREFIX}${@}"
-    /bin/echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${SET_COL}${SUCCESS_SUFFIX}"
-
-    echo " OK" >> ${BOOTLOG}
-
-    return 0
-}
-
-################################################################################
-# log_failure_msg()                                                            #
-# Usage: log_failure_msg ["message"]                                           #
-#                                                                              #
-# Purpose: Print a failure status message to the screen and                    #
-#          a boot log file.                                                    #
-#                                                                              #
-# Inputs: $@ - Message                                                         #
-#                                                                              #
-# Return values: Not used                                                      #
-################################################################################
-log_failure_msg()
-{
-    /bin/echo -n -e "${BMPREFIX}${@}"
-    /bin/echo -e "${CURS_ZERO}${FAILURE_PREFIX}${SET_COL}${FAILURE_SUFFIX}"
-
-    # Strip non-printable characters from log file
-
-    timespec
-    logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
-    /bin/echo -e "${STAMP} ${logmessage} FAIL" >> ${BOOTLOG}
-
-    return 0
-}
-
-log_failure_msg2()
-{
-    /bin/echo -n -e "${BMPREFIX}${@}"
-    /bin/echo -e "${CURS_ZERO}${FAILURE_PREFIX}${SET_COL}${FAILURE_SUFFIX}"
-
-    echo "FAIL" >> ${BOOTLOG}
-
-    return 0
-}
-
-################################################################################
-# log_warning_msg()                                                            #
-# Usage: log_warning_msg ["message"]                                           #
-#                                                                              #
-# Purpose: Print a warning status message to the screen and                    #
-#          a boot log file.                                                    #
-#                                                                              #
-# Return values: Not used                                                      #
-################################################################################
-log_warning_msg()
-{
-    /bin/echo -n -e "${BMPREFIX}${@}"
-    /bin/echo -e "${CURS_ZERO}${WARNING_PREFIX}${SET_COL}${WARNING_SUFFIX}"
-
-    # Strip non-printable characters from log file
-    logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
-    timespec
-    /bin/echo -e "${STAMP} ${logmessage} WARN" >> ${BOOTLOG}
-
-    return 0
-}
-
-log_skip_msg()
-{
-    /bin/echo -n -e "${BMPREFIX}${@}"
-    /bin/echo -e "${CURS_ZERO}${SKIP_PREFIX}${SET_COL}${SKIP_SUFFIX}"
-
-    # Strip non-printable characters from log file
-    logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
-    /bin/echo "SKIP" >> ${BOOTLOG}
-
-    return 0
-}
-
-################################################################################
-# log_info_msg()                                                               #
-# Usage: log_info_msg message                                                  #
-#                                                                              #
-# Purpose: Print an information message to the screen and                      #
-#          a boot log file.  Does not print a trailing newline character.      #
-#                                                                              #
-# Return values: Not used                                                      #
-################################################################################
-log_info_msg()
-{
-    /bin/echo -n -e "${BMPREFIX}${@}"
-
-    # Strip non-printable characters from log file
-    logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
-    timespec
-    /bin/echo -n -e "${STAMP} ${logmessage}" >> ${BOOTLOG}
-
-    return 0
-}
-
-log_info_msg2()
-{
-    /bin/echo -n -e "${@}"
-
-    # Strip non-printable characters from log file
-    logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
-    /bin/echo -n -e "${logmessage}" >> ${BOOTLOG}
-
-    return 0
-}
-
-################################################################################
-# evaluate_retval()                                                            #
-# Usage: Evaluate a return value and print success or failyure as appropriate  #
-#                                                                              #
-# Purpose: Convenience function to terminate an info message                   #
-#                                                                              #
-# Return values: Not used                                                      #
-################################################################################
-evaluate_retval()
-{
-   local error_value="${?}"
-
-   if [ ${error_value} = 0 ]; then
-      log_success_msg2
-   else
-      log_failure_msg2
-   fi
-}
-
-################################################################################
-# check_signal()                                                               #
-# Usage: check_signal [ -{signal} ]                                            #
-#                                                                              #
-# Purpose: Check for a valid signal.  This is not defined by any LSB draft,    #
-#          however, it is required to check the signals to determine if the    #
-#          signals chosen are invalid arguments to the other functions.        #
-#                                                                              #
-# Inputs: Accepts a single string value in the form of -{signal}               #
-#                                                                              #
-# Return values:                                                               #
-#       0 - Success (signal is valid                                           #
-#       1 - Signal is not valid                                                #
-################################################################################
-check_signal()
-{
-    local valsig
-
-    # Add error handling for invalid signals
-    valsig=" -ALRM -HUP -INT -KILL -PIPE -POLL -PROF -TERM -USR1 -USR2"
-    valsig="${valsig} -VTALRM -STKFLT -PWR -WINCH -CHLD -URG -TSTP -TTIN"
-    valsig="${valsig} -TTOU -STOP -CONT -ABRT -FPE -ILL -QUIT -SEGV -TRAP"
-    valsig="${valsig} -SYS -EMT -BUS -XCPU -XFSZ -0 -1 -2 -3 -4 -5 -6 -8 -9"
-    valsig="${valsig} -11 -13 -14 -15 "
-
-    echo "${valsig}" | grep -- " ${1} " > /dev/null
-
-    if [ "${?}" -eq "0" ]; then
-        return 0
-    else
-        return 1
-    fi
-}
-
-################################################################################
-# check_sig_type()                                                             #
-# Usage: check_signal [ -{signal} | {signal} ]                                 #
-#                                                                              #
-# Purpose: Check if signal is a program termination signal or a control signal #
-#          This is not defined by any LSB draft, however, it is required to    #
-#          check the signals to determine if they are intended to end a        #
-#          program or simply to control it.                                    #
-#                                                                              #
-# Inputs: Accepts a single string value in the form or -{signal} or {signal}   #
-#                                                                              #
-# Return values:                                                               #
-#       0 - Signal is used for program termination                             #
-#       1 - Signal is used for program control                                 #
-################################################################################
-check_sig_type()
-{
-    local valsig
-
-    # The list of termination signals (limited to generally used items)
-    valsig=" -ALRM -INT -KILL -TERM -PWR -STOP -ABRT -QUIT -2 -3 -6 -9 -14 -15 "
-
-    echo "${valsig}" | grep -- " ${1} " > /dev/null
-
-    if [ "${?}" -eq "0" ]; then
-        return 0
-    else
-        return 1
-    fi
-}
-
-################################################################################
-# wait_for_user()                                                              #
-#                                                                              #
-# Purpose: Wait for the user to respond if not a headless system               #
-#                                                                              #
-################################################################################
-wait_for_user()
-{
-   # Wait for the user by default
-   [ "${HEADLESS=0}" = "0" ] && read ENTER
-   return 0
-}
-
-################################################################################
-# is_true()                                                                    #
-#                                                                              #
-# Purpose: Utility to test if a variable is true | yes | 1                     #
-#                                                                              #
-################################################################################
-is_true()
-{
-   [ "$1" = "1" ] || [ "$1" = "yes" ] || [ "$1" = "true" ] ||  [ "$1" = "y" ] ||
-   [ "$1" = "t" ]
-}
-
-# End /lib/lsb/init-functions
-
-
-
-
-
-
-

- D.3. /etc/rc.d/init.d/mountvirtfs -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin mountvirtfs
-#
-# Description : Mount proc, sysfs, and run
-#
-# Authors     : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            mountvirtfs
-# Required-Start:      $first
-# Should-Start:
-# Required-Stop:
-# Should-Stop:
-# Default-Start:       S
-# Default-Stop:
-# Short-Description:   Mounts /sys and /proc virtual (kernel) filesystems.
-#                      Mounts /run (tmpfs) and /dev (devtmpfs).
-# Description:         Mounts /sys and /proc virtual (kernel) filesystems.
-#                      Mounts /run (tmpfs) and /dev (devtmpfs).
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
-   start)
-      # Make sure /run is available before logging any messages
-      if ! mountpoint /run >/dev/null; then
-         mount /run || failed=1
-      fi
-
-      mkdir -p /run/lock /run/shm
-      chmod 1777 /run/shm /run/lock
-
-      log_info_msg "Mounting virtual file systems: ${INFO}/run"
-
-      if ! mountpoint /proc >/dev/null; then
-         log_info_msg2 " ${INFO}/proc"
-         mount -o nosuid,noexec,nodev /proc || failed=1
-      fi
-
-      if ! mountpoint /sys >/dev/null; then
-         log_info_msg2 " ${INFO}/sys"
-         mount -o nosuid,noexec,nodev /sys || failed=1
-      fi
-
-      if ! mountpoint /dev >/dev/null; then
-         log_info_msg2 " ${INFO}/dev"
-         mount -o mode=0755,nosuid /dev  || failed=1
-      fi
-
-      ln -sfn /run/shm /dev/shm
-
-      (exit ${failed})
-      evaluate_retval
-      exit $failed
-      ;;
-
-   *)
-      echo "Usage: ${0} {start}"
-      exit 1
-      ;;
-esac
-
-# End mountvirtfs
-
-
-
-
-
-
-

- D.4. /etc/rc.d/init.d/modules -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin modules
-#
-# Description : Module auto-loading script
-#
-# Authors     : Zack Winkles
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            modules
-# Required-Start:      mountvirtfs
-# Should-Start:
-# Required-Stop:
-# Should-Stop:
-# Default-Start:       S
-# Default-Stop:
-# Short-Description:   Loads required modules.
-# Description:         Loads modules listed in /etc/sysconfig/modules.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-# Assure that the kernel has module support.
-[ -e /proc/modules ] || exit 0
-
-. /lib/lsb/init-functions
-
-case "${1}" in
-   start)
-      # Exit if there's no modules file or there are no
-      # valid entries
-      [ -r /etc/sysconfig/modules ]             || exit 0
-      egrep -qv '^($|#)' /etc/sysconfig/modules || exit 0
-
-      log_info_msg "Loading modules:"
-
-      # Only try to load modules if the user has actually given us
-      # some modules to load.
-
-      while read module args; do
-
-         # Ignore comments and blank lines.
-         case "$module" in
-            ""|"#"*) continue ;;
-         esac
-
-         # Attempt to load the module, passing any arguments provided.
-         modprobe ${module} ${args} >/dev/null
-
-         # Print the module name if successful, otherwise take note.
-         if [ $? -eq 0 ]; then
-            log_info_msg2 " ${module}"
-         else
-            failedmod="${failedmod} ${module}"
-         fi
-      done < /etc/sysconfig/modules
-
-      # Print a message about successfully loaded modules on the correct line.
-      log_success_msg2
-
-      # Print a failure message with a list of any modules that
-      # may have failed to load.
-      if [ -n "${failedmod}" ]; then
-         log_failure_msg "Failed to load modules:${failedmod}"
-         exit 1
-      fi
-      ;;
-
-   *)
-      echo "Usage: ${0} {start}"
-      exit 1
-      ;;
-esac
-
-exit 0
-
-# End modules
-
-
-
-
-
-
-

- D.5. /etc/rc.d/init.d/udev -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin udev
-#
-# Description : Udev cold-plugging script
-#
-# Authors     : Zack Winkles, Alexander E. Patrakov
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            udev $time
-# Required-Start:      localnet
-# Should-Start:        modules
-# Required-Stop:
-# Should-Stop:
-# Default-Start:       S
-# Default-Stop:
-# Short-Description:   Populates /dev with device nodes.
-# Description:         Mounts a tempfs on /dev and starts the udevd daemon.
-#                      Device nodes are created as defined by udev.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
-   start)
-      log_info_msg "Populating /dev with device nodes... "
-      if ! grep -q '[[:space:]]sysfs' /proc/mounts; then
-         log_failure_msg2
-         msg="FAILURE:\n\nUnable to create "
-         msg="${msg}devices without a SysFS filesystem\n\n"
-         msg="${msg}After you press Enter, this system "
-         msg="${msg}will be halted and powered off.\n\n"
-         log_info_msg "$msg"
-         log_info_msg "Press Enter to continue..."
-         wait_for_user
-         /etc/rc.d/init.d/halt stop
-      fi
-
-      # Start the udev daemon to continually watch for, and act on,
-      # uevents
-      /sbin/udevd --daemon
-
-      # Now traverse /sys in order to "coldplug" devices that have
-      # already been discovered
-      /sbin/udevadm trigger --action=add    --type=subsystems
-      /sbin/udevadm trigger --action=add    --type=devices
-      /sbin/udevadm trigger --action=change --type=devices
-
-      # Now wait for udevd to process the uevents we triggered
-      if ! is_true "$OMIT_UDEV_SETTLE"; then
-         /sbin/udevadm settle
-      fi
-
-      # If any LVM based partitions are on the system, ensure they
-      # are activated so they can be used.
-      if [ -x /sbin/vgchange ]; then /sbin/vgchange -a y >/dev/null; fi
-
-      log_success_msg2
-      ;;
-
-   *)
-      echo "Usage ${0} {start}"
-      exit 1
-      ;;
-esac
-
-exit 0
-
-# End udev
-
-
-
-
-
-
-

- D.6. /etc/rc.d/init.d/swap -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin swap
-#
-# Description : Swap Control Script
-#
-# Authors     : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            swap
-# Required-Start:      udev
-# Should-Start:        modules
-# Required-Stop:       localnet
-# Should-Stop:         $local_fs
-# Default-Start:       S
-# Default-Stop:        0 6
-# Short-Description:   Mounts and unmounts swap partitions.
-# Description:         Mounts and unmounts swap partitions defined in
-#                      /etc/fstab.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
-   start)
-      log_info_msg "Activating all swap files/partitions..."
-      swapon -a
-      evaluate_retval
-      ;;
-
-   stop)
-      log_info_msg "Deactivating all swap files/partitions..."
-      swapoff -a
-      evaluate_retval
-      ;;
-
-   restart)
-      ${0} stop
-      sleep 1
-      ${0} start
-      ;;
-
-   status)
-      log_success_msg "Retrieving swap status."
-      swapon -s
-      ;;
-
-   *)
-      echo "Usage: ${0} {start|stop|restart|status}"
-      exit 1
-      ;;
-esac
-
-exit 0
-
-# End swap
-
-
-
-
-
-
-

- D.7. /etc/rc.d/init.d/setclock -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin setclock
-#
-# Description : Setting Linux Clock
-#
-# Authors     : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:
-# Required-Start:
-# Should-Start:        modules
-# Required-Stop:
-# Should-Stop:         $syslog
-# Default-Start:       S
-# Default-Stop:
-# Short-Description:   Stores and restores time from the hardware clock
-# Description:         On boot, system time is obtained from hwclock.  The
-#                      hardware clock can also be set on shutdown.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-[ -r /etc/sysconfig/clock ] && . /etc/sysconfig/clock
-
-
-case "${UTC}" in
-   yes|true|1)
-      CLOCKPARAMS="${CLOCKPARAMS} --utc"
-      ;;
-
-   no|false|0)
-      CLOCKPARAMS="${CLOCKPARAMS} --localtime"
-      ;;
-
-esac
-
-case ${1} in
-   start)
-      hwclock --hctosys ${CLOCKPARAMS} >/dev/null
-      ;;
-
-   stop)
-      log_info_msg "Setting hardware clock..."
-      hwclock --systohc ${CLOCKPARAMS} >/dev/null
-      evaluate_retval
-      ;;
-
-   *)
-      echo "Usage: ${0} {start|stop}"
-      exit 1
-      ;;
-
-esac
-
-exit 0
-
-
-
-
-
-
-

- D.8. /etc/rc.d/init.d/checkfs -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin checkfs
-#
-# Description : File System Check
-#
-# Authors     : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-#               A. Luebke - luebke@users.sourceforge.net
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-# Based on checkfs script from LFS-3.1 and earlier.
-#
-# From man fsck
-# 0    - No errors
-# 1    - File system errors corrected
-# 2    - System should be rebooted
-# 4    - File system errors left uncorrected
-# 8    - Operational error
-# 16   - Usage or syntax error
-# 32   - Fsck canceled by user request
-# 128  - Shared library error
-#
-#########################################################################
-
-### BEGIN INIT INFO
-# Provides:            checkfs
-# Required-Start:      udev swap
-# Should-Start:
-# Required-Stop:
-# Should-Stop:
-# Default-Start:       S
-# Default-Stop:
-# Short-Description:   Checks local filesystems before mounting.
-# Description:         Checks local filesystmes before mounting.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
-   start)
-      if [ -f /fastboot ]; then
-         msg="/fastboot found, will omit "
-         msg="${msg} file system checks as requested.\n"
-         log_info_msg "${msg}"
-         exit 0
-      fi
-
-      log_info_msg "Mounting root file system in read-only mode... "
-      mount -n -o remount,ro / >/dev/null
-
-      if [ ${?} != 0 ]; then
-         log_failure_msg2
-         msg="\n\nCannot check root "
-         msg="${msg}filesystem because it could not be mounted "
-         msg="${msg}in read-only mode.\n\n"
-         msg="${msg}After you press Enter, this system will be "
-         msg="${msg}halted and powered off.\n\n"
-         log_failure_msg "${msg}"
-
-         log_info_msg "Press Enter to continue..."
-         wait_for_user
-         /etc/rc.d/init.d/halt stop
-      else
-         log_success_msg2
-      fi
-
-      if [ -f /forcefsck ]; then
-         msg="/forcefsck found, forcing file"
-         msg="${msg} system checks as requested."
-         log_success_msg "$msg"
-         options="-f"
-      else
-         options=""
-      fi
-
-      log_info_msg "Checking file systems..."
-      # Note: -a option used to be -p; but this fails e.g. on fsck.minix
-      if is_true "$VERBOSE_FSCK"; then
-        fsck ${options} -a -A -C -T
-      else
-        fsck ${options} -a -A -C -T >/dev/null
-      fi
-
-      error_value=${?}
-
-      if [ "${error_value}" = 0 ]; then
-         log_success_msg2
-      fi
-
-      if [ "${error_value}" = 1 ]; then
-         msg="\nWARNING:\n\nFile system errors "
-         msg="${msg}were found and have been corrected.\n"
-         msg="${msg}      You may want to double-check that "
-         msg="${msg}everything was fixed properly."
-         log_warning_msg "$msg"
-      fi
-
-      if [ "${error_value}" = 2 -o "${error_value}" = 3 ]; then
-         msg="\nWARNING:\n\nFile system errors "
-         msg="${msg}were found and have been been "
-         msg="${msg}corrected, but the nature of the "
-         msg="${msg}errors require this system to be rebooted.\n\n"
-         msg="${msg}After you press enter, "
-         msg="${msg}this system will be rebooted\n\n"
-         log_failure_msg "$msg"
-
-         log_info_msg "Press Enter to continue..."
-         wait_for_user
-         reboot -f
-      fi
-
-      if [ "${error_value}" -gt 3 -a "${error_value}" -lt 16 ]; then
-         msg="\nFAILURE:\n\nFile system errors "
-         msg="${msg}were encountered that could not be "
-         msg="${msg}fixed automatically.\nThis system "
-         msg="${msg}cannot continue to boot and will "
-         msg="${msg}therefore be halted until those "
-         msg="${msg}errors are fixed manually by a "
-         msg="${msg}System Administrator.\n\n"
-         msg="${msg}After you press Enter, this system will be "
-         msg="${msg}halted and powered off.\n\n"
-         log_failure_msg "$msg"
-
-         log_info_msg "Press Enter to continue..."
-         wait_for_user
-         /etc/rc.d/init.d/halt stop
-      fi
-
-      if [ "${error_value}" -ge 16 ]; then
-         msg="FAILURE:\n\nUnexpected failure "
-         msg="${msg}running fsck.  Exited with error "
-         msg="${msg} code: ${error_value}.\n"
-         log_info_msg $msg
-         exit ${error_value}
-      fi
-
-      exit 0
-      ;;
-   *)
-      echo "Usage: ${0} {start}"
-      exit 1
-      ;;
-esac
-
-# End checkfs
-
-
-
-
-
-
-

- D.9. /etc/rc.d/init.d/mountfs -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin mountfs
-#
-# Description : File System Mount Script
-#
-# Authors     : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            $local_fs
-# Required-Start:      udev checkfs
-# Should-Start:        modules
-# Required-Stop:       localnet
-# Should-Stop:
-# Default-Start:       S
-# Default-Stop:        0 6
-# Short-Description:   Mounts/unmounts local filesystems defined in /etc/fstab.
-# Description:         Remounts root filesystem read/write and mounts all
-#                      remaining local filesystems defined in /etc/fstab on
-#                      start.  Remounts root filesystem read-only and unmounts
-#                      remaining filesystems on stop.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
-   start)
-      log_info_msg "Remounting root file system in read-write mode..."
-      mount --options remount,rw / >/dev/null
-      evaluate_retval
-
-      # Remove fsck-related file system watermarks.
-      rm -f /fastboot /forcefsck
-
-      # Make sure /dev/pts exists
-      mkdir -p /dev/pts
-
-      # This will mount all filesystems that do not have _netdev in
-      # their option list.  _netdev denotes a network filesystem.
-
-      log_info_msg "Mounting remaining file systems..."
-      failed=0
-      mount --all --test-opts no_netdev >/dev/null || failed=1
-      evaluate_retval
-      exit $failed
-      ;;
-
-   stop)
-      # Don't unmount virtual file systems like /run
-      log_info_msg "Unmounting all other currently mounted file systems..."
-      # Ensure any loop devies are removed
-      losetup -D
-      umount --all --detach-loop --read-only \
-             --types notmpfs,nosysfs,nodevtmpfs,noproc,nodevpts >/dev/null
-      evaluate_retval
-
-      # Make sure / is mounted read only (umount bug)
-      mount --options remount,ro /
-
-      # Make all LVM volume groups unavailable, if appropriate
-      # This fails if swap or / are on an LVM partition
-      #if [ -x /sbin/vgchange ]; then /sbin/vgchange -an > /dev/null; fi
-      ;;
-
-   *)
-      echo "Usage: ${0} {start|stop}"
-      exit 1
-      ;;
-esac
-
-# End mountfs
-
-
-
-
-
-
-

- D.10. /etc/rc.d/init.d/udev_retry -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin udev_retry
-#
-# Description : Udev cold-plugging script (retry)
-#
-# Authors     : Alexander E. Patrakov
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#               Bryan Kadzban -
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            udev_retry
-# Required-Start:      udev
-# Should-Start:        $local_fs cleanfs
-# Required-Stop:
-# Should-Stop:
-# Default-Start:       S
-# Default-Stop:
-# Short-Description:   Replays failed uevents and creates additional devices.
-# Description:         Replays any failed uevents that were skipped due to
-#                      slow hardware initialization, and creates those needed
-#                      device nodes
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
-   start)
-      log_info_msg "Retrying failed uevents, if any..."
-
-      # As of udev-186, the --run option is no longer valid
-      #rundir=$(/sbin/udevadm info --run)
-      rundir=/run/udev
-      # From Debian: "copy the rules generated before / was mounted
-      # read-write":
-
-      for file in ${rundir}/tmp-rules--*; do
-         dest=${file##*tmp-rules--}
-         [ "$dest" = '*' ] && break
-         cat $file >> /etc/udev/rules.d/$dest
-         rm -f $file
-      done
-
-      # Re-trigger the uevents that may have failed,
-      # in hope they will succeed now
-      /bin/sed -e 's/#.*$//' /etc/sysconfig/udev_retry | /bin/grep -v '^$' | \
-      while read line ; do
-         for subsystem in $line ; do
-            /sbin/udevadm trigger --subsystem-match=$subsystem --action=add
-         done
-      done
-
-      # Now wait for udevd to process the uevents we triggered
-      if ! is_true "$OMIT_UDEV_RETRY_SETTLE"; then
-         /sbin/udevadm settle
-      fi
-
-      evaluate_retval
-      ;;
-
-   *)
-      echo "Usage ${0} {start}"
-      exit 1
-      ;;
-esac
-
-exit 0
-
-# End udev_retry
-
-
-
-
-
-
-

- D.11. /etc/rc.d/init.d/cleanfs -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin cleanfs
-#
-# Description : Clean file system
-#
-# Authors     : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            cleanfs
-# Required-Start:      $local_fs
-# Should-Start:
-# Required-Stop:
-# Should-Stop:
-# Default-Start:       S
-# Default-Stop:
-# Short-Description:   Cleans temporary directories early in the boot process.
-# Description:         Cleans temporary directories /run, /var/lock, and
-#                      optionally, /tmp.  cleanfs also creates /run/utmp
-#                      and any files defined in /etc/sysconfig/createfiles.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-# Function to create files/directory on boot.
-create_files()
-{
-   # Input to file descriptor 9 and output to stdin (redirection)
-   exec 9>&0 < /etc/sysconfig/createfiles
-
-   while read name type perm usr grp dtype maj min junk
-   do
-      # Ignore comments and blank lines.
-      case "${name}" in
-         ""|\#*) continue ;;
-      esac
-
-      # Ignore existing files.
-      if [ ! -e "${name}" ]; then
-         # Create stuff based on its type.
-         case "${type}" in
-            dir)
-               mkdir "${name}"
-               ;;
-            file)
-               :> "${name}"
-               ;;
-            dev)
-               case "${dtype}" in
-                  char)
-                     mknod "${name}" c ${maj} ${min}
-                     ;;
-                  block)
-                     mknod "${name}" b ${maj} ${min}
-                     ;;
-                  pipe)
-                     mknod "${name}" p
-                     ;;
-                  *)
-                     log_warning_msg "\nUnknown device type: ${dtype}"
-                     ;;
-               esac
-               ;;
-            *)
-               log_warning_msg "\nUnknown type: ${type}"
-               continue
-               ;;
-         esac
-
-         # Set up the permissions, too.
-         chown ${usr}:${grp} "${name}"
-         chmod ${perm} "${name}"
-      fi
-   done
-
-   # Close file descriptor 9 (end redirection)
-   exec 0>&9 9>&-
-   return 0
-}
-
-case "${1}" in
-   start)
-      log_info_msg "Cleaning file systems:"
-
-      if [ "${SKIPTMPCLEAN}" = "" ]; then
-         log_info_msg2 " /tmp"
-         cd /tmp &&
-         find . -xdev -mindepth 1 ! -name lost+found -delete || failed=1
-      fi
-
-      > /run/utmp
-
-      if grep -q '^utmp:' /etc/group ; then
-         chmod 664 /run/utmp
-         chgrp utmp /run/utmp
-      fi
-
-      (exit ${failed})
-      evaluate_retval
-
-      if egrep -qv '^(#|$)' /etc/sysconfig/createfiles 2>/dev/null; then
-         log_info_msg "Creating files and directories... "
-         create_files      # Always returns 0
-         evaluate_retval
-      fi
-
-      exit $failed
-      ;;
-   *)
-      echo "Usage: ${0} {start}"
-      exit 1
-      ;;
-esac
-
-# End cleanfs
-
-
-
-
-
-
-

- D.12. /etc/rc.d/init.d/console -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin console
-#
-# Description : Sets keymap and screen font
-#
-# Authors     : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-#               Alexander E. Patrakov
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            console
-# Required-Start:      $local_fs
-# Should-Start:        udev_retry
-# Required-Stop:
-# Should-Stop:
-# Default-Start:       S
-# Default-Stop:
-# Short-Description:   Sets up a localised console.
-# Description:         Sets up fonts and language settings for the user's
-#                      local as defined by /etc/sysconfig/console.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-# Native English speakers probably don't have /etc/sysconfig/console at all
-[ -r /etc/sysconfig/console ] && . /etc/sysconfig/console
-
-is_true()
-{
-   [ "$1" = "1" ] || [ "$1" = "yes" ] || [ "$1" = "true" ]
-}
-
-failed=0
-
-case "${1}" in
-   start)
-      # See if we need to do anything
-      if [ -z "${KEYMAP}"         ] && [ -z "${KEYMAP_CORRECTIONS}" ] &&
-         [ -z "${FONT}"           ] && [ -z "${LEGACY_CHARSET}"     ] &&
-         ! is_true "${UNICODE}"; then
-         exit 0
-      fi
-
-      # There should be no bogus failures below this line!
-      log_info_msg "Setting up Linux console..."
-
-      # Figure out if a framebuffer console is used
-      [ -d /sys/class/graphics/fb0 ] && use_fb=1 || use_fb=0
-
-      # Figure out the command to set the console into the
-      # desired mode
-      is_true "${UNICODE}" &&
-         MODE_COMMAND="echo -en '\033%G' && kbd_mode -u" ||
-         MODE_COMMAND="echo -en '\033%@\033(K' && kbd_mode -a"
-
-      # On framebuffer consoles, font has to be set for each vt in
-      # UTF-8 mode. This doesn't hurt in non-UTF-8 mode also.
-
-      ! is_true "${use_fb}" || [ -z "${FONT}" ] ||
-         MODE_COMMAND="${MODE_COMMAND} && setfont ${FONT}"
-
-      # Apply that command to all consoles mentioned in
-      # /etc/inittab. Important: in the UTF-8 mode this should
-      # happen before setfont, otherwise a kernel bug will
-      # show up and the unicode map of the font will not be
-      # used.
-
-      for TTY in `grep '^[^#].*respawn:/sbin/agetty' /etc/inittab |
-         grep -o '\btty[[:digit:]]*\b'`
-      do
-         openvt -f -w -c ${TTY#tty} -- \
-            /bin/sh -c "${MODE_COMMAND}" || failed=1
-      done
-
-      # Set the font (if not already set above) and the keymap
-      [ "${use_fb}" == "1" ] || [ -z "${FONT}" ] || setfont $FONT || failed=1
-
-      [ -z "${KEYMAP}" ] ||
-         loadkeys ${KEYMAP} >/dev/null 2>&1 ||
-         failed=1
-
-      [ -z "${KEYMAP_CORRECTIONS}" ] ||
-         loadkeys ${KEYMAP_CORRECTIONS} >/dev/null 2>&1 ||
-         failed=1
-
-      # Convert the keymap from $LEGACY_CHARSET to UTF-8
-      [ -z "$LEGACY_CHARSET" ] ||
-         dumpkeys -c "$LEGACY_CHARSET" | loadkeys -u >/dev/null 2>&1 ||
-         failed=1
-
-      # If any of the commands above failed, the trap at the
-      # top would set $failed to 1
-      ( exit $failed )
-      evaluate_retval
-
-      exit $failed
-      ;;
-
-   *)
-      echo "Usage:  ${0} {start}"
-      exit 1
-      ;;
-esac
-
-# End console
-
-
-
-
-
-
-

- D.13. /etc/rc.d/init.d/localnet -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin localnet
-#
-# Description : Loopback device
-#
-# Authors     : Gerard Beekmans  - gerard AT linuxfromscratch D0T org
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            localnet
-# Required-Start:      mountvirtfs
-# Should-Start:        modules
-# Required-Stop:
-# Should-Stop:
-# Default-Start:       S
-# Default-Stop:        0 6
-# Short-Description:   Starts the local network.
-# Description:         Sets the hostname of the machine and starts the
-#                      loopback interface.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-[ -r /etc/sysconfig/network ] && . /etc/sysconfig/network
-[ -r /etc/hostname ] && HOSTNAME=`cat /etc/hostname`
-
-case "${1}" in
-   start)
-      log_info_msg "Bringing up the loopback interface..."
-      ip addr add 127.0.0.1/8 label lo dev lo
-      ip link set lo up
-      evaluate_retval
-
-      log_info_msg "Setting hostname to ${HOSTNAME}..."
-      hostname ${HOSTNAME}
-      evaluate_retval
-      ;;
-
-   stop)
-      log_info_msg "Bringing down the loopback interface..."
-      ip link set lo down
-      evaluate_retval
-      ;;
-
-   restart)
-      ${0} stop
-      sleep 1
-      ${0} start
-      ;;
-
-   status)
-      echo "Hostname is: $(hostname)"
-      ip link show lo
-      ;;
-
-   *)
-      echo "Usage: ${0} {start|stop|restart|status}"
-      exit 1
-      ;;
-esac
-
-exit 0
-
-# End localnet
-
-
-
-
-
-
-

- D.14. /etc/rc.d/init.d/sysctl -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin sysctl
-#
-# Description : File uses /etc/sysctl.conf to set kernel runtime
-#               parameters
-#
-# Authors     : Nathan Coulson (nathan AT linuxfromscratch D0T org)
-#               Matthew Burgress (matthew AT linuxfromscratch D0T org)
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            sysctl
-# Required-Start:      mountvirtfs
-# Should-Start:        console
-# Required-Stop:
-# Should-Stop:
-# Default-Start:       S
-# Default-Stop:
-# Short-Description:   Makes changes to the proc filesystem
-# Description:         Makes changes to the proc filesystem as defined in
-#                      /etc/sysctl.conf.  See 'man sysctl(8)'.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
-   start)
-      if [ -f "/etc/sysctl.conf" ]; then
-         log_info_msg "Setting kernel runtime parameters..."
-         sysctl -q -p
-         evaluate_retval
-      fi
-      ;;
-
-   status)
-      sysctl -a
-      ;;
-
-   *)
-      echo "Usage: ${0} {start|status}"
-      exit 1
-      ;;
-esac
-
-exit 0
-
-# End sysctl
-
-
-
-
-
-
-

- D.15. /etc/rc.d/init.d/sysklogd -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin sysklogd
-#
-# Description : Sysklogd loader
-#
-# Authors     : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            $syslog
-# Required-Start:      $first localnet
-# Should-Start:
-# Required-Stop:       $local_fs
-# Should-Stop:         sendsignals
-# Default-Start:       3 4 5
-# Default-Stop:        0 1 2 6
-# Short-Description:   Starts kernel and system log daemons.
-# Description:         Starts kernel and system log daemons.
-#                      /etc/fstab.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-# Note: sysklogd is not started in runlevel 2 due to possible
-# remote logging configurations
-
-. /lib/lsb/init-functions
-
-case "${1}" in
-   start)
-      log_info_msg "Starting system log daemon..."
-      parms=${SYSKLOGD_PARMS-'-m 0'}
-      start_daemon /sbin/syslogd $parms
-      evaluate_retval
-
-      log_info_msg "Starting kernel log daemon..."
-      start_daemon /sbin/klogd
-      evaluate_retval
-      ;;
-
-   stop)
-      log_info_msg "Stopping kernel log daemon..."
-      killproc /sbin/klogd
-      evaluate_retval
-
-      log_info_msg "Stopping system log daemon..."
-      killproc /sbin/syslogd
-      evaluate_retval
-      ;;
-
-   reload)
-      log_info_msg "Reloading system log daemon config file..."
-      pid=`pidofproc syslogd`
-      kill -HUP "${pid}"
-      evaluate_retval
-      ;;
-
-   restart)
-      ${0} stop
-      sleep 1
-      ${0} start
-      ;;
-
-   status)
-      statusproc /sbin/syslogd
-      statusproc klogd
-      ;;
-
-   *)
-      echo "Usage: ${0} {start|stop|reload|restart|status}"
-      exit 1
-      ;;
-esac
-
-exit 0
-
-# End sysklogd
-
-
-
-
-
-
-

- D.16. /etc/rc.d/init.d/network -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin network
-#
-# Description : Network Control Script
-#
-# Authors     : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-#               Nathan Coulson - nathan AT linuxfromscratch D0T org
-#               Kevin P. Fleming - kpfleming@linuxfromscratch.org
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            $network
-# Required-Start:      $local_fs localnet swap
-# Should-Start:        $syslog firewalld iptables nftables
-# Required-Stop:       $local_fs localnet swap
-# Should-Stop:         $syslog firewalld iptables nftables
-# Default-Start:       3 4 5
-# Default-Stop:        0 1 2 6
-# Short-Description:   Starts and configures network interfaces.
-# Description:         Starts and configures network interfaces.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-case "${1}" in
-   start)
-      # Start all network interfaces
-      for file in /etc/sysconfig/ifconfig.*
-      do
-         interface=${file##*/ifconfig.}
-
-         # Skip if $file is * (because nothing was found)
-         if [ "${interface}" = "*" ]; then continue; fi
-
-         /sbin/ifup ${interface}
-      done
-      ;;
-
-   stop)
-      # Unmount any network mounted file systems
-       umount --all --force --types nfs,cifs,nfs4
-
-      # Reverse list
-      net_files=""
-      for file in  /etc/sysconfig/ifconfig.*
-      do
-         net_files="${file} ${net_files}"
-      done
-
-      # Stop all network interfaces
-      for file in ${net_files}
-      do
-         interface=${file##*/ifconfig.}
-
-         # Skip if $file is * (because nothing was found)
-         if [ "${interface}" = "*" ]; then continue; fi
-
-         # See if interface exists
-         if [ ! -e /sys/class/net/$interface ]; then continue; fi
-
-         # Is interface UP?
-         ip link show $interface 2>/dev/null | grep -q "state UP"
-         if [ $? -ne 0 ];  then continue; fi
-
-         /sbin/ifdown ${interface}
-      done
-      ;;
-
-   restart)
-      ${0} stop
-      sleep 1
-      ${0} start
-      ;;
-
-   *)
-      echo "Usage: ${0} {start|stop|restart}"
-      exit 1
-      ;;
-esac
-
-exit 0
-
-# End network
-
-
-
-
-
-
-

- D.17. - /etc/rc.d/init.d/sendsignals -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin sendsignals
-#
-# Description : Sendsignals Script
-#
-# Authors     : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            sendsignals
-# Required-Start:
-# Should-Start:
-# Required-Stop:       $local_fs swap localnet
-# Should-Stop:
-# Default-Start:
-# Default-Stop:        0 6
-# Short-Description:   Attempts to kill remaining processes.
-# Description:         Attempts to kill remaining processes.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
-   stop)
-      omit=$(pidof mdmon)
-      [ -n "$omit" ] && omit="-o $omit"
-
-      log_info_msg "Sending all processes the TERM signal..."
-      killall5 -15 $omit
-      error_value=${?}
-
-      sleep ${KILLDELAY}
-
-      if [ "${error_value}" = 0 -o "${error_value}" = 2 ]; then
-         log_success_msg
-      else
-         log_failure_msg
-      fi
-
-      log_info_msg "Sending all processes the KILL signal..."
-      killall5 -9 $omit
-      error_value=${?}
-
-      sleep ${KILLDELAY}
-
-      if [ "${error_value}" = 0 -o "${error_value}" = 2 ]; then
-         log_success_msg
-      else
-         log_failure_msg
-      fi
-      ;;
-
-   *)
-      echo "Usage: ${0} {stop}"
-      exit 1
-      ;;
-
-esac
-
-exit 0
-
-# End sendsignals
-
-
-
-
-
-
-

- D.18. /etc/rc.d/init.d/reboot -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin reboot
-#
-# Description : Reboot Scripts
-#
-# Authors     : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            reboot
-# Required-Start:
-# Should-Start:
-# Required-Stop:
-# Should-Stop:
-# Default-Start:       6
-# Default-Stop:
-# Short-Description:   Reboots the system.
-# Description:         Reboots the System.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
-   stop)
-      log_info_msg "Restarting system..."
-      reboot -d -f -i
-      ;;
-
-   *)
-      echo "Usage: ${0} {stop}"
-      exit 1
-      ;;
-
-esac
-
-# End reboot
-
-
-
-
-
-
-

- D.19. /etc/rc.d/init.d/halt -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin halt
-#
-# Description : Halt Script
-#
-# Authors     : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            halt
-# Required-Start:
-# Should-Start:
-# Required-Stop:
-# Should-Stop:
-# Default-Start:       0
-# Default-Stop:
-# Short-Description:   Halts the system.
-# Description:         Halts the System.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-case "${1}" in
-   stop)
-      halt -d -f -i -p
-      ;;
-
-   *)
-      echo "Usage: {stop}"
-      exit 1
-      ;;
-esac
-
-# End halt
-
-
-
-
-
-
-

- D.20. /etc/rc.d/init.d/template -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin scriptname
-#
-# Description :
-#
-# Authors     :
-#
-# Version     : LFS x.x
-#
-# Notes       :
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            template
-# Required-Start:
-# Should-Start:
-# Required-Stop:
-# Should-Stop:
-# Default-Start:
-# Default-Stop:
-# Short-Description:
-# Description:
-# X-LFS-Provided-By:
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
-   start)
-      log_info_msg "Starting..."
-      start_daemon fully_qualified_path
-      ;;
-
-   stop)
-      log_info_msg "Stopping..."
-      killproc fully_qualified_path
-      ;;
-
-   restart)
-      ${0} stop
-      sleep 1
-      ${0} start
-      ;;
-
-   *)
-      echo "Usage: ${0} {start|stop|restart}"
-      exit 1
-      ;;
-esac
-
-exit 0
-
-# End scriptname
-
-
-
-
-
-
-

- D.21. /etc/sysconfig/modules -

-
-
-
-
########################################################################
-# Begin /etc/sysconfig/modules
-#
-# Description : Module auto-loading configuration
-#
-# Authors     :
-#
-# Version     : 00.00
-#
-# Notes       : The syntax of this file is as follows:
-#          <module> [<arg1> <arg2> ...]
-#
-# Each module should be on its own line, and any options that you want
-# passed to the module should follow it.  The line deliminator is either
-# a space or a tab.
-########################################################################
-
-# End /etc/sysconfig/modules
-
-
-
-
-
-
-

- D.22. /etc/sysconfig/createfiles -

-
-
-
-
########################################################################
-# Begin /etc/sysconfig/createfiles
-#
-# Description : Createfiles script config file
-#
-# Authors     :
-#
-# Version     : 00.00
-#
-# Notes       : The syntax of this file is as follows:
-#         if type is equal to "file" or "dir"
-#          <filename> <type> <permissions> <user> <group>
-#         if type is equal to "dev"
-#          <filename> <type> <permissions> <user> <group> <devtype>
-#             <major> <minor>
-#
-#         <filename> is the name of the file which is to be created
-#         <type> is either file, dir, or dev.
-#               file creates a new file
-#               dir creates a new directory
-#               dev creates a new device
-#         <devtype> is either block, char or pipe
-#               block creates a block device
-#               char creates a character deivce
-#               pipe creates a pipe, this will ignore the <major> and
-#           <minor> fields
-#         <major> and <minor> are the major and minor numbers used for
-#     the device.
-########################################################################
-
-# End /etc/sysconfig/createfiles
-
-
-
-
-
-
-

- D.23. - /etc/sysconfig/udev-retry -

-
-
-
-
########################################################################
-# Begin /etc/sysconfig/udev_retry
-#
-# Description : udev_retry script configuration
-#
-# Authors     :
-#
-# Version     : 00.00
-#
-# Notes       : Each subsystem that may need to be re-triggered after mountfs
-#               runs should be listed in this file.  Probable subsystems to be
-#               listed here are rtc (due to /var/lib/hwclock/adjtime) and sound
-#               (due to both /var/lib/alsa/asound.state and /usr/sbin/alsactl).
-#               Entries are whitespace-separated.
-########################################################################
-
-rtc
-
-# End /etc/sysconfig/udev_retry
-
-
-
-
-
-
-

- D.24. /sbin/ifup -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin /sbin/ifup
-#
-# Description : Interface Up
-#
-# Authors     : Nathan Coulson - nathan AT linuxfromscratch D0T org
-#               Kevin P. Fleming - kpfleming@linuxfromscratch.org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.7
-#
-# Notes       : The IFCONFIG variable is passed to the SERVICE script
-#               in the /lib/services directory, to indicate what file the
-#               service should source to get interface specifications.
-#
-########################################################################
-
-up()
-{
-  log_info_msg "Bringing up the ${1} interface..."
-
-  if ip link show $1 > /dev/null 2>&1; then
-     link_status=`ip link show $1`
-
-     if [ -n "${link_status}" ]; then
-        if ! echo "${link_status}" | grep -q UP; then
-           ip link set $1 up
-        fi
-     fi
-
-  else
-     log_failure_msg "Interface ${IFACE} doesn't exist."
-     exit 1
-  fi
-
-  evaluate_retval
-}
-
-RELEASE="7.7"
-
-USAGE="Usage: $0 [ -hV ] [--help] [--version] interface"
-VERSTR="LFS ifup, version ${RELEASE}"
-
-while [ $# -gt 0 ]; do
-   case "$1" in
-      --help | -h)     help="y"; break ;;
-
-      --version | -V)  echo "${VERSTR}"; exit 0 ;;
-
-      -*)              echo "ifup: ${1}: invalid option" >&2
-                       echo "${USAGE}" >& 2
-                       exit 2 ;;
-
-      *)               break ;;
-   esac
-done
-
-if [ -n "$help" ]; then
-   echo "${VERSTR}"
-   echo "${USAGE}"
-   echo
-   cat << HERE_EOF
-ifup is used to bring up a network interface.  The interface
-parameter, e.g. eth0 or eth0:2, must match the trailing part of the
-interface specifications file, e.g. /etc/sysconfig/ifconfig.eth0:2.
-
-HERE_EOF
-   exit 0
-fi
-
-file=/etc/sysconfig/ifconfig.${1}
-
-# Skip backup files
-[ "${file}" = "${file%""~""}" ] || exit 0
-
-. /lib/lsb/init-functions
-
-if [ ! -r "${file}" ]; then
-   log_failure_msg "Unable to bring up ${1} interface! ${file} is missing or cannot be accessed."
-   exit 1
-fi
-
-.  $file
-
-if [ "$IFACE" = "" ]; then
-   log_failure_msg "Unable to bring up ${1} interface! ${file} does not define an interface [IFACE]."
-   exit 1
-fi
-
-# Do not process this service if started by boot, and ONBOOT
-# is not set to yes
-if [ "${IN_BOOT}" = "1" -a "${ONBOOT}" != "yes" ]; then
-   exit 0
-fi
-
-# Bring up the interface
-if [ "$VIRTINT" != "yes" ]; then
-   up ${IFACE}
-fi
-
-for S in ${SERVICE}; do
-  if [ ! -x "/lib/services/${S}" ]; then
-    MSG="\nUnable to process ${file}.  Either "
-    MSG="${MSG}the SERVICE '${S} was not present "
-    MSG="${MSG}or cannot be executed."
-    log_failure_msg "$MSG"
-    exit 1
-  fi
-done
-
-if [ "${SERVICE}" = "wpa" ]; then log_success_msg; fi
-
-# Create/configure the interface
-for S in ${SERVICE}; do
-  IFCONFIG=${file} /lib/services/${S} ${IFACE} up
-done
-
-# Set link up virtual interfaces
-if [ "${VIRTINT}" == "yes" ]; then
-   up ${IFACE}
-fi
-
-# Bring up any additional interface components
-for I in $INTERFACE_COMPONENTS; do up $I; done
-
-# Set MTU if requested. Check if MTU has a "good" value.
-if test -n "${MTU}"; then
-   if [[ ${MTU} =~ ^[0-9]+$ ]] && [[ $MTU -ge 68 ]] ; then
-      for I in $IFACE $INTERFACE_COMPONENTS; do
-         ip link set dev $I mtu $MTU;
-      done
-   else
-      log_info_msg2 "Invalid MTU $MTU"
-   fi
-fi
-
-# Set the route default gateway if requested
-if [ -n "${GATEWAY}" ]; then
-   if ip route | grep -q default; then
-      log_warning_msg "Gateway already setup; skipping."
-   else
-      log_info_msg "Adding default gateway ${GATEWAY} to the ${IFACE} interface..."
-      ip route add default via ${GATEWAY} dev ${IFACE}
-      evaluate_retval
-   fi
-fi
-
-# End /sbin/ifup
-
-
-
-
-
-
-

- D.25. /sbin/ifdown -

-
-
-
-
#!/bin/bash
-########################################################################
-# Begin /sbin/ifdown
-#
-# Description : Interface Down
-#
-# Authors     : Nathan Coulson - nathan AT linuxfromscratch D0T org
-#               Kevin P. Fleming - kpfleming@linuxfromscratch.org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-# Notes       : the IFCONFIG variable is passed to the scripts found
-#               in the /lib/services directory, to indicate what file the
-#               service should source to get interface specifications.
-#
-########################################################################
-
-RELEASE="7.0"
-
-USAGE="Usage: $0 [ -hV ] [--help] [--version] interface"
-VERSTR="LFS ifdown, version ${RELEASE}"
-
-while [ $# -gt 0 ]; do
-   case "$1" in
-      --help | -h)     help="y"; break ;;
-
-      --version | -V)  echo "${VERSTR}"; exit 0 ;;
-
-      -*)              echo "ifup: ${1}: invalid option" >&2
-                       echo "${USAGE}" >& 2
-                       exit 2 ;;
-
-      *)               break ;;
-   esac
-done
-
-if [ -n "$help" ]; then
-   echo "${VERSTR}"
-   echo "${USAGE}"
-   echo
-   cat << HERE_EOF
-ifdown is used to bring down a network interface.  The interface
-parameter, e.g. eth0 or eth0:2, must match the trailing part of the
-interface specifications file, e.g. /etc/sysconfig/ifconfig.eth0:2.
-
-HERE_EOF
-   exit 0
-fi
-
-file=/etc/sysconfig/ifconfig.${1}
-
-# Skip backup files
-[ "${file}" = "${file%""~""}" ] || exit 0
-
-. /lib/lsb/init-functions
-
-if [ ! -r "${file}" ]; then
-   log_warning_msg "${file} is missing or cannot be accessed."
-   exit 1
-fi
-
-. ${file}
-
-if [ "$IFACE" = "" ]; then
-   log_failure_msg "${file} does not define an interface [IFACE]."
-   exit 1
-fi
-
-# We only need to first service to bring down the interface
-S=`echo ${SERVICE} | cut -f1 -d" "`
-
-if ip link show ${IFACE} > /dev/null 2>&1; then
-   if [ -n "${S}" -a -x "/lib/services/${S}" ]; then
-     IFCONFIG=${file} /lib/services/${S} ${IFACE} down
-   else
-     MSG="Unable to process ${file}.  Either "
-     MSG="${MSG}the SERVICE variable was not set "
-     MSG="${MSG}or the specified service cannot be executed."
-     log_failure_msg "$MSG"
-     exit 1
-  fi
-else
-   log_warning_msg "Interface ${1} doesn't exist."
-fi
-
-# Leave the interface up if there are additional interfaces in the device
-link_status=`ip link show ${IFACE} 2>/dev/null`
-
-if [ -n "${link_status}" ]; then
-   if [ "$(echo "${link_status}" | grep UP)" != "" ]; then
-      if [ "$(ip addr show ${IFACE} | grep 'inet ')" == ""  ]; then
-         log_info_msg "Bringing down the ${IFACE} interface..."
-         ip link set ${IFACE} down
-         evaluate_retval
-      fi
-   fi
-fi
-
-# End /sbin/ifdown
-
-
-
-
-
-
-

- D.26. /lib/services/ipv4-static -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin /lib/services/ipv4-static
-#
-# Description : IPV4 Static Boot Script
-#
-# Authors     : Nathan Coulson - nathan AT linuxfromscratch D0T org
-#               Kevin P. Fleming - kpfleming@linuxfromscratch.org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-. /lib/lsb/init-functions
-. ${IFCONFIG}
-
-if [ -z "${IP}" ]; then
-   log_failure_msg "\nIP variable missing from ${IFCONFIG}, cannot continue."
-   exit 1
-fi
-
-if [ -z "${PREFIX}" -a -z "${PEER}" ]; then
-   log_warning_msg "\nPREFIX variable missing from ${IFCONFIG}, assuming 24."
-   PREFIX=24
-   args="${args} ${IP}/${PREFIX}"
-
-elif [ -n "${PREFIX}" -a -n "${PEER}" ]; then
-   log_failure_msg "\nPREFIX and PEER both specified in ${IFCONFIG}, cannot continue."
-   exit 1
-
-elif [ -n "${PREFIX}" ]; then
-   args="${args} ${IP}/${PREFIX}"
-
-elif [ -n "${PEER}" ]; then
-   args="${args} ${IP} peer ${PEER}"
-fi
-
-if [ -n "${LABEL}" ]; then
-   args="${args} label ${LABEL}"
-fi
-
-if [ -n "${BROADCAST}" ]; then
-   args="${args} broadcast ${BROADCAST}"
-fi
-
-case "${2}" in
-   up)
-      if [ "$(ip addr show ${1} 2>/dev/null | grep ${IP}/)" = "" ]; then
-         log_info_msg "Adding IPv4 address ${IP} to the ${1} interface..."
-         ip addr add ${args} dev ${1}
-         evaluate_retval
-      else
-         log_warning_msg "Cannot add IPv4 address ${IP} to ${1}.  Already present."
-      fi
-   ;;
-
-   down)
-      if [ "$(ip addr show ${1} 2>/dev/null | grep ${IP}/)" != "" ]; then
-         log_info_msg "Removing IPv4 address ${IP} from the ${1} interface..."
-         ip addr del ${args} dev ${1}
-         evaluate_retval
-      fi
-
-      if [ -n "${GATEWAY}" ]; then
-         # Only remove the gateway if there are no remaining ipv4 addresses
-         if [ "$(ip addr show ${1} 2>/dev/null | grep 'inet ')" != "" ]; then
-            log_info_msg "Removing default gateway..."
-            ip route del default
-            evaluate_retval
-         fi
-      fi
-   ;;
-
-   *)
-      echo "Usage: ${0} [interface] {up|down}"
-      exit 1
-   ;;
-esac
-
-# End /lib/services/ipv4-static
-
-
-
-
-
-
-

- D.27. - /lib/services/ipv4-static-route -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin /lib/services/ipv4-static-route
-#
-# Description : IPV4 Static Route Script
-#
-# Authors     : Kevin P. Fleming - kpfleming@linuxfromscratch.org
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-. /lib/lsb/init-functions
-. ${IFCONFIG}
-
-case "${TYPE}" in
-   ("" | "network")
-      need_ip=1
-      need_gateway=1
-   ;;
-
-   ("default")
-      need_gateway=1
-      args="${args} default"
-      desc="default"
-   ;;
-
-   ("host")
-      need_ip=1
-   ;;
-
-   ("unreachable")
-      need_ip=1
-      args="${args} unreachable"
-      desc="unreachable "
-   ;;
-
-   (*)
-      log_failure_msg "Unknown route type (${TYPE}) in ${IFCONFIG}, cannot continue."
-      exit 1
-   ;;
-esac
-
-if [ -n "${GATEWAY}" ]; then
-   MSG="The GATEWAY variable cannot be set in ${IFCONFIG} for static routes.\n"
-   log_failure_msg "$MSG Use STATIC_GATEWAY only, cannot continue"
-   exit 1
-fi
-
-if [ -n "${need_ip}" ]; then
-   if [ -z "${IP}" ]; then
-      log_failure_msg "IP variable missing from ${IFCONFIG}, cannot continue."
-      exit 1
-   fi
-
-   if [ -z "${PREFIX}" ]; then
-      log_failure_msg "PREFIX variable missing from ${IFCONFIG}, cannot continue."
-      exit 1
-   fi
-
-   args="${args} ${IP}/${PREFIX}"
-   desc="${desc}${IP}/${PREFIX}"
-fi
-
-if [ -n "${need_gateway}" ]; then
-   if [ -z "${STATIC_GATEWAY}" ]; then
-      log_failure_msg "STATIC_GATEWAY variable missing from ${IFCONFIG}, cannot continue."
-      exit 1
-   fi
-   args="${args} via ${STATIC_GATEWAY}"
-fi
-
-if [ -n "${SOURCE}" ]; then
-        args="${args} src ${SOURCE}"
-fi
-
-case "${2}" in
-   up)
-      log_info_msg "Adding '${desc}' route to the ${1} interface..."
-      ip route add ${args} dev ${1}
-      evaluate_retval
-   ;;
-
-   down)
-      log_info_msg "Removing '${desc}' route from the ${1} interface..."
-      ip route del ${args} dev ${1}
-      evaluate_retval
-   ;;
-
-   *)
-      echo "Usage: ${0} [interface] {up|down}"
-      exit 1
-   ;;
-esac
-
-# End /lib/services/ipv4-static-route
-
-
-
-
-
-
-
-

- Apêndice E. Regras de configuração do - Udev -

-
-
-
-

- As regras neste anexo estão listadas por conveniência. A - instalação normalmente é feita via instruções na Seção 8.69, - “Eudev-3.2.11”. -

-
-
-
-
-

- E.1. 55-lfs.rules -

-
-
-
-
# /etc/udev/rules.d/55-lfs.rules: Rule definitions for LFS.
-
-# Core kernel devices
-
-# This causes the system clock to be set as soon as /dev/rtc becomes available.
-SUBSYSTEM=="rtc", ACTION=="add", MODE="0644", RUN+="/etc/rc.d/init.d/setclock start"
-KERNEL=="rtc", ACTION=="add", MODE="0644", RUN+="/etc/rc.d/init.d/setclock start"
-
-# Comms devices
-
-KERNEL=="ippp[0-9]*",       GROUP="dialout"
-KERNEL=="isdn[0-9]*",       GROUP="dialout"
-KERNEL=="isdnctrl[0-9]*",   GROUP="dialout"
-KERNEL=="dcbri[0-9]*",      GROUP="dialout"
-
-
-
-
-
-
-
-

- Apêndice F. Licenças do LFS -

-
-
-
-

- Este livro [escrito originalmente em inglês] está licenciado sob - a licença da Creative Commons - Attribution-NonCommercial-ShareAlike 2.0. -

-

- A "versão modificada" do livro (traduzida para o idioma português - escrito e falado no Brasil) ("Obra derivada") está licenciada sob - a Licença de Documentação Livre GNU, versão 1.3 ou qualquer - versão posterior publicada pela Free Software Foundation. -

-

- As instruções de computador tem permissão para serem extraídas a - partir do livro sob a Licença do MIT. -

-
-
-
-
-

- F.1. Licença da Creative Commons -

-
-
-
-

- Creative Commons Legal Code -

-

- Atribuição - Uso não-Comercial - Compartilhamento pela mesma - licença 2.0 -

-
-

- Importante -

-

- A INSTITUIÇÃO CREATIVE COMMONS NÃO É UM ESCRITÓRIO DE - ADVOCACIA E NÃO PRESTA SERVIÇOS JURÍDICOS. A DISTRIBUIÇÃO - DESTA LICENÇA NÃO ESTABELECE QUALQUER RELAÇÃO ADVOCATÍCIA. O - CREATIVE COMMONS DISPONIBILIZA ESTA INFORMAÇÃO "NO ESTADO EM - QUE SE ENCONTRA". O CREATIVE COMMONS NÃO FAZ QUALQUER - GARANTIA QUANTO ÀS INFORMAÇÕES DISPONIBILIZADAS E SE EXONERA - DE QUALQUER RESPONSABILIDADE POR DANOS RESULTANTES DO SEU - USO. -

-
-

- Licença -

-

- A OBRA (CONFORME DEFINIDA ABAIXO) É DISPONIBILIZADA DE ACORDO - COM OS TERMOS DESTA LICENÇA PÚBLICA CREATIVE COMMONS ("CCPL" OU - "LICENÇA"). A OBRA É PROTEGIDA POR DIREITO AUTORAL E/OU OUTRAS - LEIS APLICÁVEIS. QUALQUER USO DA OBRA QUE NÃO O AUTORIZADO SOB - ESTA LICENÇA OU PELA LEGISLAÇÃO AUTORAL É PROIBIDO. -

-

- AO EXERCER QUAISQUER DOS DIREITOS À OBRA AQUI CONCEDIDOS, VOCÊ - ACEITA E CONCORDA FICAR OBRIGADO NOS TERMOS DESTA LICENÇA. O - LICENCIANTE CONCEDE A VOCÊ OS DIREITOS AQUI CONTIDOS EM - CONTRAPARTIDA À SUA ACEITAÇÃO DESTES TERMOS E CONDIÇÕES. -

-
-
    -
  1. -

    - Definições -

    -
    -
      -
    1. -

      - "Obra Coletiva" significa uma obra, tal como uma - edição periódica, antologia ou enciclopédia, na - qual a Obra em sua totalidade e de forma - inalterada, em conjunto com um número de outras - contribuições, constituindo obras independentes e - separadas em si mesmas, são agregadas em um - trabalho coletivo. Uma obra que constitua uma Obra - Coletiva não será considerada Obra Derivada - (conforme definido abaixo) para os propósitos desta - licença. -

      -
    2. -
    3. -

      - "Obra Derivada" significa uma obra baseada sobre a - Obra ou sobre a Obra e outras obras pré-existentes, - tal como uma tradução, arranjo musical, - dramatização, romantização, versão de filme, - gravação de som, reprodução de obra artística, - resumo, condensação ou qualquer outra forma na qual - a Obra possa ser refeita, transformada ou adaptada, - com a exceção de que uma obra que constitua uma - Obra Coletiva não será considerada Obra Derivada - para fins desta licença. Para evitar dúvidas, - quando a Obra for uma composição musical ou - gravação de som, a sincronização da Obra em relação - cronometrada com uma imagem em movimento - (“synching”) será considerada uma Obra - Derivada para os propósitos desta licença. -

      -
    4. -
    5. -

      - "Licenciante" significa a pessoa física ou a - jurídica que oferece a Obra sob os termos desta - licença. -

      -
    6. -
    7. -

      - "Autor Original" significa a pessoa física ou - jurídica que criou a Obra. -

      -
    8. -
    9. -

      - "Obra" significa a obra autoral, passível de - proteção pelo direito autoral, oferecida sob os - termos desta licença. -

      -
    10. -
    11. -

      - "Você" significa a pessoa física ou jurídica - exercendo direitos sob esta Licença que não tenha - previamente violado os termos desta Licença com - relação à Obra, ou que tenha recebido permissão - expressa do Licenciante para exercer direitos sob - esta Licença apesar de uma violação prévia. -

      -
    12. -
    13. -

      - "Elementos da Licença" significa os principais - atributos da licença correspondente, conforme - escolhidos pelo licenciante e indicados no título - desta licença: Atribuição, Compartilhamento pela - Mesma Licença. -

      -
    14. -
    -
    -
  2. -
  3. -

    - Direitos de Uso Legítimo. Nada nesta licença deve ser - interpretado de modo a reduzir, limitar ou restringir - quaisquer direitos relativos ao uso legítimo, ou outras - limitações sobre os direitos exclusivos do titular de - direitos autorais sob a legislação autoral ou quaisquer - outras leis aplicáveis. -

    -
  4. -
  5. -

    - Concessão da Licença. O Licenciante concede a Você uma - licença de abrangência mundial, sem royalties, - não-exclusiva, perpétua (pela duração do direito autoral - aplicável), sujeita aos termos e condições desta Licença, - para exercer os direitos sobre a Obra definidos abaixo: -

    -
    -
      -
    1. -

      - reproduzir a Obra, incorporar a Obra em uma ou mais - Obras Coletivas e reproduzir a Obra quando - incorporada em Obra Coletiva; -

      -
    2. -
    3. -

      - criar e reproduzir Obras Derivadas; -

      -
    4. -
    5. -

      - distribuir cópias ou gravações da Obra, exibir - publicamente, executar publicamente e executar - publicamente por meio de uma transmissão de áudio - digital a Obra, inclusive quando incorporada em - Obras Coletivas; -

      -
    6. -
    7. -

      - distribuir cópias ou gravações de Obras Derivadas, - exibir publicamente, executar publicamente e - executar publicamente por meio de uma transmissão - digital de áudio Obras Derivadas. -

      -
    8. -
    -
    -

    - Os direitos acima podem ser exercidos em todas as mídias - e formatos, independente de serem conhecidos agora ou - concebidos posteriormente. Os direitos acima incluem o - direito de fazer modificações que forem tecnicamente - necessárias para exercer os direitos em outras mídias, - meios e formatos. Todos os direitos não concedidos - expressamente pelo Licenciante ficam aqui reservados, - incluindo, mas não se limitando, os direitos definidos - nas Seções 4(e) e 4(f). -

    -
  6. -
  7. -

    - Restrições. A licença concedida na Seção 3 acima está - expressamente sujeita e limitada aos seguintes termos: -

    -
    -
      -
    1. -

      - Você pode distribuir, exibir publicamente, executar - publicamente ou executar publicamente por meios - digitais a Obra apenas sob os termos desta Licença, - e Você deve incluir uma cópia desta licença, ou o - Identificador Uniformizado de Recursos (Uniform - Resource Identifier) para esta Licença, com cada - cópia ou gravação da Obra que Você distribuir, - exibir publicamente, executar publicamente, ou - executar publicamente por meios digitais. Você não - poderá oferecer ou impor quaisquer termos sobre a - Obra que alterem ou restrinjam os termos desta - Licença ou o exercício dos direitos aqui concedidos - aos destinatários. Você não poderá sub-licenciar a - Obra. Você deverá manter intactas todas as - informações que se referem a esta Licença e à - exclusão de garantias. Você não pode distribuir, - exibir publicamente, executar publicamente ou - executar publicamente por meios digitais a Obra com - qualquer medida tecnológica que controle o acesso - ou o uso da Obra de maneira inconsistente com os - termos deste Acordo de Licença. O disposto acima se - aplica à Obra enquanto incorporada em uma Obra - Coletiva, mas isto não requer que a Obra Coletiva, - à parte da Obra em si, esteja sujeita aos termos - desta Licença. Se Você criar uma Obra Coletiva, em - havendo notificação de qualquer Licenciante, Você - deve, na medida do razoável, remover da Obra - Coletiva qualquer referência a este Licenciante ou - Autor Original, conforme solicitado. Se você criar - uma Obra Derivada, em havendo notificação de - qualquer Licenciante, Você deve, na medida do - razoável, remover da Obra Derivada qualquer - referência a este Licenciante ou ao Autor Original, - conforme solicitado. -

      -
    2. -
    3. -

      - Você pode distribuir, exibir publicamente, executar - publicamente ou executar publicamente por meios - digitais uma Obra Derivada somente sob os termos - desta Licença, ou de uma versão posterior desta - licença com os mesmos Elementos da Licença desta - licença, ou de uma licença do internacional do - Creative Commons (iCommons) que contenha os mesmos - Elementos da Licença desta Licença (por exemplo, - Atribuição, Uso Não Comercial, Compartilhamento - pela Mesma Licença Japão). Você deve incluir uma - cópia desta licença ou de outra licença - especificada na sentença anterior, ou o - Identificador Uniformizado de Recursos (Uniform - Resource Identifier) para esta licença ou de outra - licença especificada na sentença anterior, com cada - cópia ou gravação de cada Obra Derivada que Você - distribuir, exibir publicamente, executar - publicamente ou executar publicamente por meios - digitais. Você não poderá oferecer ou impor - quaisquer termos sobre a Obra Derivada que alterem - ou restrinjam os termos desta Licença ou o - exercício dos direitos aqui concedidos aos - destinatários, e Você deverá manter intactas todas - as informações que se refiram a esta Licença e à - exclusão de garantias. Você não poderá distribuir, - exibir publicamente, executar publicamente ou - executar publicamente por meios digitais a Obra - Derivada com qualquer medida tecnológica que - controle o acesso ou o uso da Obra de maneira - inconsistente com os termos deste Acordo de - Licença. O disposto acima se aplica à Obra Derivada - quando incorporada em uma Obra Coletiva, mas isto - não requer que a Obra Coletiva, à parte da Obra em - si, esteja sujeita aos termos desta Licença. -

      -
    4. -
    5. -

      - Você não poderá exercer nenhum dos direitos acima - concedidos a Você na Seção 3 de qualquer maneira - que seja predominantemente intencionada ou - direcionada à obtenção de vantagem comercial ou - compensação monetária privada. A troca da Obra por - outros materiais protegidos por direito autoral - através de compartilhamento digital de arquivos ou - de outras formas não deverá ser considerada como - intencionada ou direcionada à obtenção de vantagens - comerciais ou compensação monetária privada, desde - que não haja pagamento de nenhuma compensação - monetária com relação à troca de obras protegidas - por direito de autor. -

      -
    6. -
    7. -

      - Se Você distribuir, exibir publicamente, executar - publicamente ou executar publicamente por meios - digitais a Obra ou qualquer Obra Derivada ou Obra - Coletiva, Você deve manter intactas todas as - informações relativas a direitos autorais sobre a - Obra e atribuir ao Autor Original crédito razoável - com relação ao meio ou mídia que Você está - utilizando, através da veiculação do nome (ou - pseudônimo, se for o caso) do Autor Original, se - fornecido; o título da Obra, se fornecido; na - medida do razoável, o Identificador Uniformizado de - Recursos (URI) que o Licenciante especificar para - estar associado à Obra, se houver, exceto se o URI - não se referir ao aviso de direitos autorais ou à - informação sobre o regime de licenciamento da Obra; - e no caso de Obra Derivada, crédito identificando o - uso da Obra na Obra Derivada (exemplo: "Tradução - Francesa da Obra de Autor Original", ou "Roteiro - baseado na Obra original de Autor Original"). Tal - crédito pode ser implementado de qualquer forma - razoável; entretanto, no caso de Obra Derivada ou - Obra Coletiva, este crédito aparecerá no mínimo - onde qualquer outro crédito comparável de autoria - aparece e de modo ao menos tão proeminente quanto - este outro crédito de autoria comparável. -

      -
    8. -
    9. -

      - De modo a tornar claras estas disposições, quando - uma Obra for uma composição musical: -

      -
      -
        -
      1. -

        - Royalties e execução pública. O Licenciante - reserva o seu direito exclusivo de coletar, - seja individualmente ou através de entidades - coletoras de direitos de execução (por - exemplo, ECAD, ASCAP, BMI, SESAC), o valor - dos seus direitos autorais pela execução - pública da obra ou execução pública digital - (por exemplo, webcasting) da Obra se esta - execução for predominantemente intencionada - ou direcionada à obtenção de vantagem - comercial ou compensação monetária privada. -

        -
      2. -
      3. -

        - Royalties e Direitos fonomecânicos. O - Licenciante reserva o seu direito exclusivo - de coletar, seja individualmente ou através - de uma entidade designada como seu agente - (por exemplo, a agência Harry Fox), royalties - relativos a quaisquer gravações que Você - criar da Obra (por exemplo, uma versão - “cover”) e distribuir, conforme - as disposições aplicáveis de direito autoral, - se a distribuição feita por Você de versão - “cover” for predominantemente - intencionada ou direcionada à obtenção de - vantagem comercial ou compensação monetária - privada. -

        -
      4. -
      -
      -
    10. -
    11. -

      - Direitos de Execução Digital pela Internet - (Webcasting) e royalties. De modo a evitar dúvidas, - quando a Obra for uma gravação de som, o - Licenciante reserva o seu direito exclusivo de - coletar, seja individualmente ou através de - entidades coletoras de direitos de execução (por - exemplo, SoundExchange ou ECAD), royalties e - direitos autorais pela execução digital pública - (por exemplo, Webcasting) da Obra, conforme as - disposições aplicáveis de direito autoral, se a - execução digital pública feita por Você for - predominantemente intencionada ou direcionada à - obtenção de vantagem comercial ou compensação - monetária privada. -

      -
    12. -
    -
    -
  8. -
  9. -

    - Declarações, Garantias e Exoneração -

    -

    - EXCETO QUANDO FOR DE OUTRA FORMA MUTUAMENTE ACORDADO - PELAS PARTES POR ESCRITO, O LICENCIANTE OFERECE A OBRA - “NO ESTADO EM QUE SE ENCONTRA” (AS IS) E NÃO - PRESTA QUAISQUER GARANTIAS OU DECLARAÇÕES DE QUALQUER - ESPÉCIE RELATIVAS À OBRA, SEJAM ELAS EXPRESSAS OU - IMPLÍCITAS, DECORRENTES DA LEI OU QUAISQUER OUTRAS, - INCLUINDO, SEM LIMITAÇÃO, QUAISQUER GARANTIAS SOBRE A - TITULARIDADE DA OBRA, ADEQUAÇÃO PARA QUAISQUER - PROPÓSITOS, NÃO-VIOLAÇÃO DE DIREITOS, OU INEXISTÊNCIA DE - QUAISQUER DEFEITOS LATENTES, ACURACIDADE, PRESENÇA OU - AUSÊNCIA DE ERROS, SEJAM ELES APARENTES OU OCULTOS. EM - JURISDIÇÕES QUE NÃO ACEITEM A EXCLUSÃO DE GARANTIAS - IMPLÍCITAS, ESTAS EXCLUSÕES PODEM NÃO SE APLICAR A VOCÊ. -

    -
  10. -
  11. -

    - Limitação de Responsabilidade. EXCETO NA EXTENSÃO EXIGIDA - PELA LEI APLICÁVEL, EM NENHUMA CIRCUNSTÂNCIA O - LICENCIANTE SERÁ RESPONSÁVEL PARA COM VOCÊ POR QUAISQUER - DANOS, ESPECIAIS, INCIDENTAIS, CONSEQUENCIAIS, PUNITIVOS - OU EXEMPLARES, ORIUNDOS DESTA LICENÇA OU DO USO DA OBRA, - MESMO QUE O LICENCIANTE TENHA SIDO AVISADO SOBRE A - POSSIBILIDADE DE TAIS DANOS. -

    -
  12. -
  13. -

    - Terminação -

    -
    -
      -
    1. -

      - Esta Licença e os direitos aqui concedidos - terminarão automaticamente no caso de qualquer - violação dos termos desta Licença por Você. Pessoas - físicas ou jurídicas que tenham recebido Obras - Derivadas ou Obras Coletivas de Você sob esta - Licença, entretanto, não terão suas licenças - terminadas desde que tais pessoas físicas ou - jurídicas permaneçam em total cumprimento com essas - licenças. As Seções 1, 2, 5, 6, 7 e 8 subsistirão a - qualquer terminação desta Licença. -

      -
    2. -
    3. -

      - Sujeito aos termos e condições dispostos acima, a - licença aqui concedida é perpétua (pela duração do - direito autoral aplicável à Obra). Não obstante o - disposto acima, o Licenciante reserva-se o direito - de difundir a Obra sob termos diferentes de licença - ou de cessar a distribuição da Obra a qualquer - momento; desde que, no entanto, quaisquer destas - ações não sirvam como meio de retratação desta - Licença (ou de qualquer outra licença que tenha - sido concedida sob os termos desta Licença, ou que - deva ser concedida sob os termos desta Licença) e - esta Licença continuará válida e eficaz a não ser - que seja terminada de acordo com o disposto acima. -

      -
    4. -
    -
    -
  14. -
  15. -

    - Outras Disposições -

    -
    -
      -
    1. -

      - Cada vez que Você distribuir ou executar - publicamente por meios digitais a Obra ou uma Obra - Coletiva, o Licenciante oferece ao destinatário uma - licença da Obra nos mesmos termos e condições que a - licença concedida a Você sob esta Licença. -

      -
    2. -
    3. -

      - Cada vez que Você distribuir ou executar - publicamente por meios digitais uma Obra Derivada, - o Licenciante oferece ao destinatário uma licença à - Obra original nos mesmos termos e condições que - foram concedidos a Você sob esta Licença. -

      -
    4. -
    5. -

      - Se qualquer disposição desta Licença for tida como - inválida ou não-executável sob a lei aplicável, - isto não afetará a validade ou a possibilidade de - execução do restante dos termos desta Licença e, - sem a necessidade de qualquer ação adicional das - partes deste acordo, tal disposição será reformada - na mínima extensão necessária para tal disposição - tornar-se válida e executável. -

      -
    6. -
    7. -

      - Nenhum termo ou disposição desta Licença será - considerado renunciado e nenhuma violação será - considerada consentida, a não ser que tal renúncia - ou consentimento seja feito por escrito e assinado - pela parte que será afetada por tal renúncia ou - consentimento. -

      -
    8. -
    9. -

      - Esta Licença representa o acordo integral entre as - partes com respeito à Obra aqui licenciada. Não há - entendimentos, acordos ou declarações relativas à - Obra que não estejam especificadas aqui. O - Licenciante não será obrigado por nenhuma - disposição adicional que possa aparecer em - quaisquer comunicações provenientes de Você. Esta - Licença não pode ser modificada sem o mútuo acordo, - por escrito, entre o Licenciante e Você. -

      -
    10. -
    -
    -
  16. -
-
-
-

- Importante -

-

- O Creative Commons não é uma parte desta Licença e não presta - qualquer garantia relacionada à Obra. O Creative Commons não - será responsável perante Você ou qualquer outra parte por - quaisquer danos, incluindo, sem limitação, danos gerais, - especiais, incidentais ou consequentes, originados com - relação a esta licença. Não obstante as duas frases - anteriores, se o Creative Commons tiver expressamente se - identificado como o Licenciante, ele deverá ter todos os - direitos e obrigações do Licenciante. -

-

- Exceto para o propósito delimitado de indicar ao público que - a Obra é licenciada sob a CCPL (Licença Pública Creative - Commons), nenhuma parte deverá utilizar a marca "Creative - Commons" ou qualquer outra marca ou logo relacionado ao - Creative Commons sem consentimento prévio e por escrito do - Creative Commons. Qualquer uso permitido deverá ser de acordo - com as diretrizes do Creative Commons de utilização da marca - então válidas, conforme sejam publicadas em seu website ou de - outro modo disponibilizadas periodicamente mediante - solicitação. -

-

- O Creative Commons pode ser contactado pelo endereço: - http://creativecommons.org/. -

-
-
-
-
-
-
-

- F.2. A Licença do MIT -

-
-
-
-

- Direitos autorais © 1999-2022 Gerard Beekmans -

-

- Permissão é aqui concedida, gratuitamente, para qualquer pessoa - que obtenha uma cópia deste software e arquivos de documentação - associados (o "Software"), para lidar com o Software sem - restrição, incluindo, sem limitação, os direitos para usar, - copiar, modificar, mesclar, publicar, distribuir, sublicenciar, - e (ou) vender cópias do Software, e para permitir para as - pessoas para quem o Software é fornecido para fazer o mesmo, - sujeito às seguintes condições: -

-

- O aviso de direitos autorais acima e este aviso de permissão - deveria ser incluído em todas as cópias ou porções substanciais - do Software. -

-

- O SOFTWARE É FORNECIDO “NO ESTADO EM QUE SE - ENCONTRA”, SEM GARANTIAS DE QUALQUER ESPÉCIE, EXPLÍCITAS - OU IMPLÍCITAS, INCLUINDO, PORÉM NÃO LIMITADA A, AS GARANTIAS DE - COMERCIALIZAÇÃO, ADEQUAÇÃO PARA UM PROPÓSITO PARTICULAR E - NÃO-VIOLAÇÃO. EM NENHUMA CIRCUNSTÂNCIA OS AUTORES OU TITULARES - DE DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUAISQUER - ALEGAÇÕES, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM UMA AÇÃO DE - CONTRATO, ATO ILÍCITO OU DE OUTRA FORMA, DECORRENTE DE, OU EM - CONEXÃO COM, O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO - SOFTWARE. -

-
-
-
-
-
-

- F.3. A Licença de Documentação Livre GNU -

-
-
-
-

- Direitos autorais © 1999-2022 Jamenson Espindula -

-

- Versão 1.3, 03 de novembro de 2008 -

-

- Direitos autorais © 2000, 2001, 2002, 2007, 2008 Free Software - Foundation, Inc. http://fsf.org/ -

-

- A qualquer pessoa é permitido copiar e distribuir cópias - literais deste documento de licença, porém modificá-lo não é - permitido. -

-
-
    -
  1. -

    - PREÂMBULO -

    -

    - O propósito desta licença é tornar um manual, livro de - texto, ou outro documento funcional e útil livre no - sentido da liberdade: para assegurar a qualquer pessoa a - liberdade efetiva para copiar e redistribuí-lo, com ou - sem modificações, ambos comercialmente ou não - comercialmente. Secundariamente, esta Licença preserva - para o autor e editor uma maneira de obter crédito pelos - seus trabalhos, ao mesmo tempo não sendo considerado - responsável por modificações feitas por outros. Esta - Licença é uma espécie de “copyleft” - (“esquerdos autorais”), o que significa que - trabalhos derivados do documento devem necessariamente - eles mesmos serem livres no mesmo sentido. Ela - complementa a Licença Pública Geral GNU, a qual é uma - licença de esquerdos autorais projetada para software - livre. Nós projetamos esta Licença para utilizá-la para - manuais para software livre, porque software livre - precisa de documentação livre: um programa livre deveria - vir com manuais provendo as mesmas liberdades que o - software provê. Porém esta Licença não é limitada a - manuais de software; ela pode ser utilizada para qualquer - trabalho textual, independentemente de questões de - assunto ou se o trabalho textual for publicado como um - livro impresso. Nós recomendamos esta Licença - principalmente para trabalhos cujo propósito seja - instrução ou referência. -

    -
  2. -
  3. -

    - APLICABILIDADE E DEFINIÇÕES -

    -

    - Esta Licença se aplica a qualquer manual ou outro - trabalho, em qualquer meio, que contenha um aviso - colocado pelo detentor dos direitos autorais dizendo que - ele pode ser distribuído sob os termos desta Licença. Tal - aviso concede uma licença mundial, livre de patente, - ilimitada na duração, para utilizar aquele trabalho sob - as condições nela declaradas. O “Documento”, - abaixo, se refere a quaisquer desses manuais ou - trabalhos. Qualquer membro do publico é um titular da - licença, e é mencionado como “você”. Você - aceita a licença se você copiar, modificar ou distribuir - o trabalho em uma forma que exija permissão sob lei de - direitos autorais. Uma “Versão Modificada” do - Documento significa qualquer trabalho contendo o - Documento ou uma porção dele, seja literalmente copiado, - ou com modificações e/ou traduzido em outra língua. Uma - “Seção Secundária” é um apêndice nomeado ou - uma seção pré-textual do Documento que lida - exclusivamente com o relacionamento dos editores ou - autores do Documento para com o assunto global do - Documento (ou com questões relacionadas) e não contém - nada que possa se conformar diretamente com aquele - assunto global. (Assim, se o Documento for em parte um - livro texto de matemática, uma Seção Secundária não pode - explanar nada acerca de cálculos matemáticos). O - relacionamento poderia ser uma questão de conexão - histórica com o assunto ou com questões relacionadas, ou - de posicionamento legal, comercial, filosófico, ético ou - político respeitante a eles. As “Seções - Invariantes” são certas Seções Secundárias cujos - títulos são projetados, como sendo aqueles de Seções - Invariantes, no aviso que diz que o Documento é publicado - sob esta Licença. Se uma seção não se encaixa na - definição de Secundária acima, então a seção não está - autorizada a ser designada como Invariante. O Documento - pode conter zero Seções Invariantes. Se o Documento não - identifica quaisquer Seções Invariantes, então não existe - nenhuma. Os “Textos de Capa” são certas - passagens curtas de texto que são listadas, como Textos - de Primeira Capa ou Textos de Quarta-Capa, no aviso que - diz que o Documento é publicado sob esta Licença. Um - Texto de Primeira Capa pode ter no máximo cinco (05) - palavras, e um Texto de Quarta Capa pode ter no máximo - vinte e cinco (25) palavras. Uma cópia - “Transparente” do Documento significa uma - cópia legível por máquina, representada em um formato - cuja especificação está disponível para o público em - geral, que é adequada para revisar o documento - diretamente com editores de texto genéricos ou (para - imagens compostas de pixeis) programas de pintura - genéricos ou (para desenhos) algum editor de desenho - disponível amplamente, e que seja adequado para entrada a - formatadores de texto ou para tradução automática a uma - variedade de formatos próprios para entrada a - formatadores de texto. Uma cópia feita em um formato de - arquivo contrário ao Transparente, cuja linguagem de - marcação, ou ausência de linguagem de marcação, tenha - sido organizada para frustrar ou desencorajar - modificações subsequentes por leitores, não é - Transparente. Um formato de imagem não é Transparente se - utilizado para qualquer quantidade substancial de texto. - Uma cópia que não é “Transparente” é chamada - “Opaca”. Exemplos de formatos adequados para - cópias Transparentes incluem ASCII puro sem marcações; - formato de entrada Texinfo; formato de entrada LaTeX; - SGML ou XML utilizando um DTD disponível publicamente; - HTML simples conformante com o padrão; PostScript ou PDF - projetado para modificação humana. Exemplos de formatos - transparantes de imagens incluem PNG, XCF e JPG. Formatos - opacos incluem formatos proprietários que podem ser lidos - e editados somente por processadores proprietários de - palavra; SGML ou XML para os quais o DTD e/ou as - ferramentas de processamentos não estejam disponíveis - genericamente; e o HTML gerado por máquina; PostScript ou - PDF produzidos por alguns processadores de palavra apenas - para propósitos de saída. A “Página de - Título” significa, para um livro impresso, a - própria página de título, mais tantas páginas seguintes - quantas sejam necessárias para manter, legivelmente, o - material que esta Licença exige para aparecer na página - de título. Para trabalhos em formatos que não tenham - qualquer página de título como tal, “Página de - Título” significa o texto próximo da mais - proeminente aparição do título do trabalho, precedendo o - início do corpo do texto. O “editor” - significa qualquer pessoa ou entidade que distribui - cópias do Documento ao público. Uma seção - “Intitulada XYZ” significa uma subunidade - nomeada do Documento cujo título ou é precisamente XYZ ou - contém XYZ entre parênteses seguinte ao texto que traduz - XYZ em outra linguagem. (Aqui XYZ significa um nome - específico de seção mencionado abaixo, tais como - “Agradecimentos”; “Dedicatórias”; - “Patrocínios”; ou “Histórico”). - “Preservar o Título” de tal seção quando você - modificar o Documento significa que ele permanece uma - seção “Intitulada XYZ” de acordo com essa - definição. O Documento pode incluir Declarações de - Garantia próximas ao aviso que declara que esta Licença - se aplica ao Documento. Essas Declarações de Garantia são - consideradas como inclusas por referência nesta Licença, - porém somente com relação à negação de garantias: - qualquer outra implicação que essas Declarações de - Garantia possam ter é inválida e não tem efeito sobre o - significado desta Licença. -

    -
  4. -
  5. -

    - CÓPIA LITERAL -

    -

    - Você pode copiar e distribuir o Documento em qualquer - meio, ambos comercialmente e não comercialmente, contanto - que esta Licença, os avisos de direitos autorais, e o - aviso de licença dizendo que esta Licença se aplica ao - Documento estejam reproduzidas em todas as cópias, e que - você não adiciona quaisquer outras condições, quaisquer - que sejam, àquelas desta Licença. Você não pode utilizar - medidas técnicas para obstruir ou controlar a leitura ou - posteriores cópias das cópias que você fizer ou - distribuir. Entretanto, você pode aceitar remuneração em - troca das cópias. Se você distribui um número de cópias - grande o suficiente, você deve necessariamente também - seguir as condições na seção três (3). Você também pode - ceder cópias, sob as mesmas condições declaradas acima, e - você pode publicamente exibir cópias. -

    -
  6. -
  7. -

    - CÓPIAS EM QUANTIDADE -

    -

    - Se você publicar cópias impressas (ou cópias em mídia que - geralmente tem capas impressas) do Documento, em número - maior que cem (100), e o aviso de licença do Documento - exigir Textos de Capa, você deve necessariamente encartar - as cópias em capas que transportem, claramente e - legivelmente, todos estes Textos de Capa: Textos de - Primeira Capa na primeira capa, e Textos de Quarta Capa - na capa traseira. Ambas as capas devem necessariamente - também claramente e legivelmente identificar você como o - editor dessas cópias. A capa frontal deve necessariamente - apresentar o título completo com todas as palavras do - título igualmente proeminentes e visíveis. Você pode - adicionar outros materiais nas capas adicionalmente. As - cópias com modificações limitadas às capas, tanto quanto - preservem o título do Documento e satisfaçam essas - condições, podem ser tratadas como cópias literais em - relação a outros aspectos. Se os textos exigidos para - ambas as capas forem muito volumosos para caber - legivelmente, você deveria colocar os primeiros listados - (tantos quantos caibam razoavelmente) na capa atual, e - continuar o restante em páginas adjacentes. Se você - publicar ou distribuir cópias Opacas do Documento em - número maior que cem (100), você deve necessariamente ou - incluir uma cópia Transparente, legível por máquina, - junto com cada cópia Opaca, ou declarar, na ou com cada - cópia Opaca, uma localização de rede de computador, a - partir da qual o público usuário de rede geral tenha - acesso para baixar, utilizando protocolos de rede de - padrão público, uma cópia Transparente completa do - Documento, livre do material adicionado. Se você se - utilizar da última opção, você deve necessariamente - adotar razoavelmente passos prudentes, quando você - iniciar a distribuição de cópias Opacas em quantidade, - para se assegurar que essa cópia Transparente permanecerá - então acessível na localização declarada até pelo menos - um ano após a última vez que você distribuiu uma cópia - Opaca (diretamente ou por intermédio dos seus agentes ou - varejistas) daquela edição ao público. É pedido, mas não - exigido, que você contate os autores do Documento bem - antes de redistribuir qualquer número grande de cópias, - para dá-los a oportunidade de lhe fornecer uma versão - atualizada do Documento. -

    -
  8. -
  9. -

    - MODIFICAÇÕES -

    -

    - Você pode copiar e distribuir uma Versão Modificada do - Documento sob as condições das seções dois (2) e três (3) - acima, contanto que você publique a Versão Modificada - precisamente sob esta Licença, com a Versão Modificada - preenchendo a função do Documento, portanto licenciando a - distribuição e modificação da Versão Modificada a quem - quer que possua uma cópia dela. Adicionalmente, você deve - necessariamente fazer estas coisas na Versão Modificada: -

    -
    -
      -
    1. -

      - Utilize na Página de Título (e nas capas, se - existentes) um título distinto daquele do - Documento, e daqueles das versões prévias (as quais - deveriam, se existiu alguma, serem listadas na - seção Histórico do Documento). Você pode utilizar o - mesmo título que uma versão prévia, se o editor - original daquela versão conceder permissão. -

      -
    2. -
    3. -

      - Liste na Página de Título, como autores, uma ou - mais pessoas ou entidades responsáveis pela autoria - das modificações na Versão Modificada, junto com ao - menos cinco dos autores principais do Documento - (todos os autores principais, se tiver menos que - cinco), a menos que eles liberem você dessa - exigência. -

      -
    4. -
    5. -

      - Declare na Página de Título o nome do editor da - Versão Modificada, como o editor. -

      -
    6. -
    7. -

      - Preserve todos os avisos de direitos autorais do - Documento. -

      -
    8. -
    9. -

      - Adicione um aviso apropriado de direitos autorais - para suas modificações, adjacente aos outros avisos - de direitos autorais. -

      -
    10. -
    11. -

      - Inclua, imediatamente após os avisos de direitos - autorais, um aviso de licença concedendo ao público - permissão para utilizar a Versão Modificada sob os - termos desta Licença, na forma mostrada no Adendo - abaixo. -

      -
    12. -
    13. -

      - Preserve, naquele aviso de licença, as listas - completas de Seções Invariantes e Textos de Capa - exigidos dados no aviso de licença do Documento. -

      -
    14. -
    15. -

      - Inclua uma cópia inalterada desta Licença. -

      -
    16. -
    17. -

      - Preserve a seção intitulada - “Histórico”, Preserve seu Título, e - adicione a ele um item declarando ao menos o - título, ano, novos autores, e editor da Versão - Modificada, conforme dado na Página de Título. Se - não existir uma seção intitulada - “Histórico” no Documento, crie uma - declarando o título, ano, autores, e editor do - Documento, conforme dado em sua Página de Título, - então adicione um item descrevendo a Versão - Modificada, conforme declarado na frase prévia. -

      -
    18. -
    19. -

      - Preserve a localização de rede, se existente, dada - no Documento para acesso público a uma cópia - Transparente do Documento, e da mesma forma as - localizações de rede dadas no Documento para - versões prévias nas quais foi baseado. Essas podem - ser colocadas na seção “Histórico”. - Você pode omitir uma localização de rede para um - trabalho que foi publicado nos últimos quatro anos - anteriores à publicação do próprio do Documento, ou - se o editor original da versão à qual a localização - de rede se refere conceder permissão. -

      -
    20. -
    21. -

      - Para cada seção Intitulada - “Agradecimentos” ou - “Dedicatórias”, Preserve o Título da - seção, e preserve na seção toda a substância e - tonalidade de cada um dos agradecimentos a - contribuidores e/ou dedicatórias dadas nela. -

      -
    22. -
    23. -

      - Preserve todas as Seções Invariantes do Documento, - inalteradas em seus textos e em seus títulos. Os - números de Seção ou o equivalente não são - considerados parte dos títulos de seção. -

      -
    24. -
    25. -

      - Delete quaisquer seções Intituladas - “Patrocínios”. Tal seção não pode ser - incluída na Versão Modificada. -

      -
    26. -
    27. -

      - Não reintitule qualquer seção existente para - Intitulada “Patrocínios” ou para - conflitar no título com qualquer Seção Invariante. -

      -
    28. -
    29. -

      - Preserve quaisquer Declarações de Garantia. -

      -
    30. -
    -
    -

    - Se a Versão Modificada incluir novas seções pré textuais - ou apêndices que se qualifiquem como Seções Secundárias e - não contenham material copiado a partir do Documento, - você pode, a sua escolha, designar algumas ou todas essas - seções como Invariantes. Para fazer isso, adicione seus - títulos à lista das Seções Invariantes no aviso de - licença da Versão Modificada. Esses títulos devem - necessariamente serem distintos de quaisquer outros - títulos de seções. Você pode adicionar uma seção - Intitulada “Patrocínios”, contanto que ela - não contenha nada além de patrocínios da sua Versão - Modificada por vários patrocinadores—por exemplo, - declarações de avaliadores ou aquelas de que o texto foi - aprovado por uma organização como a definição - autorizativa de um padrão. Você pode adicionar uma - passagem de até cinco palavras, como um Texto de Primeira - Capa, e uma passagem de até vinte e cinco palavras, como - um Texto de Quarta Capa, ao final da lista dos Textos de - Capa na Versão Modificada. Somente uma passagem de Texto - de Primeira Capa e uma de Texto de Quarta Capa podem ser - adicionadas por (ou mediante acordos feitos por) qualquer - uma entidade. Se o Documento já inclui um texto de capa - para a mesma capa, previamente adicionado por você ou por - acordo feito pela mesma entidade pela qual você está - atuando, você não pode adicionar outro; porém você pode - substituir o antigo, na permissão explícita do editor - prévio que adicionou o antigo. O(s) autor(s) e editor(s) - do Documento, por esta Licença, não concedem permissão - para utilizar seus nomes para publicidade para ou para - afirmar ou implicar patrocínio de qualquer Versão - Modificada. -

    -
  10. -
  11. -

    - COMBINANDO DOCUMENTOS -

    -

    - Você pode combinar o Documento com outros documentos - publicados sob esta Licença, sob os termos definidos na - seção quatro (4) acima para versões modificadas, contanto - que você inclua na combinação todas as Seções Invariantes - de todos os documentos originais, não modificados, e - listá-los todos como Seções Invariantes do seu trabalho - combinado no seu aviso de licença, e você preserva todas - as Declarações de Garantias deles. O trabalho combinado - precisa conter somente uma cópia desta Licença, e - múltiplas Seções Invariantes idênticas podem ser - substituídas por uma cópia única. Se existirem múltiplas - Seções Invariantes com o mesmo nome, mas conteúdos - diferentes, torne o título de cada uma de tal seção único - adicionando ao final dele, entre parênteses, o nome do - autor ou editor original daquela seção se conhecido, ou, - do contrário, um número único. Faça o mesmo ajuste aos - títulos da seção na lista de Seções Invariantes no aviso - de licença do trabalho combinado. Na combinação, você - deve necessariamente combinar quaisquer seções - Intituladas “Histórico” nos vários documentos - originais, formando uma seção Intitulada - “Histórico”; de mesma maneira, combine - quaisquer seções Intituladas - “Agradecimentos”, e quaisquer seções - Intituladas “Dedicatórias”. Você deve - necessariamente deletar todas as seções Intituladas - “Patrocínios”. -

    -
  12. -
  13. -

    - COLEÇÕES DE DOCUMENTOS -

    -

    - Você pode produzir uma coleção consistente do Documento e - outros documentos publicados sob esta Licença, e - substitua as cópias individuais desta Licença nos vários - documentos por uma cópia única que esteja incluída na - coleção, contanto que você siga as regras desta Licença - para cópias literais de cada um dos documentos em todos - os outros aspectos. Você pode extrair um documento único - de tal coleção, e distribuí-lo individualmente sob esta - Licença, contanto que você insira uma cópia desta Licença - no documento extraído, e siga esta Licença em todos os - outros aspectos relativos à cópias literais daquele - documento. -

    -
  14. -
  15. -

    - AGREGAÇÃO COM TRABALHOS INDEPENDENTES -

    -

    - Uma compilação do Documento ou seus derivados com outros - documentos separados e independentes ou trabalhos, dentro - ou junto a volume de armazenamento ou meio de - distribuição, é chamado em “agregado” se os - direitos autorais resultantes da compilação não forem - utilizados para limitar os direitos legais dos usuários - da compilação além do que os trabalhos individuais - permitem. Quando o Documento for incluído em um agregado, - esta Licença não se aplica aos outros trabalhos no - agregado, os quais não são eles próprios trabalhos - derivados do Documento. Se a exigência do Texto de Capa - da seção três (3) for aplicável a essas cópias do - Documento, então se o Documento for menor que a metade do - agregado inteiro, os Textos de Capa do Documento podem - ser colocados em capas que encartem o Documento dentro do - agregado, ou o equivalente eletrônico de capas se o - Documento estiver em formato eletrônico. Do contrário, - eles devem necessariamente aparecer nas capas impressas - que encartem o agregado inteiro. -

    -
  16. -
  17. -

    - TRADUÇÃO -

    -

    - Tradução é considerada um tipo de modificação, de forma - que você pode distribuir traduções do Documento sob os - termos da seção quatro (4). A substituição de Seções - Invariantes por traduções exige permissão especial de - seus detentores dos direitos autorais, porém você pode - incluir traduções de algumas ou todas as Seções - Invariantes adicionalmente às versões originais dessas - Seções Invariantes. Você pode incluir uma tradução desta - Licença, e todos os avisos de licença no Documento, e - quaisquer Declarações de Garantia, contanto que você - inclua também a versão original em Inglês desta Licença e - as versões originais daqueles avisos e declarações. No - caso de uma divergência entre a tradução e a versão - original desta Licença ou um aviso ou declaração, a - versão original prevalecerá. Se uma seção no Documento - for Intitulada “Agradecimentos”, - “Dedicatórias”, ou “Histórico”, a - exigência (seção 4) de Preservar seu Título (seção 1) - tipicamente exigirá a modificação do título atual. -

    -
  18. -
  19. -

    - FINALIZAÇÃO -

    -

    - Você não pode copiar, modificar, sublicenciar, ou - distribuir o Documento, exceto conforme expressamente - provido sob esta Licença. Qualquer tentativa clandestina - de copiar, modificar, sublicenciar, ou distribuir o - Documento é inválida, e automaticamente finalizará seus - direitos sob esta Licença. Entretanto, se você cessar - todas as violações a esta Licença, então a sua licença - oriunda de um detentor de direitos autorais em particular - está restabelecida (a) provisoriamente, a menos e até que - o detentor dos direitos autorais explicita e finalmente - cancele sua licença; e (b) permanentemente, se o detentor - dos direitos autorais falhar em notificar você da - violação, por algum meio razoável, antes de sessenta (60) - dias após a cessação. Além disso, a sua licença oriunda - de um detentor de direitos autorais em particular está - restabelecida permanentemente se o detentor dos direitos - autorais notificar você sobre a violação por algum meio - razoável, essa for a primeira vez que você recebeu um - aviso de violação desta Licença (para qualquer trabalho) - oriunda daquele detentor de direitos autorais, e você - sanar a violação antes de decorridos trinta (30) dias - após o seu recebimento do aviso. A finalização dos seus - direitos sob esta seção não finaliza as licenças de - varejistas que tenham recebido cópias ou direitos de você - sob esta Licença. Se os seus direitos tiverem sido - finalizados e não permanentemente restabelecidos, o - recebimento de uma cópia de algum ou de tudo do mesmo - material não concede a você direitos de utilizá-lo. -

    -
  20. -
  21. -

    - REVISÕES FUTURAS DESTA LICENÇA -

    -

    - A Free Software Foundation pode publicar novas, revisadas - versões da Licença de Documentação Livre GNU de tempos em - tempos. Tais novas versões serão similares na essência à - presente versão, porém podem diferir em detalhes para - abarcar novos problemas ou assuntos. Veja-se - http://www.gnu.org/copyleft/. Para cada versão da Licença - é dado um número distintivo de versão. Se o Documento - especifica que uma versão numerada em particular desta - Licença “ou qualquer versão posterior” se - aplica a ele, você tem a opção de seguir os termos e - condições ou da versão especificada ou de qualquer versão - posterior que tenha sido publicada (não como um rascunho) - pela Free Software Foundation. Se o Documento não - especifica um número de versão desta Licença, você pode - escolher qualquer versão já publicada (não como um - rascunho) pela Free Software Foundation. Se o Documento - especifica que um procurador pode decidir quais versões - futuras desta Licença podem ser utilizadas, essa - declaração pública do procurador de aceitação de uma - versão permanentemente autoriza você a escolher aquela - versão para o Documento. -

    -
  22. -
  23. -

    - RELICENCIAMENTO -

    -

    - “Sítio de Colaboração Massiva Multi autor” - (ou “Sítio MMC”) significa qualquer servidor - da Rede Mundial de Computadores que publica trabalhos - sujeitos a direitos autorais e também provê facilidades - proeminentes para qualquer pessoa editar esses trabalhos. - Um wiki público que qualquer pessoa pode editar é um - exemplo de tal servidor. Uma “Colaboração Massiva - Multi autor” (ou “MMC”) contida no - sítio significa qualquer conjunto de trabalhos sujeitos a - direitos autorais assim publicados no sítio MMC. - “CC-BY-SA” significa a licença Creative - Commons Attribution-Share Alike 3.0 publicada pela - Creative Commons Corporation, uma corporação sem fins - lucrativos com seu domicílio empresarial situado em São - Francisco, Califórnia, Estados Unidos da América do - Norte, bem como versões futuras de esquerdos autorais - dessa licença publicadas pela mesma organização. - “Incorporar” significa publicar ou republicar - um Documento, no todo ou em parte, como parte de outro - Documento. Um MMC é “elegível para - relicenciamento” se ele for licenciado sob esta - Licença, e se todos os trabalhos que foram primeiro - publicados sob esta Licença em algum lugar que não esse - MMC, e subsequentemente incorporados, no todo ou em - parte, no MMC, (1) não tinham textos de capa ou seções - invariantes; e (2) estavam assim incorporados antes de 01 - de novembro de 2008. O operador de um Sítio MMC pode - republicar um MMC contido no sítio sob CC-BY-SA, no mesmo - sítio, a qualquer tempo antes de 01 de agosto de 2009, - contanto que o MMC seja elegível para relicenciamento. -

    -
  24. -
-
-

- ADENDO: Como utilizar esta Licença para seus documentos -

-

- Para utilizar esta Licença em um documento que você escreveu, - inclua uma cópia da Licença no documento e coloque os seguintes - avisos de direitos autorais e licença pouco depois da página de - título: -

-

-
-  Direitos autorais (C) ano  seu nome.
-  Permissão é concedida para copiar, distribuir e/ou modificar este
-  documento sob os termos da Licença de Documentação Livre GNU, Versão
-  1.3 ou qualquer versão posterior publicada pela Free Software
-  Foundation; sem Seções Invariantes, sem Textos de Primeira Capa, e sem
-  Textos de Quarta Capa.   Uma cópia da licença está inclusa na seção
-  intitulada ``Licença de Documentação Livre GNU''.
-
-  
-

- Se você tiver Seções Invariantes, Textos de Primeira Capa e - Textos de Quarta Capa, substitua a linha ``sem ... Capa'' por - isto: -

-

-
-  com as Seções Invariantes sendo liste seus títulos, com os
-  Textos de Primeira Capa sendo lista, e com os Textos de Quarta
-  Capa sendo lista.
-
-  
-

- Se você tiver Seções Invariantes sem Textos de Capa, ou alguma - outra combinação dos três, mescle essas duas alternativas para - adequar a situação. -

-

- Se o seu documento contém exemplos não triviais de código de - programação, nós recomendamos publicar esses exemplos em - paralelo, sob sua escolha de licença de software livre, tal - como a Licença Pública Geral GNU, para permitir seu uso em - software livre. -

-
-
-
-
-
-
-
-

- Índice Remissivo -

-
-
-
-
-

- -

- -

- -

- -

- -

- -

- -

- -

- -

- -
-
-
- - diff --git a/LFS-BOOK-11.1-NOCHUNKS-pt_br.txt b/LFS-BOOK-11.1-NOCHUNKS-pt_br.txt deleted file mode 100644 index c8710f2dfc..0000000000 --- a/LFS-BOOK-11.1-NOCHUNKS-pt_br.txt +++ /dev/null @@ -1,24673 +0,0 @@ -Linux From Scratch - -Versão 11.1 - -Publicado 1º de março de 2022 - -Criado por Gerard Beekmans - -Editor-chefe: Bruce Dubbs - - Copyright © 1999-2022 Gerard Beekmans - - Direitos autorais © 1999-2022, Gerard Beekmans - - Todos os direitos reservados. - - Este livro é licenciado sob uma [1]Creative Commons License. - - As instruções de computador tem permissão para serem extraídas a partir - do livro sob a [2]MIT License. - - Linux® é uma marca comercial registrada do Linus Torvalds. - __________________________________________________________________ - -Ãndice - - * Prefácio - + [3]Introdução - + [4]Audiência - + [5]Arquiteturas Alvo do LFS - + [6]Pré-requisitos - + [7]LFS e Padrões - + [8]Justificativa para os pacotes no Livro - + [9]Tipografia - + [10]Estrutura - + [11]Errata e Avisos de Segurança - * I. Introdução - + 1. Introdução - o [12]Como Construir um Sistema LFS - o [13]O que há de novo desde o último lançamento - o [14]Registro de Mudanças - o [15]Recursos - o [16]Ajuda - * II. Preparando para a Construção - + 2. Preparando o Sistema Anfitrião - o [17]Introdução - o [18]Exigências do Sistema Anfitrião - o [19]Construindo LFS em Estágios - o [20]Criando uma Nova Partição - o [21]Criando um Sistema de Arquivos na Partição - o [22]Configurando a Variável $LFS - o [23]Montando a Nova Partição - + 3. Pacotes e Patches - o [24]Introdução - o [25]Todos os Pacotes - o [26]Patches Necessários - + 4. Preparações Finais - o [27]Introdução - o [28]Criando um layout limitado de diretório em sistema de - arquivos de LFS - o [29]Adicionando a(o) Usuária(o) LFS - o [30]Configurando o Ambiente - o [31]Sobre UPCs - o [32]Sobre as Suítes de Teste - * III. Construindo o Conjunto de Ferramentas Cruzadas de LFS e - Ferramentas Temporárias - + Material Preliminar Importante - o [33]Introdução - o [34]Notas Técnicas do Conjunto de Ferramentas - o [35]Instruções Gerais de Compilação - + 5. Compilando um Conjunto de Ferramentas Cruzado - o [36]Introdução - o [37]Binutils-2.38 - Passagem 1 - o [38]GCC-11.2.0 - Passagem 1 - o [39]Cabeçalhos da API do Linux-5.16.9 - o [40]Glibc-2.35 - o [41]Libstdc++ oriundo de GCC-11.2.0, Passagem 1 - + 6. Compilando Cruzadamente Ferramentas Temporárias - o [42]Introdução - o [43]M4-1.4.19 - o [44]Ncurses-6.3 - o [45]Bash-5.1.16 - o [46]Coreutils-9.0 - o [47]Diffutils-3.8 - o [48]File-5.41 - o [49]Findutils-4.9.0 - o [50]Gawk-5.1.1 - o [51]Grep-3.7 - o [52]Gzip-1.11 - o [53]Make-4.3 - o [54]Patch-2.7.6 - o [55]Sed-4.8 - o [56]Tar-1.34 - o [57]Xz-5.2.5 - o [58]Binutils-2.38 - Passagem 2 - o [59]GCC-11.2.0 - Passagem 2 - + 7. Entrando em Chroot e Construindo Ferramentas Temporárias - Adicionais - o [60]Introdução - o [61]Mudando Propriedade - o [62]Preparando Sistemas de Arquivos Virtuais de Kernel - o [63]Entrando no Ambiente Chroot - o [64]Criando Diretórios - o [65]Criando Arquivos Essenciais e Links Simbólicos - o [66]Libstdc++ oriundo de GCC-11.2.0, Passagem 2 - o [67]Gettext-0.21 - o [68]Bison-3.8.2 - o [69]Perl-5.34.0 - o [70]Python-3.10.2 - o [71]Texinfo-6.8 - o [72]Util-linux-2.37.4 - o [73]Limpando e Salvando o Sistema Temporário - * IV. Construindo o Sistema LFS - + 8. Instalando Aplicativos Básicos de Sistema - o [74]Introdução - o [75]Gerenciamento de Pacote - o [76]Man-pages-5.13 - o [77]Iana-Etc-20220207 - o [78]Glibc-2.35 - o [79]Zlib-1.2.11 - o [80]Bzip2-1.0.8 - o [81]Xz-5.2.5 - o [82]Zstd-1.5.2 - o [83]File-5.41 - o [84]Readline-8.1.2 - o [85]M4-1.4.19 - o [86]Bc-5.2.2 - o [87]Flex-2.6.4 - o [88]Tcl-8.6.12 - o [89]Expect-5.45.4 - o [90]DejaGNU-1.6.3 - o [91]Binutils-2.38 - o [92]GMP-6.2.1 - o [93]MPFR-4.1.0 - o [94]MPC-1.2.1 - o [95]Attr-2.5.1 - o [96]Acl-2.3.1 - o [97]Libcap-2.63 - o [98]Shadow-4.11.1 - o [99]GCC-11.2.0 - o [100]Pkg-config-0.29.2 - o [101]Ncurses-6.3 - o [102]Sed-4.8 - o [103]Psmisc-23.4 - o [104]Gettext-0.21 - o [105]Bison-3.8.2 - o [106]Grep-3.7 - o [107]Bash-5.1.16 - o [108]Libtool-2.4.6 - o [109]GDBM-1.23 - o [110]Gperf-3.1 - o [111]Expat-2.4.6 - o [112]Inetutils-2.2 - o [113]Less-590 - o [114]Perl-5.34.0 - o [115]XML::Parser-2.46 - o [116]Intltool-0.51.0 - o [117]Autoconf-2.71 - o [118]Automake-1.16.5 - o [119]OpenSSL-3.0.1 - o [120]Kmod-29 - o [121]Libelf oriundo de Elfutils-0.186 - o [122]Libffi-3.4.2 - o [123]Python-3.10.2 - o [124]Ninja-1.10.2 - o [125]Meson-0.61.1 - o [126]Coreutils-9.0 - o [127]Check-0.15.2 - o [128]Diffutils-3.8 - o [129]Gawk-5.1.1 - o [130]Findutils-4.9.0 - o [131]Groff-1.22.4 - o [132]GRUB-2.06 - o [133]Gzip-1.11 - o [134]IPRoute2-5.16.0 - o [135]Kbd-2.4.0 - o [136]Libpipeline-1.5.5 - o [137]Make-4.3 - o [138]Patch-2.7.6 - o [139]Tar-1.34 - o [140]Texinfo-6.8 - o [141]Vim-8.2.4383 - o [142]Eudev-3.2.11 - o [143]Man-DB-2.10.1 - o [144]Procps-ng-3.3.17 - o [145]Util-linux-2.37.4 - o [146]E2fsprogs-1.46.5 - o [147]Sysklogd-1.5.1 - o [148]Sysvinit-3.01 - o [149]Acerca dos Símbolos de Depuração - o [150]Despojando - o [151]Limpando - + 9. Configuração do Sistema - o [152]Introdução - o [153]LFS-Bootscripts-20210608 - o [154]Visão Geral do Manuseio de Dispositivos e Módulos - o [155]Gerenciando Dispositivos - o [156]Configuração de Rede Geral - o [157]Uso e Configuração do Script de Inicialização do - System V - o [158]Os Arquivos de Inicialização de Shell do Bash - o [159]Criando o Arquivo /etc/inputrc - o [160]Criando o Arquivo /etc/shells - + 10. Tornando o Sistema LFS Inicializável - o [161]Introdução - o [162]Criando o Arquivo /etc/fstab - o [163]Linux-5.16.9 - o [164]Usando o GRUB para Configurar o Processo de - Inicialização - + 11. O Fim - o [165]O Fim - o [166]Seja Contado - o [167]Reinicializando o Sistema - o [168]E agora? - * V. Anexos - + [169]A. Siglas e Termos - + [170]B. Reconhecimentos - + [171]C. Dependências - + [172]D. Scripts de inicialização e configuração do sistema - versão-20210608 - o [173]/etc/rc.d/init.d/rc - o [174]/lib/lsb/init-functions - o [175]/etc/rc.d/init.d/mountvirtfs - o [176]/etc/rc.d/init.d/modules - o [177]/etc/rc.d/init.d/udev - o [178]/etc/rc.d/init.d/swap - o [179]/etc/rc.d/init.d/setclock - o [180]/etc/rc.d/init.d/checkfs - o [181]/etc/rc.d/init.d/mountfs - o [182]/etc/rc.d/init.d/udev_retry - o [183]/etc/rc.d/init.d/cleanfs - o [184]/etc/rc.d/init.d/console - o [185]/etc/rc.d/init.d/localnet - o [186]/etc/rc.d/init.d/sysctl - o [187]/etc/rc.d/init.d/sysklogd - o [188]/etc/rc.d/init.d/network - o [189]/etc/rc.d/init.d/sendsignals - o [190]/etc/rc.d/init.d/reboot - o [191]/etc/rc.d/init.d/halt - o [192]/etc/rc.d/init.d/template - o [193]/etc/sysconfig/modules - o [194]/etc/sysconfig/createfiles - o [195]/etc/sysconfig/udev-retry - o [196]/sbin/ifup - o [197]/sbin/ifdown - o [198]/lib/services/ipv4-static - o [199]/lib/services/ipv4-static-route - + [200]E. Regras de configuração do Udev - o [201]55-lfs.rules - + [202]F. Licenças do LFS - o [203]Licença da Creative Commons - o [204]A Licença do MIT - o [205]A Licença de Documentação Livre GNU - * [206]Ãndice Remissivo - -Prefácio - -Introdução - - Minha jornada para aprender e entender melhor Linux começou em meados - de 1998. Eu havia acabado de instalar minha primeira distribuição Linux - e rapidamente fiquei intrigado com todo o conceito e filosofia por trás - do Linux. - - Há sempre várias maneiras de se completar uma tarefa. O mesmo pode ser - dito sobre distribuições Linux. Muitas surgiram ao longo dos anos. - Algumas ainda existem, outras se transformaram em outra distribuição, e - ainda há outras que ficaram relegadas às nossas memórias. Todas elas - executam as tarefas de maneira diferente para se adequar às - necessidades de seus respectivos públicos-alvo. Devido ao fato de haver - tantas maneiras de se executar uma tarefa, eu comecei a perceber que eu - não tinha que me limitar à implementação de outra pessoa. Antes de - descobrir o Linux, nós simplesmente lidávamos com problemas em outros - Sistemas Operacionais como se não tivéssemos escolha. A coisa era o que - era, não importando se você gostasse ou não. Com Linux, o conceito de - escolha começou a emergir. Se você não gostou de alguma coisa, você - seria livre, até encorajado, a mudá-la. - - Eu tentei várias distribuições, mas não consegui me decidir por - nenhuma. Elas eram ótimas distribuições em seu próprio direito. Não era - mais uma questão de certo ou errado. O problema havia se transformado - em uma questão de gosto pessoal. Com todas aquelas opções disponíveis, - tornou-se aparente que não haveria um sistema que seria perfeito para - mim. Então eu me propus a criar meu próprio sistema Linux que estaria - totalmente em conformidade com minhas preferências pessoais. - - Para realmente fazer meu próprio sistema, eu resolvi compilar tudo a - partir do código fonte em vez de usar pacotes pré-compilados. Esse - sistema Linux “perfeito†teria a força de vários sistemas sem suas - fraquezas visíveis. A princípio, a ideia era bastante amedrontadora. - Mas eu me mantive comprometido à ideia de que esse sistema poderia ser - construído. - - Após lidar com questões como dependências recíprocas e erros durante a - compilação, eu finalmente construí um sistema Linux customizado. O - sistema era totalmente operacional e perfeitamente utilizável como - qualquer outro sistema Linux disponível na época. Mas era minha própria - criação. Montar um sistema desses foi muito gratificante. A única coisa - que poderia ser melhor seria se eu mesmo tivesse escrito cada programa. - Essa foi a melhor coisa que se seguiu. - - Conforme eu compartilhei meus objetivos e minhas experiências com - outros membros da comunidade Linux, ficou aparente que havia um - interesse firme nessas ideias. Logo ficou claro que tal sistema Linux - customizado não serviria apenas para as necessidades específicas dos - usuários, mas também como uma oportunidade ideal para programadores e - administradores elevarem suas (existentes) habilidades com Linux. Como - resultado desse interesse amplo, o Projeto Linux From Scratch nasceu. - - Este livro Linux From Scratch é o núcleo do projeto. O livro provê a - base e as instruções necessárias para você modelar e construir seu - próprio sistema. Mesmo este livro disponibilizando instruções que - resultarão em um sistema que funciona corretamente, você é livre para - alterar as instruções para adaptá-las às suas necessidades, o que é, em - parte, uma importante parte deste projeto. Você permanece no controle; - nós só damos uma mão para ajudá-lo a começar sua própria jornada. - - Eu sinceramente espero que você se divirta trabalhando no seu próprio - Linux From Scratch e aproveite os benefícios de ter um sistema - verdadeiramente seu. - - -- - Gerard Beekmans - gerard AT linuxfromscratch D0T org - -Audiência - - Existem muitas razões pelas quais você desejaria ler este livro. Uma - das questões que muitas pessoas levantam é “por que ir ao longo de toda - a dificuldade de construir manualmente um sistema Linux desde o zero - quando você pode simplesmente baixar e instalar um existente?†- - Uma importante razão para a existência deste projeto é para te ajudar a - aprender como um sistema Linux funciona de dentro para fora. Construir - um sistema LFS ajuda a demonstrar o que torna o Linux de interesse, e - como as coisas funcionam juntas e dependem umas das outras. Uma das - melhores coisas que essa experiência de aprendizado pode prover é a - habilidade de personalizar um sistema Linux para se ajustar às suas [de - quem construir] próprias necessidades únicas. - - Outro benefício chave de LFS é que ele te permite ter mais controle - sobre o sistema sem confiar na implementação Linux de ninguém. Com LFS, - você está no banco do motorista e dita cada aspecto do sistema. - - LFS te permite criar sistemas muito compactos. Quando se instala - distribuições regulares, você frequentemente é forçado a instalar - muitos programas grandes os quais provavelmente nunca serão usados ou - entendidos. Esses programas desperdiçam recursos. Você talvez argumente - que, com os discos rígidos e CPUs de hoje, tais recursos não mais são - uma consideração. As vezes, entretanto, você ainda está restrito por - considerações de tamanho se nenhuma outra coisa. Pense acerca de CDs - inicializáveis, mídias USB e sistemas embarcados. Essas são áreas onde - LFS pode ser benéfico. - - Outra vantagem de um sistema personalizado Linux construído é - segurança. Ao compilar o sistema inteiro desde o zero, você está - empoderado para auditar tudo e aplicar todas as correções de segurança - desejadas. Não mais é necessário aguardar que outra pessoa compile os - pacotes binários para consertar uma brecha de segurança. A menos que - você examine a correção e a implemente você mesma(o), você não tem - garantias de que o novo pacote binário foi construído corretamente e - adequadamente conserta o problema. - - A finalidade do [projeto] Linux From Scratch é a de construir um - sistema em nível de fundação completo e utilizável. Se você não estiver - afim de construir seu próprio sistema Linux desde o zero, então você - talvez nunca se beneficie das informações neste livro. - - Existem muito mais boas razões para construir seu próprio sistema LFS - para listá-las todas aqui. No final, educação é, de longe, a mais - poderosa das razões. Conforme você continue em sua experiência LFS, - você descobrirá o poder que informação e conhecimento verdadeiramente - trazem. - -Arquiteturas Alvo do LFS - - A principal arquitetura alvo do LFS são os processadores AMD/Intel x86 - (32 bits) e x86_64 (64 bits). Por outro lado, as instruções neste livro - também são conhecidas por funcionar, com algumas modificações, com os - processadores Power PC e ARM. Para construir um sistema que utiliza uma - dessas CPUs, o principal pré-requisito, em adição àqueles que estão nas - próximas páginas, é uma distribuição Linux existente, como uma - instalação LFS prévia, Ubuntu, Red Hat/Fedora, SuSE, ou outra - distribuição que abranja a arquitetura que você tem. Note também que - uma distribuição de 32-bits pode ser instalada e usada como um sistema - hospedeiro em um computador AMD/Intel de 64-bits. - - Para construir LFS, o ganho de construção em um sistema 64-bits - comparado a um sistema 32-bits é mínimo. Por exemplo, em uma construção - de LFS-9.1 de teste em um sistema baseado em CPU Core i7-4790, usando - quatro núcleos, as seguintes estatísticas foram verificadas: -Arquitetura Tempo de Construção Tamanho de Construção -32-bit 239.9 minutos 3.6 GB -64-bit 233.2 minutos 4.4 GB - - Como você pode ver, no mesmo hardware, a construção de 64-bit é apenas - 3% mais rápida e é 22% maior que a construção de 32-bit. Se você - planeja usar LFS como um servidor LAMP, ou como um firewall, então uma - CPU de 32-bits talvez seja largamente suficiente. Por outro lado, - vários pacotes em BLFS atualmente precisam de mais que 4GB de RAM para - serem construídos e (ou) para executarem, de forma que se você planeja - usar LFS como um desktop, então os autores de LFS recomendam construir - em um sistema 64-bits. - - A construção de 64-bit padrão que é resultante do LFS é considerado um - sistema 64-bit “puroâ€. Ou seja, ele suporta apenas executáveis 64-bit. - Construir um sistema “multi-lib†[de múltiplas bibliotecas] exige a - compilação de muitos aplicativos duas vezes, uma vez para um sistema de - 32-bit e outra vez para um sistema de 64-bit. Isso não é diretamente - suportado em LFS, pois interferiria no objetivo educacional de prover - as instruções necessárias para um sistema Linux base estrito. Alguns - editores de LFS/BLFS mantém uma bifurcação de LFS para multilib, que é - acessível em - [207]https://www.linuxfromscratch.org/~thomas/multilib/index.html. - Porém, esse é um tópico avançado. - -Pré-requisitos - - Construir um sistema LFS não é uma tarefa simples. Essa tarefa exige um - certo nível de conhecimento de administração de sistemas Unix para - resolver problemas e corretamente executar os comandos listados. Em - particular, no mínimo, você já deveria ter a habilidade de usar linha - de comando (shell) para copiar ou mover arquivos e diretórios, listar - diretórios e conteúdos de arquivos, e navegar entre os diretórios. - Também é de se esperar que você tenha um conhecimento razoável sobre - como usar e instalar software [em um sistema] Linux. - - Devido ao fato do livro LFS assumir que você tem pelo menos esse nível - básico de habilidades, os vários fóruns de suporte do LFS não serão - adequados para ajudá-lo nessas áreas. Você vai perceber que suas - perguntas com relação a esse conhecimento básico não serão respondidas - ou serão remetidas à lista de itens essenciais de pré-leitura. - - Antes de construir um sistema LFS nós recomendamos a leitura do - seguinte: - * Software-Building-HOWTO - [208]http://www.tldp.org/HOWTO/Software-Building-HOWTO.html - Esse é um guia compreensivo de como construir e instalar pacotes de - software Unix “genéricos†no Linux. Embora tenha sido escrito há - algum tempo, esse guia ainda fornece um bom resumo das técnicas - básicas necessárias para construir e instalar programas. - * Beginner's Guide to Installing from Source - [209]http://moi.vonos.net/linux/beginners-installing-from-source/ - Esse guia fornece um bom sumário de habilidades básicas e de - técnicas necessárias para construir software a partir do código - fonte. - -LFS e Padrões - - A estrutura do LFS segue os padrões Linux tão rigorosamente quanto - possível. Os principais padrões são: - * [210]POSIX.1-2008. - * [211]Filesystem Hierarchy Standard (FHS) Version 3.0 - * [212]Linux Standard Base (LSB) Version 5.0 (2015) - O LSB tem quatro padrões separados: Core, Desktop, Runtime - Languages (linguagens em tempo de execução), e Imaging. Em adição - às exigências genéricas, há as exigências específicas de cada - arquitetura. Existem também duas áreas para uso experimental: Gtk3 - e Graphics. LFS tenta ficar de acordo com as arquiteturas - discutidas na sessão anterior. - -Nota - Muitas pessoas não concordam com os requisitos do LSB. O principal - propósito de definir tais requisitos é o de garantir que softwares - proprietários possam ser instalados e executados adequadamente em - um sistema que respeite o referido padrão. Sendo o LFS baseado em - código fonte, a(o) usuária(o) tem total controle sobre quais - pacotes quer e muitas(os) escolhem não instalar alguns dos pacotes - especificados pelo LSB. - - Criar um sistema LFS completo capaz de passar nos testes das - certificações do LSB é possível, mas não sem muitos pacotes adicionais - que estão além do escopo do LFS. Esses pacotes adicionais tem - instruções para instalação no BLFS. - -Pacotes disponibilizados pelo LFS que são necessários para satisfazer os -requisitos do LSB - - LSB Core: - - Bash, Bc, Binutils, Coreutils, Diffutils, File, Findutils, Gawk, Grep, - Gzip, M4, Man-DB, Ncurses, Procps, Psmisc, Sed, Shadow, Tar, - Util-linux, Zlib - - LSB Desktop: - - Nenhum - - LSB Runtime Languages: - - Perl, Python - - LSB Imaging: - - Nenhum - - LSB Gtk3 e Gráficos LSB (Uso Experimental): - - Nenhum - -Pacotes disponibilizados pelo BLFS necessários para satisfazer os requisitos -do LSB - - LSB Core: - - At, Batch (uma parte de At), Cpio, Ed, Fcrontab, LSB-Tools, NSPR, NSS, - PAM, Pax, Sendmail (ou Postfix ou Exim), time - - LSB Desktop: - - Alsa, ATK, Cairo, Desktop-file-utils, Freetype, Fontconfig, Gdk-pixbuf, - Glib2, GTK+2, Icon-naming-utils, Libjpeg-turbo, Libpng, Libtiff, - Libxml2, MesaLib, Pango, Xdg-utils, Xorg - - LSB Runtime Languages: - - Libxml2, Libxslt - - LSB Imaging: - - CUPS, Cups-filters, Ghostscript, SANE - - LSB Gtk3 e Gráficos LSB (Uso Experimental): - - GTK+3 - -Pacotes não suportados pelo LFS ou BLFS necessários para satisfazer os -requisitos do LSB - - LSB Core: - - Nenhum - - LSB Desktop: - - Qt4 (mas Qt5 é fornecido) - - LSB Runtime Languages: - - Nenhum - - LSB Imaging: - - Nenhum - - LSB Gtk3 e Gráficos LSB (Uso Experimental): - - Nenhum - -Justificativa para os pacotes no Livro - - Como declarado anteriormente, a finalidade do [projeto] LFS é a de - construir um sistema em nível de fundação completo e utilizável. Isso - inclui todos os pacotes necessários para replicá-lo ao tempo que - disponibiliza uma base relativamente pequena sobre a qual a(o) - usuária(o) pode personalizar um sistema mais completo baseado nas - escolhas da(o) usuária(o). Isso não significa que o LFS é o menor - sistema possível. Vários pacotes importantes estão inclusos que não são - estritamente necessários. As listas abaixo documentam a justificativa - para cada pacote no livro. - * Acl - Esse pacote contém utilitários para administrar Listas de Controle - de Acesso, as quais são usadas para definir direitos de acesso - discricionariamente mais finamente refinados para arquivos e para - diretórios. - * Attr - Esse pacote contém aplicativos para a administração de atributos - estendidos sobre objetos do sistema de arquivos. - * Autoconf - Esse pacote contém aplicativos para produzir shell scripts que - podem configurar automaticamente o código fonte a partir de um - modelo do desenvolvedor. É geralmente necessário para reconstruir - um pacote após atualizações para os procedimentos de construção. - * Automake - Esse pacote contém aplicativos para gerar arquivos Make a partir de - um modelo. É geralmente necessário para reconstruir um pacote após - atualizações para os procedimentos de construção. - * Bash - Esse pacote satisfaz um requisito central do LSB para - disponibilizar uma interface Bourne Shell para o sistema. Foi - escolhido em vez de outros pacotes de shell pelo seu uso comum e - extensas capacidades que transcendem as funções básicas do shell. - * Bc - Esse pacote disponibiliza uma linguagem de processamento numérico - com precisão arbitrária. Ele satisfaz requisitos necessários quando - da construção do Kernel do Linux. - * Binutils - Esse pacote contém um linker, um assembler e outras ferramentas - para manipular arquivos objeto. Os aplicativos nesse pacote são - necessários para compilar a maioria dos pacotes em um sistema LFS e - além. - * Bison - Esse pacote contém a versão GNU do yacc (Yet Another Compiler - Compiler) necessário para construir vários outros aplicativos no - LFS. - * Bzip2 - Esse pacote contém aplicativos para compressão e descompressão de - arquivos. É necessário para descomprimir muitos pacotes do LFS. - * Check - Esse pacote contém um conjunto de ferramentas de teste para outros - aplicativos. - * Coreutils - Esse pacote contém um número de aplicativos essenciais para - visualização e manipulação de arquivos e de diretórios. Esses - aplicativos são necessários para o gerenciamento de arquivos por - linha de comando, e são necessários para os procedimentos de - instalação de cada pacote em LFS. - * DejaGNU - Esse pacote contém um sistema para testar outros aplicativos. - * Diffutils - Esse pacote contém aplicativos que mostram as diferenças entre - arquivos ou diretórios. Esses aplicativos podem ser usados para - criar correções, e também são usados em muitos procedimentos de - construção dos pacotes. - * E2fsprogs - Esse pacote contém os utilitários para manipular os sistemas de - arquivos ext2, ext3 e ext4. Esses são os sistemas de arquivos mais - comuns e amplamente testados que o Linux suporta. - * Eudev - Esse pacote é um gerenciador de dispositivo. Ele controla - dinamicamente o dono, permissões, nomes, e links simbólicos de - dispositivos no diretório /dev conforme dispositivos são - adicionados ou removidos do sistema. - * Expat - Esse pacote contém uma biblioteca relativamente pequena de análise - de XML. Ela é exigida pelo módulo de Perl XML::Parser. - * Expect - Esse pacote contém um aplicativo para execução de scripts de - diálogos com outros aplicativos interativos. É comumente usado para - testar outros pacotes. - * File - Esse pacote contém um utilitário para determinar o tipo de um dado - arquivo ou arquivos. Uns poucos pacotes precisam dele em seus - scripts de construção. - * Findutils - Esse pacote contém aplicativos para encontrar arquivos em um - sistema de arquivos. É usado em muitos scripts de construção dos - pacotes. - * Flex - Esse pacote contém um utilitário para gerar aplicativos que - reconhecem padrões em textos. É a versão GNU do aplicativo lex - (lexical analyzer). É necessário para construir vários pacotes do - LFS. - * Gawk - Esse pacote contém aplicativos para manipular arquivos de texto. É - a versão GNU do awk (Aho-Weinberg-Kernighan). É usado em muitos - outros scripts de construção dos pacotes. - * GCC - Esse pacote é o Gnu Compiler Collection. Ele contém os compiladores - C e C++ assim como vários outros não construídos por LFS. - * GDBM - Esse pacote contém a biblioteca GNU Database Manager. É usado por - um outro pacote do LFS, Man-DB. - * Gettext - Esse pacote contém utilitários e bibliotecas para - internacionalização e localização de numerosos pacotes. - * Glibc - Esse pacote contém a biblioteca C principal. Aplicativos Linux não - funcionarão sem ela. - * GMP - Esse pacote contém bibliotecas matemáticas que fornecem funções - úteis para aritmética de precisão arbitrária. É necessário para - compilar GCC. - * Gperf - Esse pacote contém um aplicativo que gera uma função perfeita de - hash a partir de uma chave configurada. Ele é exigido por Eudev. - * Grep - Esse pacote contém aplicativos para procurar dentro de arquivos. - Esses aplicativos são usados pela maioria dos scripts de construção - dos pacotes. - * Groff - Esse pacote contém aplicativos para processamento e formatação de - texto. Uma função importante desses aplicativos é a de formatar - páginas de manual. - * GRUB - Esse pacote é o Grand Unified Boot Loader. Ele é um dos vários - gerenciadores de inicialização disponíveis, mas é o mais flexível. - * Gzip - Esse pacote contém aplicativos para compressão e descompressão de - arquivos. Ele é necessário para descomprimir muitos pacotes em LFS. - * Iana-etc - Esse pacote fornece dados para serviços e protocolos de rede. Ele é - necessário para habilitar suporte a rede adequado. - * Inetutils - Esse pacote contém aplicativos para administração básica de rede. - * Intltool - Esse pacote contém ferramentas para a extração de sequências de - caracteres traduzíveis a partir de arquivos fonte. - * IProute2 - Esse pacote contém aplicativos para redes IPv4 e IPv6 básicas e - avançadas. Ele foi escolhido em vez de outros pacotes comuns de - ferramentas de rede (net-tools) pelo seu suporte a IPv6. - * Kbd - Esse pacote contém arquivos de tabelas chave, utilitários de - teclados que não são estadunidenses, e um número de fontes de - console. - * Kmod - Esse pacote contém aplicativos necessários para administrar os - módulos de kernel do Linux. - * Less - Esse pacote contém um visualizador de textos muito bom que permite - rolar para cima ou para baixo quando se visualiza um arquivo. Ele - também é usado pelo Man-DB para visualizar páginas de manual. - * Libcap - Esse pacote implementa as interfaces do espaço de usuário para as - capacidades POSIX 1003.1e disponíveis em kernels Linux. - * Libelf - O projeto elfutils fornece bibliotecas e ferramentas para dados de - arquivos ELF e DWARF. A maior parte dos utilitários nesse pacote - está disponível em outros pacotes, porém a biblioteca é necessária - para construir o kernel Linux usando a configuração padrão (e mais - eficiente). - * Libffi - Esse pacote implementa uma interface de programação portável, de - alto nível, para várias convenções de chamada. Alguns aplicativos - talvez não saibam, ao tempo da compilação, quais argumentos são - para serem passados para uma função. Por exemplo, um interpretador - talvez possa ser informado, ao tempo de execução, acerca do número - e dos tipos de argumentos usados para chamar uma dada função. - Libffi pode ser usada em tais aplicativos para fornecer uma ponte a - partir do aplicativo interpretador para o código compilado. - * Libpipeline - O pacote Libpipeline contém uma biblioteca para manipular pipelines - de subprocessos de uma maneira flexível e conveniente. Ele é - exigido pelo pacote Man-DB. - * Libtool - Esse pacote contém o script GNU de suporte a bibliotecas genéricas. - Ele esconde a complexidade do uso de bibliotecas compartilhadas em - uma interface consistente e portável. Ele é necessário para as - ferramentas de testes em outros pacotes do LFS. - * Linux Kernel - Esse pacote é o Sistema Operacional. Ele é o Linux no ambiente - GNU/Linux. - * M4 - Esse pacote contém um processador geral de macro de texto, útil - como uma ferramenta de construção para outros aplicativos. - * Make - Esse pacote contém um aplicativo para direcionar a construção de - pacotes. Ele é exigido por quase todos os pacotes em LFS. - * Man-DB - Esse pacote contém aplicativos para encontrar e visualizar páginas - de manual. Ele foi escolhido em vez do pacote man devido a - capacidades superiores de internacionalização. Ele faz as vezes do - aplicativo man. - * Man-pages - Esse pacote contém o conteúdo atual das páginas de manual básicas - do Linux. - * Meson - Esse pacote fornece uma ferramenta de software para automatizar a - construção de software. A finalidade principal para Meson é a de - minimizar a quantidade de tempo que desenvolvedores de software - precisam investir configurando o sistema de construção deles. Ele é - exigido para construir Systemd, bem como muitos pacotes BLFS. - * MPC - Esse pacote contém funções para a aritmética de números complexos. - Ele é exigido por GCC. - * MPFR - Esse pacote contém funções para aritmética de precisão múltipla. - Ele é exigido por GCC. - * Ninja - Esse pacote contém um sistema pequeno de construção com um foco em - velocidade. Ele é desenhado para ter os arquivos de entrada dele - gerados por um sistema de construção de alto nível, e para executar - construções o mais rápido possível. Esse pacote é exigido por - Meson. - * Ncurses - Esse pacote contém bibliotecas para manipulação independente de - terminal de telas de carácter. Ele é frequentemente usado para - fornecer controle de cursor para um sistema com menus. Ele é - necessitado por um número de pacotes em LFS. - * Openssl - Esse pacote fornece ferramentas e bibliotecas de gerenciamento - relacionadas a criptografia. Essas são úteis para fornecer funções - criptográficas para outros pacotes, incluindo o kernel Linux. - * Patch - Esse pacote contém um aplicativo para modificar ou criar arquivos - aplicando um arquivo patch tipicamente criado pelo aplicativo diff. - Ele é necessitado pelo procedimento de construção para vários - pacotes LFS. - * Perl - Esse pacote é um interpretador para a linguagem de tempo de - execução PERL. Ele é necessário para a instalação e ferramentas de - teste de vários pacotes do LFS. - * Pkg-config - Esse pacote fornece um aplicativo que retorna metadados acerca de - uma biblioteca ou pacote instalado. - * Procps-NG - Esse pacote contém aplicativos para monitorar processos. Esses - aplicativos são úteis para administração de sistema, e são também - usados pelos scripts de inicialização do LFS. - * Psmisc - Esse pacote contém aplicativos para mostrar informações acerca de - processos em execução. Esses aplicativos são úteis para - administração de sistema. - * Python 3 - Esse pacote fornece uma linguagem interpretada que tem uma - filosofia de desenho que enfatiza a legibilidade de código. - * Readline - Esse pacote é um conjunto de bibliotecas que oferecem capacidades - de edição e de histórico de linha de comando. Ele é usado por Bash. - * Sed - Esse pacote permite a edição de texto sem abri-lo em um editor de - texto. Ele também é necessitado pela maioria dos scripts de - configuração dos pacotes do LFS. - * Shadow - Esse pacote contém aplicativos para manipulação de senhas de uma - maneira segura. - * Sysklogd - Esse pacote contém aplicativos para registro de mensagens do - sistema, tais como aqueles enviadas pelo kernel ou por processos - deamons quando eventos não-usuais acontecem. - * Sysvinit - Esse pacote fornece o aplicativo init, o qual é o pai de todos os - outros processos no sistema Linux. - * Tar - Esse pacote fornece capacidades de empacotamento e de extração de - virtualmente todos os pacotes usados em LFS. - * Tcl - Esse pacote contém a Tool Command Language usada em muitas - ferramentas de teste em pacotes do LFS. - * Texinfo - Esse pacote contém aplicativos para leitura, escrita e conversão de - páginas info. Ele é usado nos procedimentos de instalação de muitos - pacotes LFS. - * Util-linux - Esse pacote contém uma variedade de aplicativos utilitários. Entre - eles estão utilitários para manipulação de sistemas de arquivos, - consoles, partições e mensagens. - * Vim - Esse pacote contém um editor. Ele foi escolhido por causa da - compatibilidade com o clássico editor vi e o seu número gigante de - capacidades poderosas. Um editor é uma escolha muito pessoal para - muitas(os) usuárias(os) e qualquer outro editor poderia ser - substituído se assim desejar. - * XML::Parser - Esse pacote é um módulo Perl que interage com Expat. - * XZ Utils - Esse pacote contém aplicativos para compressão e descompressão de - arquivos. Ele fornece a maior compressão geralmente disponível e é - útil para descomprimir pacotes nos formatos XZ ou LZMA. - * Zlib - Esse pacote contém rotinas de compressão e descompressão usadas por - alguns aplicativos. - * Zstd - Esse pacote contém rotinas de compressão e descompressão usadas por - alguns aplicativos. Ele fornece taxas altas de compressão e um - intervalo muito amplo de intercâmbios entre compressão / - velocidade. - -Tipografia - - Para fazer as coisas mais fáceis de serem seguidas, existem algumas - convenções tipográficas usadas neste livro. Esta sessão contém alguns - exemplos da formatação tipográfica encontrada ao longo de Linux From - Scratch. -./configure --prefix=/usr - - Essa forma de texto é desenhada para ser digitada do jeito que está, a - menos que seja dito o contrário no texto que a envolve. É também usada - na sessão de explicação para identificar quais dos comandos estão sendo - referenciados. - - Em alguns casos, uma linha lógica é estendida em duas ou mais linhas - físicas com uma barra invertida no final da linha. -CC="gcc -B/usr/bin/" ../binutils-2.18/configure \ - --prefix=/tools --disable-nls --disable-werror - - Note que a barra invertida deve ser seguida imediatamente por uma - quebra de linha. Outros espaços em branco como tabulação criarão - resultados incorretos. -install-info: unknown option '--dir-file=/mnt/lfs/usr/info/dir' - - Essa forma de texto (largura fixa) mostra a saída em tela, geralmente - como resultado de um comando executado. Esse formato é também utilizado - para mostrar nomes de arquivos, como /etc/ld.so.conf. - - Emphasis - - Essa forma de texto é usada para vários propósitos neste livro. Seu - propósito principal é o de enfatizar pontos ou itens importantes. - - [213]https://www.linuxfromscratch.org/ - - Esse formato é usado para hiperlinks tanto dentro da comunidade LFS e - para páginas externas. Isso inclui HOWTOs, locais de downloads e - páginas da Internet. -cat > $LFS/etc/group << "EOF" -root:x:0: -bin:x:1: -...... -EOF - - Esse formato é usado quando da criação de arquivos de configuração. O - primeiro comando diz para o sistema criar o arquivo $LFS/etc/group a - partir do que seja digitado nas linhas seguintes até encontrar a - sequência “End Of File†(EOF). Portanto, toda essa sequência é - geralmente digitada da maneira como é vista. - - - - Esse formato é usado para encapsular texto que não deve ser digitado - como visto ou para operações de “copiar-colarâ€. - - [OPTIONAL TEXT] - - Esse formato é usado para encapsular texto que é opcional. - - passwd(5) - - Esse formato é usado para referir-se a uma página de manual específica - (man). O número entre parênteses indica uma seção específica dentro dos - manuais. Por exemplo, passwd tem duas páginas de manual. Conforme as - instruções de instalação do LFS, essas duas páginas de manual estarão - localizadas em /usr/share/man/man1/passwd.1 e - /usr/share/man/man5/passwd.5. Quando o livro usa passwd(5) ele está se - referindo especificamente a /usr/share/man/man5/passwd.5. man passwd - exibirá a primeira página de manual que corresponde a “passwdâ€, a qual - será /usr/share/man/man1/passwd.1. Para esse exemplo, você precisará - executar man 5 passwd para ler a página sendo especificada. Perceba que - a maioria das páginas de manual não tem nomes duplicados de páginas em - diferentes seções. Portanto, man geralmente é - suficiente. - -Estrutura - - Este livro é dividido nas seguintes partes. - -Parte I – Introdução - - A Parte I explica algumas notas importantes sobre como proceder com a - instalação do LFS. Essa seção também fornece metainformação sobre o - livro. - -Parte II – Preparando para a Construção - - A Parte II descreve como se preparar para o processo de construção - —criando uma partição, baixando os pacotes, e compilando as ferramentas - temporárias. - -Parte III – Construindo o Conjunto Cruzado de Ferramentas do LFS e -Ferramentas Temporárias - - A Parte III fornece instruções para a construção das ferramentas - necessárias para a construção do sistema LFS final. - -Parte IV - Construindo o Sistema LFS - - A Parte IV guia o leitor ao longo da construção do sistema LFS - —compilando e instalando todos os pacotes, um por um, configurando os - scripts de inicialização e instalando o kernel. O sistema Linux - resultante é a base sobre a qual outros aplicativos podem ser - construídos para expandir o sistema conforme desejado. No final deste - livro, há uma lista de referência de fácil uso listando todos os - aplicativos, bibliotecas e arquivos importantes que foram instalados. - -Parte V - Apêndices - - A Parte V fornece informação acerca do próprio livro incluindo - acrônimos e termos, reconhecimentos, dependências de pacotes, uma - listagem dos scripts de inicialização do LFS, licenças para a - distribuição do livro, e um índice compreensível de pacotes, - aplicativos, bibliotecas, e scripts. - -Errata e Avisos de Segurança - - Os aplicativos utilizados para criar um sistema LFS estão sendo - constantemente atualizados e melhorados. Alertas de segurança e - correções de defeitos talvez se tornem disponíveis após o livro LFS ter - sido lançado. Para checar se versões de pacotes ou instruções neste - lançamento de LFS necessitam de quaisquer modificações para acomodar - vulnerabilidades de segurança ou outras correções de defeitos, por - favor visite [214]https://www.linuxfromscratch.org/lfs/errata/11.1/ - antes de continuar com a sua construção. Você deveria tomar nota de - quaisquer mudanças mostradas e aplicá-las às seções relevantes do livro - conforme você progride com a construção do sistema LFS. - - Adicionalmente, os editores de Linux From Scratch mantém uma lista de - vulnerabilidades de segurança descobertas depois que um livro foi - lançado. Para checar se existem quaisquer vulnerabilidades ativas de - segurança, por favor visite - [215]https://www.linuxfromscratch.org/lfs/advisories/ antes de proceder - com sua construção. Você deveria tomar nota de quaisquer conselhos e - executar os passos para corrigir quaisquer vulnerabilidades de - segurança conforme você progride com a construção do sistema LFS. - -Parte I. Introdução - -Capítulo 1. Introdução - -1.1. Como Construir um Sistema LFS - - O sistema LFS será construído usando uma distribuição Linux já - instalada (tal como Debian, OpenMandriva, Fedora, ou openSUSE). Esse - sistema Linux existente (o anfitrião) será usado como ponto de partida - para fornecer os aplicativos necessários, incluindo um compilador, um - vinculador, e um interpretador de comandos, para construir o novo - sistema. Selecione a opção “desenvolvimento†durante a instalação da - distribuição para estar apto a acessar essas ferramentas. - - Como uma alternativa a instalar uma distribuição separada em sua - máquina, você talvez deseje usar um LiveCD de uma distribuição - comercial. - - [216]Capítulo 2 deste livro descreve como criar uma nova partição Linux - nativa e sistema de arquivos. Esse é o local onde o novo sistema LFS - será compilado e instalado. [217]Capítulo 3 explica quais pacotes e - patches precisam ser baixados para construir um sistema LFS e como eles - devem ser armazenados no novo sistema de arquivos. [218]Capítulo 4 - discute a configuração de um ambiente de trabalho apropriado. Por - favor, leia o [219]Capítulo 4 cuidadosamente, uma vez que ele explica - vários assuntos importantes sobre os quais você deve estar ciente antes - de começar seu trabalho ao longo do [220]Capítulo 5 e além. - - [221]Capítulo 5, explica a instalação do conjunto inicial de - ferramentas, (binutils, gcc, e glibc) usando técnicas de compilação - cruzada para isolar as novas ferramentas das do sistema anfitrião. - - [222]Capítulo 6 te mostra como compilar cruzadamente utilitários - básicos usando o recém construído conjunto cruzado de ferramentas. - - [223]Capítulo 7 então entra em um ambiente "chroot" e usa as - ferramentas previamente construídas para construir as ferramentas - adicionais necessárias para construir e para testar o sistema final. - - Esse esforço para isolar o sistema novo do sistema anfitrião talvez - pareça excessivo. Uma explicação técnica completa sobre o porquê isso é - feito é fornecida em [224]Notas Técnicas do Conjunto de Ferramentas. - - Em [225]Capítulo 8, o sistema LFS completo é construído. Outra vantagem - fornecida pelo ambiente chroot é que ele te permite continuar usando o - sistema anfitrião enquanto que LFS está sendo construído. Enquanto - espera por compilações de pacotes completarem, você pode continuar - usando seu computador normalmente. - - Para finalizar a instalação, a configuração básica do sistema é - concluída em [226]Capítulo 9, e o kernel e carregador de inicialização - são configurados em [227]Capítulo 10. [228]Capítulo 11 contém - informação sobre como continuar a experiência LFS além deste livro. - Após os passos neste livro terem sido implementados, o computador - estará pronto para reiniciar no novo sistema LFS. - - Esse é o processo em poucas palavras. Informação detalhada sobre cada - passo é discutida nos capítulos seguintes e nas descrições dos pacotes. - Itens que talvez pareçam complicados serão esclarecidos, e tudo ficará - em seu devido lugar conforme você embarcar na aventura do LFS. - -1.2. O que há de novo desde o último lançamento - - Nesta versão de LFS, houve uma grande reorganização do livro usando - técnicas que evitam a modificação do sistema anfitrião e fornecem um - seguimento mais estrito do processo de construção. - - Abaixo está uma lista das atualizações de pacotes feitas desde o - lançamento anterior do livro. - - Atualizado para: - * Automake-1.16.5 - * Bash-5.1.16 - * Bc-5.2.2 - * Binutils-2.38 - * Bison-3.8.2 - * Coreutils-9.0 - * E2fsprogs-1.46.5 - * Eudev-3.2.11 - * Expat-2.4.6 - * File-5.41 - * Findutils-4.9.0 - * Gawk-5.1.1 - * GDBM-1.23 - * Glibc-2.35 - * Gzip-1.11 - * IANA-Etc-20220207 - * Inetutils-2.2 - * IPRoute2-5.16.0 - * Libcap-2.63 - * Libelf-0.186 (de: elfutils) - * Libpipeline-1.5.5 - * Linux-5.16.9 - * Man-DB-2.10.1 - * Meson-0.61.1 - * Ncurses-6.3 - * Openssl-3.0.1 - * Python-3.10.2 - * Readline-8.1.2 - * Shadow-4.11.1 - * SysVinit-3.01 - * Tcl-8.6.12 - * Tzdata-2021e - * Util-Linux-2.37.4 - * Vim-8.2.4383 - * Zstd-1.5.2 - - Adicionado: - * binutils-2.38-lto_fix-1.patch - * coreutils-9.0-chmod_fix-1.patch - * file-5.40-upstream_fixes-1.patch - * shadow-4.10-useradd_segfault-1.patch - * sysvinit-3.01-consolidated-1.patch - -1.3. Registro de Mudanças - - Esta é a versão 11.1 do livro Linux From Scratch, datada de 1º de março - de 2022. Se este livro estiver com mais de seis meses, então uma versão - nova e melhor provavelmente já está disponível. Para descobrir, por - favor verifique um dos sites via - [229]https://www.linuxfromscratch.org/mirrors.html. - - Abaixo está uma lista das mudanças feitas desde o lançamento anterior - do livro. - - Entradas de Registro de Mudanças: - * 2022-03-01 - + [bdubbs] - LFS-11.1 lançado. - * 2022-02-23 - + [bdubbs] - Atualização para expat-2.4.6 (correção de - segurança). Corrige [230]#5011. - * 2022-02-15 - + [bdubbs] - LFS-11.1-rc1 lançado. - + [bdubbs] - Adicionar binutils-2.38 LTO patch. Corrige - [231]#5011. - + [bdubbs] - Atualização para util-linux-2.37.4. Corrige - [232]#5010. - + [bdubbs] - Atualização para man-db-2.10.1. Corrige [233]#5009. - + [bdubbs] - Atualização para linux-5.16.9. Corrige [234]#5008. - + [bdubbs] - Atualização para vim-8.2.4383 (Atualização de - Segurança). Endereça [235]#4500. - + [bdubbs] - Atualização para iana-etc-20220207. Endereça - [236]#5006. - * 2022-02-10 - + [xry111] - Contorna um problema que causa os binários se - vincularem a bibliotecas da distribuição anfitriã para a - passagem dois de binutils. Agora é desnecessário construir - zlib em capítulo 6. - * 2022-02-09 - + [bdubbs] - Atualização para bc-5.2.2. Corrige [237]#5004. - + [bdubbs] - Atualização para linux-5.16.8. Corrige [238]#5005. - + [bdubbs] - Atualização para binutils-2.38. Exige a adição de - zlib para Capítulo 6. Corrige [239]#5007. - * 2022-02-04 - + [xry111] - Remove diretivas bash +h em chroot. Corrige - [240]#4998. - + [xry111] - Atualização para man-db-2.10.0. Corrige [241]#5002. - + [xry111] - Move OpenSSL para antes de Kmod e habilita OpenSSL - para construção de Kmod. - + [xry111] - Atualização para gdbm-1.23. Corrige [242]#5000. - + [xry111] - Atualização para tcl-8.6.12. Corrige [243]#5001. - + [thomas] - Remove sed das instruções glibc em capítulo 8. Foi - submetida ao desenvolvedor. - * 2022-02-03 - + [bdubbs] - Adicionado patch chmod do coreutils-9.0. Corrige - [244]#4992. - + [bdubbs] - Atualização para glibc-2.35. Corrige [245]#4999. - + [bdubbs] - Atualização para linux-5.16.5. Corrige [246]#4996. - + [bdubbs] - Atualização para findutils-4.9.0. Corrige - [247]#4995. - + [bdubbs] - Atualização para expat-2.4.4. Corrige [248]#4993. - + [bdubbs] - Atualização para iana-etc-20220128. Corrige - [249]#4994. - * 2022-01-29 - + [bdubbs] - Atualização para linux-5.16.4. Corrige [250]#4991. - * 2022-01-27 - + [bdubbs] - Atualização para vim-8.2.4236. Endereça [251]#4500. - + [bdubbs] - Atualização para zstd-1.5.2. Corrige [252]#4988. - + [bdubbs] - Atualização para util-linux-2.37.3 (correção de - segurança). Corrige [253]#4989. - + [bdubbs] - Atualização para Python-3.10.2. Corrige [254]#4987. - + [bdubbs] - Atualização para linux-5.16.2. Corrige [255]#4979. - + [bdubbs] - Atualização para libcap-2.63. Corrige [256]#4990. - + [bdubbs] - Atualização para iproute2-5.16.0. Corrige - [257]#4982. - + [bdubbs] - Atualização para iana-etc-20220120. Corrige - [258]#4975. - * 2022-01-20 - + [bdubbs] - Atualização para expat-2.4.3 (correções de - segurança). Corrige [259]#4984. - + [pierre] - Atualização para meson-0.61.1. Corrige [260]#4985. - * 2022-01-17 - + [thomas] - Adicionada uma correção de um erro de digitação - para o patch de meson-0.61.0. - * 2022-01-15 - + [bdubbs] - Atualização para shadow-4.11.1. Corrige [261]#4976. - + [bdubbs] - Atualização para readline-8.1.2. Corrige - [262]#4980. - + [bdubbs] - Atualização para meson-0.61.0. Corrige [263]#4983. - + [bdubbs] - Atualização para libpipeline-1.5.5. Corrige - [264]#4977. - + [bdubbs] - Atualização para bash-5.1.16. Corrige [265]#4978. - * 2022-01-01 - + [bdubbs] - Atualização para e2fsprogs-1.46.5. Corrige - [266]#4974. - + [bdubbs] - Atualização para zstd-1.5.1. Corrige [267]#4972. - + [bdubbs] - Atualização para expat-2.4.2. Corrige [268]#4970. - + [bdubbs] - Atualização para shadow-4.10. Corrige [269]#4969. - + [bdubbs] - Atualização para sysvinit-3.01. Corrige [270]#4968. - + [bdubbs] - Atualização para linux-5.15.12. Corrige [271]#4967. - + [bdubbs] - Atualização para iana-etc-20211224. Corrige - [272]#4962. - + [bdubbs] - Atualização para openssl-3.0.1. Corrige [273]#4922. - + [bdubbs] - Atualização para eudev-3.2.11. Corrige [274]#4914. - * 2021-12-30 - + [renodr] - Atualização para meson-0.60.3. Corrige [275]#4973. - * 2021-12-15 - + [bdubbs] - Atualização para python3-3.10.1. Corrige - [276]#4963. - + [bdubbs] - Atualização para openssl-1.1.1m. Corrige - [277]#4966. - + [bdubbs] - Atualização para linux-5.15.7. Corrige [278]#4964. - + [bdubbs] - Atualização para libcap-2.62. Corrige [279]#4965. - * 2021-12-14 - + [thomas] - Permite a construção de findutils em sistemas de 32 - bits. Commits aplicados a partir da branch multilib por - [pierre]. - * 2021-12-01 - + [bdubbs] - Atualização para vim-8.2.3704. Endereça [280]#4500. - + [bdubbs] - Atualização para iana-etc-20211124. Corrige - [281]#4957. - + [bdubbs] - Atualização para bc-5.2.1. Corrige [282]#4959. - + [bdubbs] - Atualização para meson-0.60.2. Corrige [283]#4960. - + [bdubbs] - Atualização para linux-5.15.5. Corrige [284]#4956. - * 2021-11-15 - + [bdubbs] - Atualização para iana-etc-20211112. Corrige - [285]#4955. - + [bdubbs] - Atualização para elfutils-0.186. Corrige - [286]#4954. - + [bdubbs] - Atualização para bc-5.2.0. Corrige [287]#4952. - + [bdubbs] - Atualização para ncurses-6.3. Corrige [288]#4951. - + [bdubbs] - Atualização para libpipeline-1.5.4. Corrige - [289]#4950. - + [bdubbs] - Atualização para meson-0.60.1. Corrige [290]#4949. - + [bdubbs] - Atualização para iproute2-5.15.0. Corrige - [291]#4948. - + [bdubbs] - Atualização para linux-5.15.2. Corrige [292]#4947. - * 2021-11-01 - + [bdubbs] - Atualização para gawk-5.1.1. Corrige [293]#4946. - + [bdubbs] - Atualização para meson-0.60.0. Corrige [294]#4945. - + [bdubbs] - Atualização para libcap-2.60. Corrige [295]#4944. - + [bdubbs] - Atualização para gdbm-1.22. Corrige [296]#4943. - + [bdubbs] - Atualização para file-5.41. Corrige [297]#4942. - + [bdubbs] - Atualização para linux-5.14.15. Corrige [298]#4941. - + [bdubbs] - Atualização para iana-etc-20211025. Corrige - [299]#4940. - + [bdubbs] - Atualização para tzdata-2021e. Corrige [300]#4939. - * 2021-10-15 - + [bdubbs] - Atualização para vim-8.2.3508. Endereça [301]#4500. - + [bdubbs] - Atualização para tzdata-2021c. Corrige [302]#4934. - + [bdubbs] - Atualização para Python-3.10.0. Corrige [303]#4938. - + [bdubbs] - Atualização para Jinja2-3.0.2. Corrige [304]#4937. - + [bdubbs] - Atualização para linux-5.14.12. Corrige [305]#4932. - + [bdubbs] - Atualização para iana-etc-20211004. Corrige - [306]#4933. - + [bdubbs] - Atualização para bc-5.1.1. Corrige [307]#4936. - + [bdubbs] - Atualização para automake-1.16.5. Corrige - [308]#4935. - * 2021-10-01 - + [bdubbs] - Atualização para vim-8.2.3458. Endereça [309]#4500. - + [bdubbs] - Atualização para iana-etc-20210924. Endereça - [310]#4722. - + [bdubbs] - Atualização para tzdata-2021b. Corrige [311]#4929. - + [bdubbs] - Atualização para sysvinit-3.0.0. Corrige - [312]#4927. - + [bdubbs] - Atualização para meson-0.59.2. Corrige [313]#4931. - + [bdubbs] - Atualização para linux-5.14.8. Corrige [314]#4925. - + [bdubbs] - Atualização para libcap-2.59. Corrige [315]#4926. - + [bdubbs] - Atualização para coreutils-9.0. Corrige [316]#4928. - + [bdubbs] - Atualização para bison-3.8.2. Corrige [317]#4930. - * 2021-09-15 - + [bdubbs] - Garante que as instruções de documentação de tcl - estão presentes. Corrige [318]#4923. - + [bdubbs] - Atualização para Python3-3.9.7. Corrige [319]#4916. - + [bdubbs] - Atualização para linux-5.14.3. Corrige [320]#4913. - + [bdubbs] - Atualização para libcap-2.57. Corrige [321]#4912. - + [bdubbs] - Atualização para iproute2-5.14.0. Corrige - [322]#4917. - + [bdubbs] - Atualização para inetutils-2.2. Corrige [323]#4918. - + [bdubbs] - Atualização para gzip-1.11. Corrige [324]#4920. - + [bdubbs] - Atualização para gdbm-1.21. Corrige [325]#4919. - + [bdubbs] - Atualização para bison-3.8.1. Corrige [326]#4921. - + [bdubbs] - Atualização para bc-5.0.2. Corrige [327]#4905. - * 2021-09-08 - + [renodr] - Corrige regressões em File que resultam em detecção - inapropriada de texto e arquivos XZ. - * 2021-09-06 - + [bdubbs] - Esclarecimentos de texto na seção cópia de - segurança/restauração de Capítulo 7. Grato a Kevin Buckley - pelo patch. - * 2021-09-01 - + [bdubbs] - LFS-11.0 lançado. - -1.4. Recursos - -1.4.1. Perguntas Frequentes - - Se durante a construção do sistema LFS você encontrar quaisquer erros, - tiver quaisquer perguntas, ou entender que há um erro de digitação no - livro, então, por favor, comece consultando as Perguntas Feitas - Frequentemente (FAQ) que estão localizadas em - [328]https://www.linuxfromscratch.org/faq/. - -1.4.2. Listas de Correio Eletrônico - - O servidor linuxfromscratch.org hospeda um número de listas de - discussão usadas para o desenvolvimento do projeto LFS. Essas listas - incluem as principais listas de desenvolvimento e suporte, dentre - outras. Se o FAQ não resolver o problema que você está tendo, então o - próximo passo seria procurar nas listas de discussão em - [329]https://www.linuxfromscratch.org/search.html. - - Para informação sobre as diversas listas, como se inscrever, - localização de arquivos e informações adicionais, visite - [330]https://www.linuxfromscratch.org/mail.html. - -1.4.3. IRC - - Vários membros da comunidade LFS oferecem assistência no Internet Relay - Chat (IRC). Antes de usar esse suporte, por favor certifique-se de que - sua pergunta já não foi respondida no FAQ do LFS ou nos arquivos das - listas de discussão. Você pode encontrar a rede IRC em irc.libera.chat. - O canal de suporte é chamado de #lfs-support. - -1.4.4. Sítios Espelho - - O projeto LFS tem um número de espelhos mundo afora para fazer com que - o acesso ao site do projeto e o download dos pacotes exigidos seja mais - conveniente. Por favor visite o site do LFS em - [331]https://www.linuxfromscratch.org/mirrors.html para uma lista dos - espelhos atuais. - -1.4.5. Informação de Contato - - Por favor, direcione todas as suas questões e comentários para uma das - listas de discussão (veja acima). - -1.5. Ajuda - - Se um problema ou uma pergunta for encontrado durante o trabalho com - este livro, então, por favor, verifique a página de Perguntas - Frequentes em [332]https://www.linuxfromscratch.org/faq/#generalfaq. - Perguntas frequentemente já estão respondidas lá. Se sua pergunta não - estiver respondida nessa página, então, por favor, tente encontrar a - origem do problema. A dica seguinte te dará alguma orientação com - relação à resolução de problemas: - [333]https://www.linuxfromscratch.org/hints/downloads/files/errors.txt. - - Se você não puder achar seu problema listado nas Perguntas Frequentes, - então procure nas listas de discussão em - [334]https://www.linuxfromscratch.org/search.html. - - Nós também temos uma comunidade LFS maravilhosa que está disposta a - oferecer assistência por meio das listas de discussão e IRC (veja a - seção [335]Seção 1.4, “Recursos†deste livro). Entretanto, nós temos - várias perguntas de suporte todos os dias e muitas delas podem ser - facilmente respondidas indo para as Perguntas Frequentes e procurando - nas listas de discussão primeiro. Então, para que nós possamos oferecer - a melhor assistência possível, você precisa fazer alguma pesquisa por - conta própria primeiro. Isso nos permite focar nas necessidades menos - usuais de suporte. Se suas buscas não produzirem uma solução, então, - por favor, inclua todas as informações relevantes (mencionadas abaixo) - no seu pedido de ajuda. - -1.5.1. Coisas a Mencionar - - Além de uma breve explanação do problema sendo vivenciado, as coisas - essenciais a incluir em qualquer pedido de ajuda são: - * A versão do livro sendo usado (neste caso 11.1) - * A distribuição anfitriã e versão sendo usada para criar LFS - * A saída do script [336]Exigências do Sistema Anfitrião - * O pacote ou seção onde o problema foi encontrado - * A mensagem de erro exata ou o sintoma sendo recebido - * Nota se você se desviou do livro afinal - -Nota - - Desviar-se deste livro não significa que nós não vamos te ajudar. - Afinal de contas, LFS é acerca de preferência pessoal. Ser sincero - sobre quaisquer mudanças nos procedimentos estabelecidos nos ajuda a - avaliar e determinar possíveis causas do seu problema. - -1.5.2. Problemas de Script de Configuração - - Se algo der errado quando executar o script configure, então revise o - arquivo config.log. Esse arquivo talvez contenha erros encontrados - durante [a execução de] configure os quais não foram exibidos na tela. - Inclua as linhas relevantes se você precisar pedir ajuda. - -1.5.3. Problemas de Compilação - - Tanto a saída da tela quando o conteúdo de vários arquivos são úteis - para determinar a causa de problemas de compilação. A saída da tela do - script configure e do make executado podem ser úteis. Não é necessário - incluir toda a saída, mas inclua informações relevantes suficientes. - Abaixo está um exemplo do tipo de informação a incluir a partir da - saída de tela do make: -gcc -DALIASPATH=\"/mnt/lfs/usr/share/locale:.\" --DLOCALEDIR=\"/mnt/lfs/usr/share/locale\" --DLIBDIR=\"/mnt/lfs/usr/lib\" --DINCLUDEDIR=\"/mnt/lfs/usr/include\" -DHAVE_CONFIG_H -I. -I. --g -O2 -c getopt1.c -gcc -g -O2 -static -o make ar.o arscan.o commands.o dir.o -expand.o file.o function.o getopt.o implicit.o job.o main.o -misc.o read.o remake.o rule.o signame.o variable.o vpath.o -default.o remote-stub.o version.o opt1.o --lutil job.o: In function `load_too_high': -/lfs/tmp/make-3.79.1/job.c:1565: undefined reference -to `getloadavg' -collect2: ld returned 1 exit status -make[2]: *** [make] Error 1 -make[2]: Leaving directory `/lfs/tmp/make-3.79.1' -make[1]: *** [all-recursive] Error 1 -make[1]: Leaving directory `/lfs/tmp/make-3.79.1' -make: *** [all-recursive-am] Error 2 - - Nesse caso, muitas pessoas incluiriam apenas a seção final: -make [2]: *** [make] Error 1 - - Essa não é informação suficiente para diagnosticar adequadamente o - problema, pois essa linha apenas mostra que algo deu errado, não o quê - deu errado. A seção inteira, como no exemplo acima, é o que deveria ser - salva, porque ela inclui o comando que foi executado e a(s) - mensagem(ns) de erro associada(s). - - Um artigo excelente sobre como pedir ajuda na Internet está disponível - em [337]http://catb.org/~esr/faqs/smart-questions.html. Leia e siga as - dicas nesse documento para aumentar a possibilidade receber a ajuda que - você precisa. - -Parte II. Preparando para a Construção - -Capítulo 2. Preparando o Sistema Anfitrião - -2.1. Introdução - - Neste capítulo, as ferramentas do anfitrião necessárias para construção - de LFS são verificadas e, se necessário, instaladas. Então uma partição - que hospedará o sistema LFS é preparada. Nós criaremos a própria - partição, criaremos um sistema de arquivos nela, e a montaremos. - -2.2. Exigências do Sistema Anfitrião - - Seu sistema anfitrião deveria ter o software seguinte com as versões - mínimas indicadas. Isso não deveria ser um problema para a maioria das - distribuições Linux modernas. Também, perceba que muitas distribuições - colocarão cabeçalhos de aplicativos dentro de pacotes separados, - frequentemente na forma de “-devel†ou - “-devâ€. Certifique-se de instalá-los se sua distribuição - os fornecer. - - Versões anteriores dos pacotes de software listados talvez funcionem, - porém não foram testados. - * Bash-3.2 (/bin/sh deveria ser um link simbólico ou real para bash) - * Binutils-2.13.1 (Versões maiores que 2.38 não são recomendadas dado - que elas não foram testadas) - * Bison-2.7 (/usr/bin/yacc deveria ser um link para bison ou script - pequeno que executa bison) - * Coreutils-6.9 - * Diffutils-2.8.1 - * Findutils-4.2.31 - * Gawk-4.0.1 (/usr/bin/awk deveria ser um link para gawk) - * GCC-4.8 incluindo o compilador C++, g++ (Versões maiores que 11.2.0 - não são recomendadas dado que elas não foram testadas). As - bibliotecas C e C++ padrão (com cabeçalhos) também devem estar - presentes, de forma que o compilador C++ possa construir - aplicativos hospedados - * Grep-2.5.1a - * Gzip-1.3.12 - * Linux Kernel-3.2 - A razão para a exigência da versão de kernel é que nós - especificamos essa versão quando da construção de glibc em - [338]Capítulo 5 e [339]Capítulo 8, por recomendação dos - desenvolvedores. Ela também é exigida por udev. - Se o kernel do anfitrião for anterior a 3.2, então você precisará - substituir o kernel com uma versão mais atualizada. Existem duas - maneiras de você fazer isso. Primeira, veja se seu fornecedor Linux - fornece um pacote de kernel 3.2 ou mais atual. Se sim, então você - talvez deseje instalá-lo. Se seu fornecedor não oferecer um pacote - de kernel aceitável, ou você preferisse não instalá-lo, então você - mesmo pode compilar um kernel. Instruções para a compilação de - kernel e configuração de carregador de inicialização (presumindo - que o anfitrião usa GRUB) estão localizadas em [340]Capítulo 10. - * M4-1.4.10 - * Make-4.0 - * Patch-2.5.4 - * Perl-5.8.8 - * Python-3.4 - * Sed-4.1.5 - * Tar-1.22 - * Texinfo-4.7 - * Xz-5.0.0 - -Importante - - Perceba que os links simbólicos mencionados acima são exigidos para - construir um sistema LFS usando as instruções contidas neste livro. - Links simbólicos que apontem para outro software (tais como dash, mawk, - etc.) talvez funcionem, porém não são testados ou suportados pela - equipe de desenvolvimento de LFS, e talvez exijam ou desvio das - instruções ou correções adicionais para alguns pacotes. - - Para ver se seu sistema anfitrião tem todas as versões apropriadas, e a - habilidade de compilar aplicativos, execute o seguinte: -cat > version-check.sh << "EOF" -#!/bin/bash -# Script simples para listar números de versão de ferramentas críticas de desenv -olvimento -export LC_ALL=C -bash --version | head -n1 | cut -d" " -f2-4 -MYSH=$(readlink -f /bin/sh) -echo "/bin/sh -> $MYSH" -echo $MYSH | grep -q bash || echo "ERRO: /bin/sh não aponta para bash" -unset MYSH - -echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3- -bison --version | head -n1 - -if [ -h /usr/bin/yacc ]; then - echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`"; -elif [ -x /usr/bin/yacc ]; then - echo yacc is `/usr/bin/yacc --version | head -n1` -else - echo "yacc não encontrado" -fi - -echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2 -diff --version | head -n1 -find --version | head -n1 -gawk --version | head -n1 - -if [ -h /usr/bin/awk ]; then - echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`"; -elif [ -x /usr/bin/awk ]; then - echo awk é `/usr/bin/awk --version | head -n1` -else - echo "awk não encontrado" -fi - -gcc --version | head -n1 -g++ --version | head -n1 -grep --version | head -n1 -gzip --version | head -n1 -cat /proc/version -m4 --version | head -n1 -make --version | head -n1 -patch --version | head -n1 -echo Perl `perl -V:version` -python3 --version -sed --version | head -n1 -tar --version | head -n1 -makeinfo --version | head -n1 # versão texinfo -xz --version | head -n1 - -echo 'int main(){}' > dummy.c && g++ -o dummy dummy.c -if [ -x dummy ] - then echo "g++ compilação OK"; - else echo "g++ compilação falhou"; fi -rm -f dummy.c dummy -EOF - -bash version-check.sh - -2.3. Construindo LFS em Estágios - - LFS está desenhado para ser construído em uma sessão. Isto é, as - instruções assumem que o sistema não será desligado durante o processo. - Isso não significa que o sistema tenha que estar pronto de uma só vez. - O problema é que certos procedimentos tem que ser realizados outra vez - após uma inicialização se retomando LFS em pontos diferentes. - -2.3.1. Capítulos 1–4 - - Esses capítulos são realizados no sistema anfitrião. Quando da - reinicialização, seja cuidadosa(o) com o seguinte: - * Procedimentos feitos como a(o) usuária(o) root após a Seção 2.4 - precisam ter a variável de ambiente LFS configurada PARA A(O) - USUÃRIA(O) ROOT. - -2.3.2. Capítulos 5–6 - - * A partição /mnt/lfs deve estar montada. - * Esses dois capítulos devem ser feitos como a(o) usuária(o) lfs. Um - su - lfs precisa ser feito antes de qualquer tarefa nesses - capítulos. Ao falhar em fazer isso, você está no risco de instalar - pacotes no sistema anfitrião, e potencialmente torná-lo - inutilizável. - * Os procedimentos em [341]Instruções Gerais de Compilação são - críticos. Se existir qualquer dúvida acerca da instalação de um - pacote, então certifique-se de que qualquer arquivo tar - descomprimido previamente foi removido, então extraia novamente os - arquivos do pacote, e complete todas as instruções nessa seção. - -2.3.3. Capítulos 7–10 - - * A partição /mnt/lfs deve estar montada. - * Umas poucas operações, de “Mudando Dono†até “Entrando no Ambiente - Chroot†devem ser feitas como a(o) usuária(o) root, com a variável - de ambiente LFS configurada para a(o) usuária(o) root. - * Quando entrar em chroot, a variável de ambiente LFS deve estar - configurada para root. A variável LFS não mais é usada - posteriormente. - * Os sistemas virtuais de arquivo devem estar montados. Isso pode ser - feito antes ou depois de entrar em chroot mudando para um terminal - virtual do anfitrião e, como root, executando os comandos em - [342]Seção 7.3.2, “Montando e Povoando /dev†e [343]Seção 7.3.3, - “Montando Sistemas de Arquivos Virtuais de Kernelâ€. - -2.4. Criando uma Nova Partição - - Como a maior parte dos outros sistemas operacionais, LFS geralmente é - instalado em uma partição dedicada. A abordagem recomendada para - construir um sistema LFS é a de usar uma partição disponível vazia ou, - se você tiver espaço suficiente não particionado, criar uma. - - Um sistema mínimo exige uma partição com cerca de dez (10) gigabytes - (GB). Isso é suficiente para armazenar todos os arquivos tar dos - códigos fontes e compilar os pacotes. Entretanto, se o sistema LFS for - concebido para ser o sistema Linux principal, então aplicativos - adicionais provavelmente serão instalados os quais exigirão espaço - adicional. Uma partição de trinta (30) GB é um tamanho razoável para - permitir o crescimento. O sistema LFS em si não ocupará esse espaço - todo. Uma boa parte dessa exigência é para fornecer espaço livre - suficiente de armazenamento temporário. Adicionalmente, a compilação de - pacotes pode exigir muito espaço de disco que será recuperado após o - pacote ser instalado. - - Como nem sempre existe Memória de Acesso Aleatório (RAM) suficiente - disponível para processos de compilação, é uma boa ideia usar uma - pequena partição de disco como espaço de swap. Ele é usado pelo kernel - para armazenar dados raramente usados e deixa mais memória disponível - para processos ativos. A partição de swap para um sistema LFS pode ser - a mesma que aquela usada pelo sistema anfitrião, caso no qual não é - necessário criar outra. - - Inicie um aplicativo de particionamento de disco como cfdisk ou fdisk - com uma opção de linha de comando indicando o disco rígido no qual a - nova partição será criada—por exemplo /dev/sda para o controlador - primário de disco. Crie uma partição nativa Linux e uma partição swap, - se necessária. Por favor, recorra a cfdisk(8) ou fdisk(8) se você ainda - não sabe como usar os aplicativos. - -Nota - - Para usuários experientes, outros esquemas de partição são possíveis. O - novo sistema LFS pode estar em um vetor de software [344]RAID ou um - volume lógico [345]LVM. Entretanto, algumas dessas opções exigem um - [346]initramfs, o que é um tópico avançado. Essas metodologias de - particionamento não são recomendadas para usuárias(os) de LFS pela - primeira vez. - - Lembre-se da designação da nova partição (por exemplo, sda5). Este - livro se referirá a essa como a partição LFS. Lembre-se também da - designação da partição swap. Esses nomes serão necessários - posteriormente para o arquivo /etc/fstab. - -2.4.1. Outros Problemas de Partição - - Pedidos de ajuda com relação a particionamento de disco frequentemente - são enviados à lista de discussão do LFS. Esse é um assunto altamente - subjetivo. O padrão para a maioria das distribuições é o de usar todo o - disco com a exceção de uma pequena partição swap. Isso não é ideal para - LFS por várias razões. Isso reduz flexibilidade; torna o - compartilhamento de dados entre múltiplas distribuições ou construções - LFS mais difícil; torna as cópias de segurança mais demoradas; e podem - desperdiçar espaço de disco devido à alocação ineficiente de estruturas - de sistema de arquivo. - -2.4.1.1. A Partição Raiz - - Uma partição raiz de LFS (não confundir com o diretório /root) de vinte - (20) gigabytes é uma boa escolha para a maior parte dos sistemas. Ela - fornece espaço suficiente para construir LFS e a maior parte de BLFS, - mas é pequena o suficiente de forma que múltiplas partições podem ser - criadas facilmente para experimentação. - -2.4.1.2. A Partição Swap - - A maioria das distribuições automaticamente cria uma partição swap. - Geralmente o tamanho recomendado da partição swap é o de cerca de o - dobro da quantidade de RAM física, entretanto isso raramente é - necessário. Se espaço de disco for limitado, então mantenha a partição - swap com dois (2) gigabytes e monitore a quantidade de troca de disco. - - Se você quer usar a característica de hibernação do Linux - (suspend-to-disk), copia o conteúdo da RAM para a partição swap antes - de desligar a máquina. Nesse caso o tamanho da partição swap deveria - ser pelo menos tão grande quanto a RAM instalada do sistema. - - O uso de swap nunca é bom. Para discos rígidos mecânicos você - geralmente pode dizer se um sistema está usando swap simplesmente - monitorando a atividade de disco e observando como o sistema reage a - comandos. Para um drive SSD você não estará apta(o) a monitorar swap, - porém você pode dizer quanto espaço de swap está sendo usado via - aplicativos top ou free. O uso de um drive SSD para uma partição swap - deveria ser evitado se possível. A primeira reação em caso de uso de - swap deveria ser verificar se existe um comando irracional como tentar - editar um arquivo de cinco gigabytes. Se o uso de swap se tornar uma - ocorrência recorrente, então a melhor solução é a de comprar mais RAM - para seu sistema. - -2.4.1.3. A Partição de Bios Grub - - Se o disco de inicialização tiver sido particionado com a Tabela de - Partição GUID (GPT), então uma partição pequena, tipicamente um (1) MB, - deve ser criada se ela já não existir. Essa partição não é formatada, - porém deve estar disponível para GRUB usar durante a instalação do - carregador de inicialização. Essa partição normalmente será rotulada - 'BIOS Boot' se usar fdisk ou terá um código de EF02 se usar gdisk. - -Nota - - A Partição de Bios Grub deve estar no drive que o BIOS usa para - inicializar o sistema. Esse não é necessariamente o mesmo drive onde a - partição raiz de LFS está localizada. Discos em um sistema talvez usem - tipos diferentes de tabela de partição. A exigência para essa partição - depende apenas do tipo de tabela de partição do disco de inicialização. - -2.4.1.4. Partições de Conveniência - - Existem várias outras partições que não são exigidas, porém deveriam - ser consideradas ao se projetar um layout de disco. A lista seguinte - não é abrangente, mas é entendida como um guia. - * /boot – Altamente recomendada. Use essa partição para armazenar - kernels e outras informações de inicialização. Para minimizar - potenciais problemas de inicialização com discos maiores, torne - essa a primeira partição física no seu primeiro controlador de - disco. Um tamanho de partição de duzentos (200) megabytes é - bastante adequado. - * /home – Altamente recomendada. Compartilhe seu diretório home e - personalizações de usuário entre múltiplas distribuições ou - construções LFS. O tamanho geralmente é bastante grande e depende - do espaço de disco disponível. - * /usr – Em LFS, /bin, /lib, e /sbin são links simbólicos para seus - homólogos em /usr. Assim /usr contém todos os binários necessários - para o sistema executar. Para LFS, uma partição separada para /usr - normalmente não é necessária. Se você precisar dela de qualquer - maneira, então você deveria tornar uma partição grande o suficiente - para acomodar todos os aplicativos e bibliotecas no sistema. A - partição raiz pode ser bem pequena (talvez apenas um gigabyte) - nessa configuração, de forma que ela seja adequada para um "thin - client" ou estação de trabalho sem disco (onde /usr é montado a - partir de um servidor remoto). Entretanto, você deveria tomar - cuidado que um initramfs (não coberto por LFS) será necessário para - inicializar um sistema com partição /usr separada. - * /opt – Esse diretório é mais útil para BLFS onde múltiplas - instalações de pacotes grandes como Gnome ou KDE podem ser - instalados sem embutir os arquivos na hierarquia /usr. Se usado, 5 - a 10 gigabytes geralmente é adequado. - * /tmp – Um diretório /tmp separado é raro, mas útil ao se configurar - um "thin client". Essa partição, se usada, geralmente não precisará - exceder alguns gigabytes. - * /usr/src – Essa partição é muito útil para disponibilizar uma - localização para armazenar os arquivos fontes de BLFS e - compartilhá-los entre construções LFS. Ela também pode ser usada - como uma localização para construir pacotes BLFS. Uma partição - razoavelmente grande de 30 a 50 gigabytes permite muito espaço. - - Qualquer partição separada que você queira que seja montada - automaticamente durante a inicialização precisa ser especificada no - /etc/fstab. Detalhes sobre como especificar partições serão discutidos - em [347]Seção 10.2, “Criando o Arquivo /etc/fstabâ€. - -2.5. Criando um Sistema de Arquivos na Partição - - Agora que uma partição em branco foi configurada, o sistema de arquivos - pode ser criado. LFS pode usar qualquer sistema de arquivos reconhecido - pelo kernel Linux, mas os tipos mais comuns são ext3 e ext4. A escolha - do sistema de arquivos pode ser complexa e depende das características - dos arquivos e o tamanho da partição. Por exemplo: - - ext2 - é adequado para partições pequenas que são atualizadas com pouca - frequência tais como /boot. - - ext3 - é uma atualização do ext2 que inclui journal para ajudar a - recuperar o status da partição no caso de desligamento - inadequado. É comumente usada como sistema de arquivos de - propósito geral. - - ext4 - é a versão mais nova da família de sistema de arquivos ext de - tipos de partição. Ela fornece várias capacidades novas - incluindo marcas temporais em nano segundos, criação e uso de - arquivos muito grandes (16 TB), e melhoramentos de velocidade. - - Outros sistemas de arquivos, incluindo FAT32, NTFS, ReiserFS, JFS, e - XFS são úteis para propósitos especializados. Mais informação sobre - esses sistemas de arquivos pode ser encontrada em - [348]http://en.wikipedia.org/wiki/Comparison_of_file_systems. - - LFS assume que o sistema de arquivos raiz (/) é do tipo ext4. Para - criar um sistema de arquivos ext4 na partição LFS, execute o seguinte: -mkfs -v -t ext4 /dev/ - - Substitua com o nome da partição LFS. - - Se você está usando uma partição swap existente, então não há - necessidade de formatá-la. Se uma nova partição swap foi criada, então - ela precisará ser inicializada com este comando: -mkswap /dev/ - - Substitua com o nome da partição swap. - -2.6. Configurando a Variável $LFS - - Ao longo deste livro, a variável de ambiente LFS será usada muitas - vezes. Você deveria se assegurar de que essa variável sempre está - definida no decorrer do processo de construção de LFS. Ela deveria ser - configurada para o nome do diretório onde você estará construindo seu - sistema LFS - nós usaremos /mnt/lfs como um exemplo, porém a escolha do - diretório cabe totalmente a você. Se você está construindo LFS em uma - partição separada, então esse diretório será o ponto de montagem para a - partição. Escolha uma localização de diretório e configure a variável - com o seguinte comando: -export LFS=/mnt/lfs - - Ter essa variável configurada é benéfico naqueles comandos tais como - mkdir -v $LFS/tools os quais podem ser digitados literalmente. O - interpretador de comandos automaticamente substituirá “$LFS†com - “/mnt/lfs†(ou para o que a variável foi configurada) quando ele - processar a linha de comando. - -Cuidado - - Não se esqueça de verificar se LFS está configurada quando você deixar - e entrar novamente no ambiente atual de trabalho (como quando fizer um - su para root ou outra(o) usuária(o)). Verifique se a variável LFS está - configurada apropriadamente com: -echo $LFS - - Tenha certeza de que a saída mostra o caminho para sua localização de - construção do sistema LFS, a qual é /mnt/lfs se o exemplo fornecido foi - seguido. Se a saída estiver incorreta, então use o comando dado - anteriormente nesta página para configurar $LFS para o nome correto de - diretório. - -Nota - - Uma maneira de assegurar que a variável LFS sempre está configurada é - editar o arquivo .bash_profile tanto em seu diretório home pessoal - quanto em /root/.bash_profile e inserir o comando export acima. - Adicionalmente, o interpretador de comandos especificado no arquivo - /etc/passwd para todas(os) as(os) usuárias(os) que precisam da variável - LFS precisa ser bash para assegurar que o arquivo /root/.bash_profile é - incorporado como parte do processo de login. - - Outra consideração é o método que é usado para logar no sistema - anfitrião. Se logando por intermédio de um gerenciador gráfico de tela, - então o .bash_profile da(o) usuária(o) normalmente não é usado quando - um terminal virtual é iniciado. Nesse caso, adicione o comando export - ao arquivo .bashrc para a(o) usuária(o) e root. Adicionalmente, algumas - distribuições tem instruções para não executar as instruções de .bashrc - em uma invocação não interativa de bash. Certifique-se de adicionar o - comando export antes do teste para uso não interativo. - -2.7. Montando a Nova Partição - - Agora que um sistema de arquivos foi criado, a partição precisa se - tornar acessível. Para fazer isso, a partição precisa ser montada em um - ponto de montagem escolhido. Para os propósitos deste livro, assume-se - que o sistema de arquivos está montado sob o diretório especificado - pela variável de ambiente LFS conforme descrito na seção anterior. - - Crie o ponto de montagem e monte o sistema de arquivos de LFS - executando: -mkdir -pv $LFS -mount -v -t ext4 /dev/ $LFS - - Substitua com a designação da partição LFS. - - Se estiver usando múltiplas partições para LFS (por exemplo, uma para / - e outra para /home), então monte-as usando: -mkdir -pv $LFS -mount -v -t ext4 /dev/ $LFS -mkdir -v $LFS/home -mount -v -t ext4 /dev/ $LFS/home - - Substitua e com os nomes apropriados das partições. - - Assegure-se de que essa nova partição não está montada com permissões - que são muito restritivas (tais como as opções nosuid ou nodev). - Execute o comando mount sem quaisquer parâmetros para ver quais opções - estão configuradas para a partição LFS montada. Se nosuid e (ou) nodev - estiverem configuradas, então a partição precisará ser remontada. - -Atenção - - As instruções acima assumem que você não estará reiniciando seu - computador no decorrer do processo LFS. Se você desligar seu sistema, - então você precisará remontar a partição LFS a cada vez que você - reiniciar o processo de construção ou modificar seu arquivo /etc/fstab - do sistema anfitrião para remontá-la automaticamente após - inicialização. Por exemplo: -/dev/ /mnt/lfs ext4 defaults 1 1 - - Se você usa partições adicionais opcionais, então certifique-se de - adicioná-las também. - - Se você estiver usando uma partição swap, então assegure-se de que ela - está habilitada usando o comando swapon: -/sbin/swapon -v /dev/ - - Substitua com o nome da partição swap. - - Agora que existe um lugar estabelecido para trabalhar, é tempo de - baixar os pacotes. - -Capítulo 3. Pacotes e Patches - -3.1. Introdução - - Este capítulo inclui uma lista de pacotes que precisam ser baixados - para construir um sistema Linux básico. Os números de versão listados - correspondem a versões dos aplicativos que são conhecidos por - funcionar, e este livro é baseado no uso deles. Nós recomendamos - veementemente contra o uso de versões diferentes, pois os comandos de - construção para uma versão talvez não funcionem com uma versão - diferente, a menos que a versão diferente seja especificada por uma - errata de LFS ou conselho de segurança. As versões mais novas de pacote - talvez também tenham problemas que exigem contornos. Essas correções - serão desenvolvidas e estabilizadas na versão de desenvolvimento do - livro. - - Para alguns pacotes, o tarball de lançamento e o tarball instantâneo de - repositório (Git ou SVN) para este lançamento talvez seja publicado com - nome semelhante de arquivo. Um tarball de lançamento contém arquivos - generalizados (por exemplo, o script configure gerado por autoconf), em - adição aos conteúdos do correspondente instantâneo de repositório. O - livro usa tarballs de lançamento quando possível. Usar um instantâneo - de repositório em vez de um tarball de lançamento especificado pelo - livro causará problemas. - - Localizações de downloads nem sempre podem estar acessíveis. Se uma - localização de download mudou desde que este livro foi publicado, então - o Google ([349]http://www.google.com/) fornece um motor de busca útil - para a maioria dos pacotes. Se essa busca for mal sucedida, então tente - um dos meios alternativos de download em - [350]https://www.linuxfromscratch.org/lfs/mirrors.html#files. - - Pacotes e patches baixados precisarão ser armazenados em algum lugar - que esteja convenientemente disponível durante a construção inteira. Um - diretório de trabalho também é exigido para desempacotar os fontes e - construí-los. $LFS/sources pode ser usado tanto como o lugar para - armazenar os tarballs e patches quanto como diretório de trabalho. - Usando esse diretório, os elementos exigidos estarão localizados na - partição LFS e estarão disponíveis durante todos os estágios do - processo de construção. - - Para criar esse diretório, execute o seguinte comando, como usuária(o) - root, antes de começar a sessão de download: -mkdir -v $LFS/sources - - Torne esse diretório gravável e "sticky". “Sticky†significa que mesmo - se múltiplas(os) usuárias(os) tenham permissão de escrita, só a(o) - dona(o) de um arquivo pode deletar o arquivo dentro de um diretório - sticky. O seguinte comando habilitará os modos escrita e sticky: -chmod -v a+wt $LFS/sources - - Existem muitas maneiras para obter todos os pacotes e patches - necessários para construir LFS: - * Os arquivos podem ser baixados individualmente conforme descrito - nas próximas duas seções. - * Para versões estáveis do livro, um tarball de todos os arquivos - necessários pode ser baixado a partir de um dos espelhos de - arquivos de LFS listados em - [351]https://www.linuxfromscratch.org/mirrors.html#files. - * Os arquivos podem ser baixados usando wget e uma lista wget - conforme descrito abaixo. - - Para baixar todos os pacotes e patches usando [352]lista-wget como uma - entrada para o comando wget, use: -wget --input-file=lista-wget --continue --directory-prefix=$LFS/sources - -Nota - - O arquivo lista-wget mencionado acima recupera todos os pacotes para as - versões sysV e systemd de LFS. Existe um total de cinco pacotes - pequenos adicionais não necessários para o livro atual. O arquivo - md5sums mencionado abaixo é específico para o livro atual. - - Adicionalmente, começando com LFS-7.0, existe um arquivo separado, - [353]md5sums, que pode ser usado para verificar se todos os pacotes - corretos estão disponíveis antes de prosseguir. Coloque esse arquivo em - $LFS/sources e execute: -pushd $LFS/sources - md5sum -c md5sums -popd - - Essa verificação pode ser usada após recuperar os arquivos necessários - com qualquer dos métodos listados acima. - -3.2. Todos os Pacotes - - Baixe ou de outra forma obtenha os seguintes pacotes: - - Acl (2.3.1) - 348 KB: - Home page: [354]https://savannah.nongnu.org/projects/acl - - Download: - [355]https://download.savannah.gnu.org/releases/acl/acl-2.3.1.ta - r.xz - - MD5 sum: 95ce715fe09acca7c12d3306d0f076b2 - - Attr (2.5.1) - 456 KB: - Home page: [356]https://savannah.nongnu.org/projects/attr - - Download: - [357]https://download.savannah.gnu.org/releases/attr/attr-2.5.1. - tar.gz - - MD5 sum: ac1c5a7a084f0f83b8cace34211f64d8 - - Autoconf (2.71) - 1,263 KB: - Home page: [358]https://www.gnu.org/software/autoconf/ - - Download: - [359]https://ftp.gnu.org/gnu/autoconf/autoconf-2.71.tar.xz - - MD5 sum: 12cfa1687ffa2606337efe1a64416106 - - Automake (1.16.5) - 1,565 KB: - Home page: [360]https://www.gnu.org/software/automake/ - - Download: - [361]https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.xz - - MD5 sum: 4017e96f89fca45ca946f1c5db6be714 - - SHA256 sum: - 80facc09885a57e6d49d06972c0ae1089c5fa8f4d4c7cfe5baea58e5085f136d - - Bash (5.1.16) - 10,277 KB: - Home page: [362]https://www.gnu.org/software/bash/ - - Download: [363]https://ftp.gnu.org/gnu/bash/bash-5.1.16.tar.gz - - MD5 sum: c17b20a09fc38d67fb303aeb6c130b4e - - Bc (5.2.2) - 428 KB: - Home page: [364]https://git.yzena.com/gavin/bc - - Download: - [365]https://github.com/gavinhoward/bc/releases/download/5.2.2/b - c-5.2.2.tar.xz - - MD5 sum: 632344cdb052af0e06087bd3b0034126 - - Binutils (2.38) - 23,098 KB: - Home page: [366]https://www.gnu.org/software/binutils/ - - Download: - [367]https://ftp.gnu.org/gnu/binutils/binutils-2.38.tar.xz - - MD5 sum: 6e39cad1bb414add02b5b1169c18fdc5 - - Bison (3.8.2) - 2,752 KB: - Home page: [368]https://www.gnu.org/software/bison/ - - Download: [369]https://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.xz - - MD5 sum: c28f119f405a2304ff0a7ccdcc629713 - - Bzip2 (1.0.8) - 792 KB: - Download: - [370]https://www.sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz - - MD5 sum: 67e051268d0c475ea773822f7500d0e5 - - Check (0.15.2) - 760 KB: - Home page: [371]https://libcheck.github.io/check - - Download: - [372]https://github.com/libcheck/check/releases/download/0.15.2/ - check-0.15.2.tar.gz - - MD5 sum: 50fcafcecde5a380415b12e9c574e0b2 - - Coreutils (9.0) - 5,482 KB: - Home page: [373]https://www.gnu.org/software/coreutils/ - - Download: - [374]https://ftp.gnu.org/gnu/coreutils/coreutils-9.0.tar.xz - - MD5 sum: 0d79ae8a6124546e3b94171375e5e5d0 - - DejaGNU (1.6.3) - 608 KB: - Home page: [375]https://www.gnu.org/software/dejagnu/ - - Download: - [376]https://ftp.gnu.org/gnu/dejagnu/dejagnu-1.6.3.tar.gz - - MD5 sum: 68c5208c58236eba447d7d6d1326b821 - - Diffutils (3.8) - 1,548 KB: - Home page: [377]https://www.gnu.org/software/diffutils/ - - Download: - [378]https://ftp.gnu.org/gnu/diffutils/diffutils-3.8.tar.xz - - MD5 sum: 6a6b0fdc72acfe3f2829aab477876fbc - - E2fsprogs (1.46.5) - 9,307 KB: - Home page: [379]http://e2fsprogs.sourceforge.net/ - - Download: - [380]https://downloads.sourceforge.net/project/e2fsprogs/e2fspro - gs/v1.46.5/e2fsprogs-1.46.5.tar.gz - - MD5 sum: 3da91854c960ad8a819b48b2a404eb43 - - Elfutils (0.186) - 9,015 KB: - Home page: [381]https://sourceware.org/elfutils/ - - Download: - [382]https://sourceware.org/ftp/elfutils/0.186/elfutils-0.186.ta - r.bz2 - - MD5 sum: 2c095e31e35d6be7b3718477b6d52702 - - Eudev (3.2.11) - 2,075 KB: - Download: - [383]https://github.com/eudev-project/eudev/releases/download/v3 - .2.11/eudev-3.2.11.tar.gz - - MD5 sum: 417ba948335736d4d81874fba47a30f7 - - Expat (2.4.6) - 444 KB: - Home page: [384]https://libexpat.github.io/ - - Download: - [385]https://prdownloads.sourceforge.net/expat/expat-2.4.6.tar.x - z - - MD5 sum: 22a30c888752fdda9f8dd1b7281c54b0 - -Nota - - A(O) Desenvolvedora(or) talvez remova tarballs dos lançamentos - específicos de Expat quando esses lançamentos contenham uma - vulnerabilidade de segurança. Você deveria se referir a - [386]Avisos de Segurança de LFS para saber qual versão (com a - vulnerabilidade corrigida) deveria ser usada. Você talvez baixe - a versão vulnerável a partir de um espelho, porém isso não é - recomendado. - - Expect (5.45.4) - 618 KB: - Home page: [387]https://core.tcl.tk/expect/ - - Download: - [388]https://prdownloads.sourceforge.net/expect/expect5.45.4.tar - .gz - - MD5 sum: 00fce8de158422f5ccd2666512329bd2 - - File (5.41) - 1040 KB: - Home page: [389]https://www.darwinsys.com/file/ - - Download: [390]https://astron.com/pub/file/file-5.41.tar.gz - - MD5 sum: 18233bb0a0089dfdc7dfbc93b96f231b - - Findutils (4.9.0) - 1,999 KB: - Home page: [391]https://www.gnu.org/software/findutils/ - - Download: - [392]https://ftp.gnu.org/gnu/findutils/findutils-4.9.0.tar.xz - - MD5 sum: 4a4a547e888a944b2f3af31d789a1137 - - Flex (2.6.4) - 1,386 KB: - Home page: [393]https://github.com/westes/flex - - Download: - [394]https://github.com/westes/flex/releases/download/v2.6.4/fle - x-2.6.4.tar.gz - - MD5 sum: 2882e3179748cc9f9c23ec593d6adc8d - - Gawk (5.1.1) - 3,075 KB: - Home page: [395]https://www.gnu.org/software/gawk/ - - Download: [396]https://ftp.gnu.org/gnu/gawk/gawk-5.1.1.tar.xz - - MD5 sum: 83650aa943ff2fd519b2abedf8506ace - - GCC (11.2.0) - 78,996 KB: - Home page: [397]https://gcc.gnu.org/ - - Download: - [398]https://ftp.gnu.org/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.xz - - MD5 sum: 31c86f2ced76acac66992eeedce2fce2 - - SHA256 sum: - d08edc536b54c372a1010ff6619dd274c0f1603aa49212ba20f7aa2cda36fa8b - - GDBM (1.23) - 1,092 KB: - Home page: [399]https://www.gnu.org/software/gdbm/ - - Download: [400]https://ftp.gnu.org/gnu/gdbm/gdbm-1.23.tar.gz - - MD5 sum: 8551961e36bf8c70b7500d255d3658ec - - Gettext (0.21) - 9,487 KB: - Home page: [401]https://www.gnu.org/software/gettext/ - - Download: - [402]https://ftp.gnu.org/gnu/gettext/gettext-0.21.tar.xz - - MD5 sum: 40996bbaf7d1356d3c22e33a8b255b31 - - Glibc (2.35) - 17,741 KB: - Home page: [403]https://www.gnu.org/software/libc/ - - Download: [404]https://ftp.gnu.org/gnu/glibc/glibc-2.35.tar.xz - - MD5 sum: dd571c67d85d89d7f60b854a4e207423 - - GMP (6.2.1) - 1,980 KB: - Home page: [405]https://www.gnu.org/software/gmp/ - - Download: [406]https://ftp.gnu.org/gnu/gmp/gmp-6.2.1.tar.xz - - MD5 sum: 0b82665c4a92fd2ade7440c13fcaa42b - - Gperf (3.1) - 1,188 KB: - Home page: [407]https://www.gnu.org/software/gperf/ - - Download: [408]https://ftp.gnu.org/gnu/gperf/gperf-3.1.tar.gz - - MD5 sum: 9e251c0a618ad0824b51117d5d9db87e - - Grep (3.7) - 1,603 KB: - Home page: [409]https://www.gnu.org/software/grep/ - - Download: [410]https://ftp.gnu.org/gnu/grep/grep-3.7.tar.xz - - MD5 sum: 7c9cca97fa18670a21e72638c3e1dabf - - Groff (1.22.4) - 4,044 KB: - Home page: [411]https://www.gnu.org/software/groff/ - - Download: [412]https://ftp.gnu.org/gnu/groff/groff-1.22.4.tar.gz - - MD5 sum: 08fb04335e2f5e73f23ea4c3adbf0c5f - - GRUB (2.06) - 6,428 KB: - Home page: [413]https://www.gnu.org/software/grub/ - - Download: [414]https://ftp.gnu.org/gnu/grub/grub-2.06.tar.xz - - MD5 sum: cf0fd928b1e5479c8108ee52cb114363 - - Gzip (1.11) - 786 KB: - Home page: [415]https://www.gnu.org/software/gzip/ - - Download: [416]https://ftp.gnu.org/gnu/gzip/gzip-1.11.tar.xz - - MD5 sum: d1e93996dba00cab0caa7903cd01d454 - - Iana-Etc (20220207) - 580 KB: - Home page: [417]https://www.iana.org/protocols - - Download: - [418]https://github.com/Mic92/iana-etc/releases/download/2022020 - 7/iana-etc-20220207.tar.gz - - MD5 sum: 81d865ce7fe4240d5abed48c3ca5fa9f - - Inetutils (2.2) - 1,494 KB: - Home page: [419]https://www.gnu.org/software/inetutils/ - - Download: - [420]https://ftp.gnu.org/gnu/inetutils/inetutils-2.2.tar.xz - - MD5 sum: de8c1b49cbde2b30e481c61c65357ad4 - - SHA256 sum: - 01b9a4bc73a47e63f6e8a07b76122d9ad2a2e46ebf14870e9c91d660b5647a22 - - Intltool (0.51.0) - 159 KB: - Home page: [421]https://freedesktop.org/wiki/Software/intltool - - Download: - [422]https://launchpad.net/intltool/trunk/0.51.0/+download/intlt - ool-0.51.0.tar.gz - - MD5 sum: 12e517cac2b57a0121cda351570f1e63 - - IPRoute2 (5.16.0) - 843 KB: - Home page: - [423]https://www.kernel.org/pub/linux/utils/net/iproute2/ - - Download: - [424]https://www.kernel.org/pub/linux/utils/net/iproute2/iproute - 2-5.16.0.tar.xz - - MD5 sum: 994c1bad2a24aa9d70e89670c5b5dfcb - - Kbd (2.4.0) - 1,095 KB: - Home page: [425]https://kbd-project.org/ - - Download: - [426]https://www.kernel.org/pub/linux/utils/kbd/kbd-2.4.0.tar.xz - - MD5 sum: 3cac5be0096fcf7b32dcbd3c53831380 - - Kmod (29) - 548 KB: - Download: - [427]https://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-29. - tar.xz - - MD5 sum: e81e63acd80697d001c8d85c1acb38a0 - - Less (590) - 348 KB: - Home page: [428]https://www.greenwoodsoftware.com/less/ - - Download: - [429]https://www.greenwoodsoftware.com/less/less-590.tar.gz - - MD5 sum: f029087448357812fba450091a1172ab - - LFS-Bootscripts (20210608) - 32 KB: - Download: - [430]https://www.linuxfromscratch.org/lfs/downloads/11.1/lfs-boo - tscripts-20210608.tar.xz - - MD5 sum: 0f51a074cc4faaff93b3c80e9ab27b0c - - Libcap (2.63) - 171 KB: - Home page: [431]https://sites.google.com/site/fullycapable/ - - Download: - [432]https://www.kernel.org/pub/linux/libs/security/linux-privs/ - libcap2/libcap-2.63.tar.xz - - MD5 sum: 18410cec436f827e698ee9ea16ada9b7 - - Libffi (3.4.2) - 1,320 KB: - Home page: [433]https://sourceware.org/libffi/ - - Download: - [434]https://github.com/libffi/libffi/releases/download/v3.4.2/l - ibffi-3.4.2.tar.gz - - MD5 sum: 294b921e6cf9ab0fbaea4b639f8fdbe8 - - Libpipeline (1.5.5) - 934 KB: - Home page: [435]http://libpipeline.nongnu.org/ - - Download: - [436]https://download.savannah.gnu.org/releases/libpipeline/libp - ipeline-1.5.5.tar.gz - - MD5 sum: 3e725c76bfea1985e87e851ee50c2e29 - - Libtool (2.4.6) - 951 KB: - Home page: [437]https://www.gnu.org/software/libtool/ - - Download: - [438]https://ftp.gnu.org/gnu/libtool/libtool-2.4.6.tar.xz - - MD5 sum: 1bfb9b923f2c1339b4d2ce1807064aa5 - - Linux (5.16.9) - 124,577 KB: - Home page: [439]https://www.kernel.org/ - - Download: - [440]https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.16.9.t - ar.xz - - MD5 sum: 4d6a704bf3e249ef6189b6f17457084b - -Nota - - O kernel Linux é atualizado com relativa frequência, muitas - vezes devido às descobertas de vulnerabilidades de segurança. A - versão estável de kernel mais atual disponível pode ser usada, a - menos que a página de errata diga o contrário. - - Para usuárias(os) com largura de banda de velocidade limitada ou - cara que desejem atualizar o kernel Linux, uma versão básica do - pacote e patches pode ser baixada separadamente. Isso talvez - economize algum tempo ou custo para uma posterior atualização de - nível de patch contendo um lançamento menor. - - M4 (1.4.19) - 1,617 KB: - Home page: [441]https://www.gnu.org/software/m4/ - - Download: [442]https://ftp.gnu.org/gnu/m4/m4-1.4.19.tar.xz - - MD5 sum: 0d90823e1426f1da2fd872df0311298d - - Make (4.3) - 2,263 KB: - Home page: [443]https://www.gnu.org/software/make/ - - Download: [444]https://ftp.gnu.org/gnu/make/make-4.3.tar.gz - - MD5 sum: fc7a67ea86ace13195b0bce683fd4469 - - Man-DB (2.10.1) - 1,847 KB: - Home page: [445]https://www.nongnu.org/man-db/ - - Download: - [446]https://download.savannah.gnu.org/releases/man-db/man-db-2. - 10.1.tar.xz - - MD5 sum: b03b76a9a00d0d6b2299b823fba4f579 - - Man-pages (5.13) - 1,752 KB: - Home page: [447]https://www.kernel.org/doc/man-pages/ - - Download: - [448]https://www.kernel.org/pub/linux/docs/man-pages/man-pages-5 - .13.tar.xz - - MD5 sum: 3ac24e8c6fae26b801cb87ceb63c0a30 - - Meson (0.61.1) - 1,963 KB: - Home page: [449]https://mesonbuild.com - - Download: - [450]https://github.com/mesonbuild/meson/releases/download/0.61. - 1/meson-0.61.1.tar.gz - - MD5 sum: 8ed66d5537275df3defffb66d1fb897f - - MPC (1.2.1) - 820 KB: - Home page: [451]http://www.multiprecision.org/ - - Download: [452]https://ftp.gnu.org/gnu/mpc/mpc-1.2.1.tar.gz - - MD5 sum: 9f16c976c25bb0f76b50be749cd7a3a8 - - MPFR (4.1.0) - 1,490 KB: - Home page: [453]https://www.mpfr.org/ - - Download: [454]https://www.mpfr.org/mpfr-4.1.0/mpfr-4.1.0.tar.xz - - MD5 sum: bdd3d5efba9c17da8d83a35ec552baef - - Ncurses (6.3) - 3,500 KB: - Home page: [455]https://www.gnu.org/software/ncurses/ - - Download: - [456]https://invisible-mirror.net/archives/ncurses/ncurses-6.3.t - ar.gz - - MD5 sum: a2736befde5fee7d2b7eb45eb281cdbe - - Ninja (1.10.2) - 209 KB: - Home page: [457]https://ninja-build.org/ - - Download: - [458]https://github.com/ninja-build/ninja/archive/v1.10.2/ninja- - 1.10.2.tar.gz - - MD5 sum: 639f75bc2e3b19ab893eaf2c810d4eb4 - - OpenSSL (3.0.1) - 14,660 KB: - Home page: [459]https://www.openssl.org/ - - Download: - [460]https://www.openssl.org/source/openssl-3.0.1.tar.gz - - MD5 sum: 7d07e849d77d276891edd579a8832bb3 - - Patch (2.7.6) - 766 KB: - Home page: [461]https://savannah.gnu.org/projects/patch/ - - Download: [462]https://ftp.gnu.org/gnu/patch/patch-2.7.6.tar.xz - - MD5 sum: 78ad9937e4caadcba1526ef1853730d5 - - Perl (5.34.0) - 12,580 KB: - Home page: [463]https://www.perl.org/ - - Download: [464]https://www.cpan.org/src/5.0/perl-5.34.0.tar.xz - - MD5 sum: df7ecb0653440b26dc951ad9dbfab517 - - Pkg-config (0.29.2) - 1,970 KB: - Home page: - [465]https://www.freedesktop.org/wiki/Software/pkg-config - - Download: - [466]https://pkg-config.freedesktop.org/releases/pkg-config-0.29 - .2.tar.gz - - MD5 sum: f6e931e319531b736fadc017f470e68a - - Procps (3.3.17) - 985 KB: - Home page: [467]https://sourceforge.net/projects/procps-ng - - Download: - [468]https://sourceforge.net/projects/procps-ng/files/Production - /procps-ng-3.3.17.tar.xz - - MD5 sum: d60613e88c2f442ebd462b5a75313d56 - - Psmisc (23.4) - 362 KB: - Home page: [469]https://gitlab.com/psmisc/psmisc - - Download: - [470]https://sourceforge.net/projects/psmisc/files/psmisc/psmisc - -23.4.tar.xz - - MD5 sum: 8114cd4489b95308efe2509c3a406bbf - - Python (3.10.2) - 18,341 KB: - Home page: [471]https://www.python.org/ - - Download: - [472]https://www.python.org/ftp/python/3.10.2/Python-3.10.2.tar. - xz - - MD5 sum: 14e8c22458ed7779a1957b26cde01db9 - - Documentação de Python (3.10.2) - 7,102 KB: - Download: - [473]https://www.python.org/ftp/python/doc/3.10.2/python-3.10.2- - docs-html.tar.bz2 - - MD5 sum: ffa52f0017baf72df9d32dec785fd6ab - - Readline (8.1.2) - 2,923 KB: - Home page: - [474]https://tiswww.case.edu/php/chet/readline/rltop.html - - Download: - [475]https://ftp.gnu.org/gnu/readline/readline-8.1.2.tar.gz - - MD5 sum: 12819fa739a78a6172400f399ab34f81 - - Sed (4.8) - 1,317 KB: - Home page: [476]https://www.gnu.org/software/sed/ - - Download: [477]https://ftp.gnu.org/gnu/sed/sed-4.8.tar.xz - - MD5 sum: 6d906edfdb3202304059233f51f9a71d - - Shadow (4.11.1) - 1,618 KB: - Home page: [478]https://shadow-maint.github.io/shadow/ - - Download: - [479]https://github.com/shadow-maint/shadow/releases/download/v4 - .11.1/shadow-4.11.1.tar.xz - - MD5 sum: 5a95ec069aa91508167d02fecafaa912 - - Sysklogd (1.5.1) - 88 KB: - Home page: [480]https://www.infodrom.org/projects/sysklogd/ - - Download: - [481]https://www.infodrom.org/projects/sysklogd/download/sysklog - d-1.5.1.tar.gz - - MD5 sum: c70599ab0d037fde724f7210c2c8d7f8 - - Sysvinit (3.01) - 124 KB: - Home page: [482]https://savannah.nongnu.org/projects/sysvinit - - Download: - [483]https://download.savannah.gnu.org/releases/sysvinit/sysvini - t-3.01.tar.xz - - MD5 sum: dc14f92af715bcfa33cc25341730452e - - Tar (1.34) - 2,174 KB: - Home page: [484]https://www.gnu.org/software/tar/ - - Download: [485]https://ftp.gnu.org/gnu/tar/tar-1.34.tar.xz - - MD5 sum: 9a08d29a9ac4727130b5708347c0f5cf - - Tcl (8.6.12) - 10,112 KB: - Home page: [486]http://tcl.sourceforge.net/ - - Download: - [487]https://downloads.sourceforge.net/tcl/tcl8.6.12-src.tar.gz - - MD5 sum: 87ea890821d2221f2ab5157bc5eb885f - - Documentação de Tcl (8.6.12) - 1,176 KB: - Download: - [488]https://downloads.sourceforge.net/tcl/tcl8.6.12-html.tar.gz - - MD5 sum: a0d1a5b60bbb68f2f0bd3066a19c527a - - Texinfo (6.8) - 4,848 KB: - Home page: [489]https://www.gnu.org/software/texinfo/ - - Download: - [490]https://ftp.gnu.org/gnu/texinfo/texinfo-6.8.tar.xz - - MD5 sum: a91b404e30561a5df803e6eb3a53be71 - - Dados de Zona de Tempo (2021e) - 413 KB: - Home page: [491]https://www.iana.org/time-zones - - Download: - [492]https://www.iana.org/time-zones/repository/releases/tzdata2 - 021e.tar.gz - - MD5 sum: 4fdfad906ebc85fef30221c10964cce9 - - Udev-lfs Tarball (udev-lfs-20171102) - 11 KB: - Download: - [493]https://anduin.linuxfromscratch.org/LFS/udev-lfs-20171102.t - ar.xz - - MD5 sum: 27cd82f9a61422e186b9d6759ddf1634 - - Util-linux (2.37.4) - 5,971 KB: - Home page: - [494]https://git.kernel.org/pub/scm/utils/util-linux/util-linux. - git/ - - Download: - [495]https://www.kernel.org/pub/linux/utils/util-linux/v2.37/uti - l-linux-2.37.4.tar.xz - - MD5 sum: 755919e658c349cad9e1c7c771742d48 - - Vim (8.2.4383) - 15,622 KB: - Home page: [496]https://www.vim.org - - Download: - [497]https://anduin.linuxfromscratch.org/LFS/vim-8.2.4383.tar.gz - - MD5 sum: 3168ff48e382a1201bd0cbd0209bd3e0 - -Nota - - A versão de vim muda diariamente. Para conseguir a versão mais - atual, vá para [498]https://github.com/vim/vim/tags. - - XML::Parser (2.46) - 249 KB: - Home page: [499]https://github.com/chorny/XML-Parser - - Download: - [500]https://cpan.metacpan.org/authors/id/T/TO/TODDR/XML-Parser- - 2.46.tar.gz - - MD5 sum: 80bb18a8e6240fcf7ec2f7b57601c170 - - Xz Utils (5.2.5) - 1,122 KB: - Home page: [501]https://tukaani.org/xz - - Download: [502]https://tukaani.org/xz/xz-5.2.5.tar.xz - - MD5 sum: aa1621ec7013a19abab52a8aff04fe5b - - Zlib (1.2.11) - 457 KB: - Home page: [503]https://www.zlib.net/ - - Download: [504]https://zlib.net/zlib-1.2.11.tar.xz - - MD5 sum: 85adef240c5f370b308da8c938951a68 - - Zstd (1.5.2) - 1,892 KB: - Home page: [505]https://facebook.github.io/zstd/ - - Download: - [506]https://github.com/facebook/zstd/releases/download/v1.5.2/z - std-1.5.2.tar.gz - - MD5 sum: 072b10f71f5820c24761a65f31f43e73 - - Tamanho total desses pacotes: cerca de 446 MB - -3.3. Patches Necessários - - Em adição aos pacotes, vários patches também são exigidos. Esses - patches corrigem quaisquer erros nos pacotes que deveriam ser - consertados pela(o) Mantenedora(or). Os patches também fazem pequenas - modificações para tornar os pacotes mais fáceis de se trabalhar. Os - seguintes patches serão necessários para construir um sistema LFS: - - Binutils LTO Fix Patch - 3.5 KB: - Download: - [507]https://www.linuxfromscratch.org/patches/lfs/11.1/binutils- - 2.38-lto_fix-1.patch - - MD5 sum: 3df11b6123d5bbdb0fc83862a003827a - - Patch de Documentação de Bzip2 - 1.6 KB: - Download: - [508]https://www.linuxfromscratch.org/patches/lfs/11.1/bzip2-1.0 - .8-install_docs-1.patch - - MD5 sum: 6a5ac7e89b791aae556de0f745916f7f - - Patch de Correções de Internacionalização de Coreutils - 166 KB: - Download: - [509]https://www.linuxfromscratch.org/patches/lfs/11.1/coreutils - -9.0-i18n-1.patch - - MD5 sum: 1eeba2736dfea013509f9975365e4e32 - - Patch de Correção de Chmod de Coreutils - 3.8 KB: - Download: - [510]https://www.linuxfromscratch.org/patches/lfs/11.1/coreutils - -9.0-chmod_fix-1.patch - - MD5 sum: 4709df88e68279e6ef357aa819ba5b1a - - Glibc FHS Patch - 2.8 KB: - Download: - [511]https://www.linuxfromscratch.org/patches/lfs/11.1/glibc-2.3 - 5-fhs-1.patch - - MD5 sum: 9a5997c3452909b1769918c759eff8a2 - - Patch de Correção de Backspace/Delete de Kbd - 12 KB: - Download: - [512]https://www.linuxfromscratch.org/patches/lfs/11.1/kbd-2.4.0 - -backspace-1.patch - - MD5 sum: f75cca16a38da6caa7d52151f7136895 - - Patch de Correção de Desenvolvedora(or) de Perl - 1.6 KB: - Download: - [513]https://www.linuxfromscratch.org/patches/lfs/11.1/perl-5.34 - .0-upstream_fixes-1.patch - - MD5 sum: fb42558b59ed95ee00eb9f1c1c9b8056 - - Patch Consolidado de Sysvinit - 2.4 KB: - Download: - [514]https://www.linuxfromscratch.org/patches/lfs/11.1/sysvinit- - 3.01-consolidated-1.patch - - MD5 sum: 4900322141d493e74020c9cf437b2cdc - - Tamanho total desses patches: cerca de 193.7 KB - - Em adição aos patches exigidos acima, existe um número de patches - opcionais criados pela comunidade LFS. Esses patches opcionais - solucionam problemas menores ou habilitam funcionalidade que não está - habilitada por padrão. Sinta-se à vontade para examinar o banco de - dados de patches localizado em - [515]https://www.linuxfromscratch.org/patches/downloads/ e adquirir - quaisquer patches adicionais para atender às necessidades do seu - sistema. - -Capítulo 4. Preparações Finais - -4.1. Introdução - - Neste capítulo, nós realizaremos umas poucas tarefas adicionais para - preparar para construção o sistema temporário. Nós criaremos um - conjunto de diretórios em $LFS para a instalação das ferramentas - temporárias; adicionaremos uma(m) usuária(o) desprivilegiada(o) para - reduzir risco; e criaremos um ambiente apropriado de construção para - aquela(e) usuária(o). Nós também explicaremos a unidade de tempo que - usamos para medir quanto tempo pacotes de LFS levam para construir, ou - “SBUsâ€, e daremos alguma informação acerca de suítes de teste de - pacote. - -4.2. Criando um layout limitado de diretório em sistema de arquivos de LFS - - A primeira tarefa realizada na partição LFS é a de criar uma hierarquia - limitada de diretório de forma que aplicativos compilados em - [516]Capítulo 6 (bem como glibc e libstdc++ em [517]Capítulo 5) possam - ser instalados no local final deles. Isso é necessário de maneira que - aqueles aplicativos temporários sejam sobrescritos quando - reconstruí-los em [518]Capítulo 8. - - Crie o layout exigido de diretório executando o seguinte como root: -mkdir -pv $LFS/{etc,var} $LFS/usr/{bin,lib,sbin} - -for i in bin lib sbin; do - ln -sv usr/$i $LFS/$i -done - -case $(uname -m) in - x86_64) mkdir -pv $LFS/lib64 ;; -esac - - Aplicativos em [519]Capítulo 6 serão compilados com um compilador - cruzado (mais detalhes na seção [520]Notas Técnicas do Conjunto de - Ferramentas). Com a finalidade de separar esse compilador cruzado de - outros aplicativos, ele será instalado em um diretório especial. Crie - esse diretório com: -mkdir -pv $LFS/tools - -4.3. Adicionando a(o) Usuária(o) LFS - - Enquanto logada(o) como usuária(o) root, cometer um simples erro pode - danificar ou destruir um sistema. Portanto, os pacotes nos próximos - dois capítulos são construídos como uma(m) usuária(o) sem privilégios. - Você poderia usar seu próprio nome de usuária(o), mas para facilitar a - configuração de um ambiente de trabalho limpo, crie uma(m) nova(o) - usuária(o) chamada(o) lfs como um membro de um novo grupo (também - chamado lfs) e use essa(e) usuária(o) durante o processo de instalação. - Como root, emita os seguintes comandos para adicionar a(o) nova(o) - usuária(o): -groupadd lfs -useradd -s /bin/bash -g lfs -m -k /dev/null lfs - - O significado das opções de linha de comando: - - -s /bin/bash - Isso torna bash o interpretador de comandos padrão para a(o) - usuária(o) lfs. - - -g lfs - Essa opção adiciona usuária(o) lfs ao grupo lfs. - - -m - Isso cria um diretório home para lfs. - - -k /dev/null - Esse parâmetro previne possível cópia de arquivos a partir de um - diretório esqueleto (padrão é /etc/skel) mudando a localização - de entrada para o dispositivo especial null. - - lfs - Esse é o nome atual para a(o) usuária(o) criada(o). - - Para se logar como lfs (em oposição a mudar para a(o) usuária(o) lfs - quando logada(o) como root, que não exige que a(o) usuária(o) lfs tenha - uma senha), dê a lfs uma senha: -passwd lfs - - Conceda a lfs acesso total a todos os diretórios sob $LFS tornando lfs - a(o) dona(o) do diretório: -chown -v lfs $LFS/{usr{,/*},lib,var,etc,bin,sbin,tools} -case $(uname -m) in - x86_64) chown -v lfs $LFS/lib64 ;; -esac - - Se um diretório de trabalho separado foi criado como sugerido, então dê - à(ao) usuária(o) lfs a propriedade desse diretório: -chown -v lfs $LFS/sources - -Nota - - Em alguns sistemas anfitrião, o seguinte comando não completa - adequadamente e suspende o login para a(o) usuária(o) lfs para o - segundo plano. Se o prompt "lfs:~$" não aparecer imediatamente, então - emitir o comando fg corrigirá o problema. - - Em seguida, logue-se como usuária(o) lfs. Isso pode ser feito via um - console virtual; por intermédio de um gerenciador de tela; ou com o - seguinte comando de substituir/comutar usuária(o): -su - lfs - - O “-†instrui su a iniciar um shell de login em vez de um shell de - não-login. A diferença entre esses dois tipos de shells pode ser - encontrada em detalhes em bash(1) e info bash. - -4.4. Configurando o Ambiente - - Configure um bom ambiente de trabalho criando dois novos arquivos de - inicialização para o shell bash. Enquanto logada(o) como usuária(o) - lfs, emita o seguinte comando para criar um novo .bash_profile: -cat > ~/.bash_profile << "EOF" -exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash -EOF - - Enquanto logada(o) como usuária(o) lfs, o shell inicial é geralmente um - shell de login que lê o /etc/profile do anfitrião (provavelmente - contendo algumas configurações e variáveis de ambiente) e então - .bash_profile. O comando exec env -i.../bin/bash no arquivo - .bash_profile substitui o shell em execução por um novo com um ambiente - completamente vazio, exceto pelas variáveis HOME, TERM, e PS1. Isso - garante que nenhuma variável de ambiente indesejada e potencialmente - danosa oriunda do sistema anfitrião vaze para o ambiente de construção. - A técnica usada aqui alcança o objetivo de assegurar um ambiente limpo. - - A nova instância do shell é um shell de não-login, que não lê, e - executa, o conteúdo dos arquivos /etc/profile ou .bash_profile, porém, - ao invés, lê, e executa, o arquivo .bashrc. Crie o arquivo .bashrc - agora: -cat > ~/.bashrc << "EOF" -set +h -umask 022 -LFS=/mnt/lfs -LC_ALL=POSIX -LFS_TGT=$(uname -m)-lfs-linux-gnu -PATH=/usr/bin -if [ ! -L /bin ]; then PATH=/bin:$PATH; fi -PATH=$LFS/tools/bin:$PATH -CONFIG_SITE=$LFS/usr/share/config.site -export LFS LC_ALL LFS_TGT PATH CONFIG_SITE -EOF - - O significado das configurações em .bashrc - - set +h - O comando set +h desliga a função hash do bash. “Hashing†- geralmente é uma característica útil—bash usa uma tabela hash - para lembrar o caminho completo de arquivos executáveis para - evitar procurar o PATH várias vezes para encontrar o mesmo - executável. Entretanto, as novas ferramentas deveriam ser usadas - tão logo sejam instaladas. Desativando a função hash, o shell - sempre vai procurar no PATH quando um aplicativo estiver para - ser executado. Dessa forma, o shell encontrará as ferramentas - recém compiladas em $LFS/tools/bin tão logo elas estejam - disponíveis sem lembrar da versão anterior do mesmo aplicativo - fornecida pela distribuição anfitriã, em /usr/bin ou /bin. - - umask 022 - Configurar a máscara de criação de arquivos da(o) usuária(o) - (umask) para 022 garante que recém criados arquivos e diretórios - são graváveis somente por suas(eus) donas(os), mas são legíveis - e executáveis por qualquer pessoa (assumindo que os modos padrão - são usados pelas chamadas de sistema open(2), novos arquivos - terminarão com modo de permissão 644 e diretórios com modo 755). - - LFS=/mnt/lfs - A variável LFS deveria ser configurada para o ponto de montagem - escolhido. - - LC_ALL=POSIX - A variável LC_ALL controla a localização de certos aplicativos, - fazendo suas mensagens seguirem as convenções de um país - especificado. Configurar LC_ALL para “POSIX†ou “C†(as duas são - equivalentes) garante que tudo vai funcionar como esperado - dentro do ambiente chroot. - - LFS_TGT=(uname -m)-lfs-linux-gnu - A variável LFS_TGT configura uma não padrão, porém compatível - descrição de máquina para uso quando da construção do nosso - compilador cruzado e vinculador e quando da compilação cruzada - do nosso conjunto de ferramentas temporárias. Mais informação - está contida em [521]Notas Técnicas do Conjunto de Ferramentas. - - PATH=/usr/bin - Muitas distribuições modernas de Linux mesclaram /bin e - /usr/bin. Quando esse for o caso, a variável PATH padrão apenas - precisa ser configurada para /usr/bin/ para o ambiente de - [522]Capítulo 6. Quando esse não for o caso, a seguinte linha - adiciona /bin ao caminho. - - if [ ! -L /bin ]; then PATH=/bin:$PATH; fi - Se /bin não for um link simbólico, então ele tem de ser - adicionado à variável PATH. - - PATH=$LFS/tools/bin:$PATH - Ao se colocar $LFS/tools/bin a frente do PATH padrão, o - compilador cruzado instalado no início de [523]Capítulo 5 é - imediatamente pego pelo shell após sua instalação. Isso, - combinado com a desativação do hashing, limita o risco de que o - compilador originário do anfitrião seja usado em vez do - compilador cruzado. - - CONFIG_SITE=$LFS/usr/share/config.site - Em [524]Capítulo 5 e [525]Capítulo 6, se essa variável não - estiver configurada, então os scripts configure talvez tentem - carregar itens de configuração específicos para algumas - distribuições a partir de /usr/share/config.site no sistema - anfitrião. Substitua-o para prevenir uma potencial contaminação - oriunda do anfitrião. - - export ... - Ao tempo que os comandos acima configuraram algumas variáveis, - com a finalidade de torná-las visíveis dentro de quaisquer - sub-shells, nós as exportamos. - -Importante - - Muitas distribuições comerciais adicionam uma instância não documentada - de /etc/bash.bashrc à inicialização de bash. Esse arquivo tem o - potencial de modificar o ambiente da(o) usuária(o) lfs de formas que - podem afetar a construção de pacotes LFS críticos. Para assegurar que o - ambiente da(o) usuária(o) lfs esteja limpo, verifique a presença de - /etc/bash.bashrc e, se presente, mova-o para fora do caminho. Como a(o) - usuária(o) root, execute: -[ ! -e /etc/bash.bashrc ] || mv -v /etc/bash.bashrc /etc/bash.bashrc.NOUSE - - Após o uso da(o) usuária(o) lfs for finalizado no início de - [526]Capítulo 7, você pode restaurar /etc/bash.bashrc (se desejado). - - Perceba que o pacote Bash de LFS que nós construiremos em - [527]Seção 8.34, “Bash-5.1.16†não é configurado para carregar ou - executar /etc/bash.bashrc, de modo que esse arquivo é inútil em um - sistema LFS completo. - - Finalmente, para ter o ambiente totalmente preparado para construção - das ferramentas temporárias, carregue o recém criado perfil de - usuária(o): -source ~/.bash_profile - -4.5. Sobre UPCs - - Muitas pessoas gostariam de saber de antemão aproximadamente quanto - tempo leva para compilar e instalar cada pacote. Devido a Linux From - Scratch poder ser construído em muitos sistemas, é impossível fornecer - estimativas de tempo precisas. O maior pacote (Glibc) levará - aproximadamente vinte (20) minutos em sistemas mais rápidos, mas - poderia levar até três (03) dias em sistemas mais lentos! Em vez de - fornecer tempos atuais, a medida Unidade Padrão de Construção (UPC) - será usada. - - A medida UPC funciona como segue. O primeiro pacote a ser compilado - neste livro é binutils em [528]Capítulo 5. O tempo necessário para - compilar esse pacote é que será referenciado como a Unidade Padrão de - Construção ou UPC. Todos os outros tempos de compilação serão expressos - relativamente a esse tempo. - - Por exemplo, considere um pacote cujo tempo de compilação é quatro e - meio (4,5) UPCs. Isso significa que, se um sistema precisou de dez (10) - minutos para compilar e instalar a primeira passagem de binutils, então - será necessário aproximadamente quarenta e cinco (45) minutos para - construir esse pacote de exemplo. Felizmente, a maioria dos tempos de - construção é menor que o tempo para binutils. - - Em geral, UPCs não são totalmente precisas, pois dependem de muitos - fatores, incluindo a versão de GCC do sistema anfitrião. Elas são - fornecidas aqui para dar uma estimativa de quanto tempo pode levar para - instalar um pacote, mas os números podem variar tanto quanto dúzias de - minutos em alguns casos. - -Nota - - Para muitos sistemas modernos com múltiplos processadores (ou cores) o - tempo de compilação para um pacote pode ser reduzido realizando um - “parallel makeâ€, seja configurando uma variável de ambiente; ou dizendo - para o aplicativo make quantos processadores estão disponíveis. Por - exemplo, uma CPU Intel i5-6500 pode suportar quatro processos - simultâneos com: -export MAKEFLAGS='-j4' - - ou somente construindo com: -make -j4 - - Quando múltiplos processadores são usados dessa maneira, as unidades - UPC no livro irão variar ainda mais do que normalmente aconteceria. Em - alguns casos, o passo make simplesmente falhará. Analisar a saída dos - processos de construção também será mais difícil, pois as linhas de - diferentes processos estarão intercaladas. Se você tiver um problema - com um passo de construção, então retorne para uma construção de - processador único para analisar adequadamente as mensagens de erro. - -4.6. Sobre as Suítes de Teste - - A maioria dos pacotes fornece uma suíte de teste. Rodar a suíte de - teste para um pacote recém construído é uma boa ideia, pois pode - fornecer uma “verificação de sanidade†indicando que tudo compilou - corretamente. Uma suíte de teste que executa seu conjunto de - verificações geralmente prova que o pacote está funcionando como a(o) - desenvolvedora(r) pretendia. Entretanto isso não garante que o pacote - está totalmente livre de defeitos. - - Algumas suítes de teste são mais importantes que outras. Por exemplo, - as suítes de teste para o conjunto de ferramentas central—GCC, - binutils, e glibc—são de máxima importância devido a seu papel central - em um sistema que funcione adequadamente. As suítes de teste para GCC e - glibc podem levar bastante tempo para completarem, especialmente em uma - máquina lenta, mas são fortemente recomendadas. - -Nota - - Executar as suítes de teste em [529]Capítulo 5 e [530]Capítulo 6 é - impossível, dado que os aplicativos são compilados com um compilador - cruzado, de forma que não se supõe que sejam aptos a executar no - anfitrião de construção. - - Um problema comum com a execução de suítes de teste para binutils e GCC - é ficar sem pseudo terminais (PTYs). Isso pode resultar em um alto - número de testes com falhas. Isso pode acontecer por muitas razões, mas - a causa mais provável é que o sistema anfitrião não tem o sistema de - arquivos devpts configurado corretamente. Esse problema é discutido em - maiores detalhes em - [531]https://www.linuxfromscratch.org/lfs/faq.html#no-ptys. - - Algumas vezes suítes de testes de pacotes falharão, mas por razões as - quais as(os) desenvolvedoras(es) estão cientes e consideraram - não-críticas. Consulte os registros localizados em - [532]https://www.linuxfromscratch.org/lfs/build-logs/11.1/ para - verificar quando essas falhas são esperadas ou não. Esse site é válido - para todos os testes ao longo deste livro. - -Parte III. Construindo o Conjunto de Ferramentas Cruzadas de LFS e -Ferramentas Temporárias - -Material Preliminar Importante - -Introdução - - Esta parte é dividida em três estágios: primeiro construindo um - compilador cruzado e suas bibliotecas associadas; segundo, usar esse - conjunto de ferramentas cruzado para construir vários utilitários de - uma forma que os isola da distribuição anfitriã; terceiro, entrar no - ambiente chroot, o qual melhora ainda mais o isolamento do anfitrião, e - construir as ferramentas restantes necessárias para construir o sistema - final. - -Importante - - Com esta parte inicia o trabalho real de construir um novo sistema. - Exige muito cuidado em assegurar que as instruções sejam seguidas - exatamente conforme o livro as mostra. Você deveria tentar entender o - que elas fazem, e qualquer que seja sua ânsia para finalizar sua - construção, você deveria evitar digitá-las cegamente como mostrado, mas - ler documentação quando houver algo que você não entenda. Além disso, - acompanhe sua digitação e da saída de comandos, enviando-as para um - arquivo, usando o utilitário tee. Isso permite um melhor diagnóstico se - algo der errado. - - A próxima seção dá uma introdução técnica ao processo de construção, - enquanto que a seguinte contém instruções gerais muito importantes. - -Notas Técnicas do Conjunto de Ferramentas - - Esta seção explana algumas das razões e detalhes técnicos por trás do - método completo de construção. Não é essencial entender imediatamente - tudo nesta seção. A maior parte desta informação ficará mais clara após - executar uma construção atual. Esta seção pode e deve ser consultada a - qualquer momento durante o processo. - - O objetivo geral do [533]Capítulo 5 e do [534]Capítulo 6 é o de - produzir uma área temporária que contém um conjunto reconhecidamente - bom de ferramentas que pode ser isolado do sistema anfitrião. Usando-se - chroot, os comandos nos capítulos subsequentes estarão confinados - naquele ambiente, assegurando uma construção limpa e livre de problemas - do sistema LFS alvo. O processo de construção foi desenhado para - minimizar os riscos para leitores novatos e para prover o maior valor - educacional ao mesmo tempo. - - O processo de construção é baseado no processo de compilação cruzada. A - compilação cruzada normalmente é usada para construir um compilador e o - conjunto de ferramentas dele para uma máquina diferente daquela que é - usada para a construção. Isso não é estritamente necessário para LFS, - dado que a máquina onde o novo sistema executará é a mesma usada para a - construção. Porém, a compilação cruzada tem a grande vantagem de que - tudo o que é compilado cruzadamente não pode depender do ambiente do - anfitrião. - -Acerca da Compilação Cruzada - -Nota - - O livro LFS não é, e não contém, um tutorial geral para construir um - conjunto de ferramentas cruzado (ou nativo). Não use os comandos no - livro para um conjunto de ferramentas cruzado o qual será usado para - algum outro propósito que não construir LFS, a menos que você realmente - entenda o que está fazendo. - - Compilação cruzada envolve alguns conceitos que merecem uma seção por - si próprios. Apesar que esta seção pode ser omitida em uma primeira - leitura, retornar até ela mais tarde será benéfico para o seu completo - entendimento do processo. - - Permita-nos primeiro definir alguns termos usados nesse contexto - - build - é a máquina onde nós construímos aplicativos. Note que essa - máquina é referenciada como sendo a “anfitriã†em outras seções. - - host - é a máquina/sistema onde os aplicativos construídos executarão. - Note que esse uso de “host†não é o mesmo que o uso em outras - seções. - - target - é usado apenas para compiladores. Ele é a máquina para a qual o - compilador produz código. Ele pode ser diferente de ambos build - e host. - - Como um exemplo, permita-nos imaginar o seguinte cenário (as vezes - rotulado de “Cruzado Canadenseâ€): nós podemos ter um compilador somente - em uma máquina lenta, vamos rotulá-la de “máquina Aâ€, e o compilador de - “ccAâ€. Nós também podemos ter uma máquina rápida (B), porém sem - compilador, e nós eventualmente desejamos produzir código para outra - máquina lenta (C). Para construir um compilador para a máquina “Câ€, nós - teríamos três estágios: - Estágio Build Host Target Ação - 1 A A B construir compilador cruzado cc1 usando ccA na máquina A - 2 A B C construir compilador cruzado cc2 usando cc1 na máquina A - 3 B C C construir compilador ccC usando cc2 na máquina B - - Então, todos os outros programas necessários para a máquina C podem ser - compilados usando cc2 na rápida máquina B. Note que a menos que B possa - executar aplicativos produzidos por C, não existe maneira de testar os - aplicativos construídos até que a própria máquina C esteja em execução. - Por exemplo, para testar ccC, nós eventualmente desejamos adicionar um - quarto estágio: - Estágio Build Host Target Ação - 4 C C C reconstruir e testar ccC usando o próprio na máquina C - - No exemplo acima, somente cc1 e cc2 são compiladores cruzados, isto é, - eles produzem código para uma máquina diferente daquela na qual estão - sendo executados. Tais compiladores são rotulados de compiladores - nativos. - -Implementação de Compilação Cruzada para LFS - -Nota - - Quase todos os sistemas de construção usam nomes da forma - cpu-vendor-kernel-os rotulados como o trio de máquina. Um leitor atento - eventualmente questionará porque um “trio†rotula um nome de quatro - componentes. A razão é histórica: inicialmente, três nomes de - componente eram suficientes para designar uma máquina inequivocamente, - porém com novas máquinas e sistemas aparecendo, isso se provou - insuficiente. A palavra “trio†subsistiu. Uma maneira simples de - determinar seu trio de máquina é executar o script config.guess que vem - com o fonte para muitos pacotes. Desempacote os fontes do pacote - “binutils†e execute o script: ./config.guess e observe a saída. Por - exemplo, para um processador Intel de 32-bits, a saída será - i686-pc-linux-gnu. Em um sistema de 64-bits, a saída será - x86_64-pc-linux-gnu. - - Esteja também ciente do nome do vinculador dinâmico da plataforma, - frequentemente rotulado de carregador dinâmico (não confundir com o - vinculador padrão ld o qual é parte do pacote “binutilsâ€). O vinculador - dinâmico provido por Glibc encontra e carrega as bibliotecas - compartilhadas necessárias para um aplicativo, prepara o aplicativo - para execução, e então o executa. O nome do vinculador dinâmico para - uma máquina Intel de 32-bits é ld-linux.so.2 e é ld-linux-x86-64.so.2 - para sistemas 64-bits. Uma maneira infalível de determinar o nome do - vinculador dinâmico é inspecionar uma biblioteca aleatória do sistema - anfitrião executando: readelf -l | grep interpreter e - observando a saída. A referência oficial cobrindo todas as plataformas - está no arquivo shlib-versions na raiz da árvore do fonte do Glibc. - - Para falsificar uma compilação cruzada em LFS, o nome do trio do - anfitrião é ligeiramente ajustado modificando-se o campo "vendor" na - variável LFS_TGT. Nós também usamos a opção --with-sysroot quando da - construção do vinculador dinâmico e do compilador cruzado para - informá-los onde encontrar os necessários arquivos do anfitrião. Isso - assegura que nenhum dos outros aplicativos construídos em - [535]Capítulo 6 pode se vincular a bibliotecas na máquina de - construção. Somente dois estágios são obrigatórios, e mais um para - testes: - Estágio Build Host Target Ação - 1 pc pc lfs construir compilador cruzado cc1 usando cc-pc em pc - 2 pc lfs lfs construir compilador cc-lfs usando cc1 em pc - 3 lfs lfs lfs reconstruir e testar cc-lfs usando o próprio em lfs - - Na tabela acima, “em pc†significa que os comandos são executados em - uma máquina usando a distribuição já instalada. “Em lfs†significa que - os comandos são executados dentro de um ambiente enjaulado. - - Agora, existe mais acerca de compilação cruzada: a linguagem C não é - apenas um compilador, mas também define uma biblioteca padrão. Neste - livro, a biblioteca GNU C, rotulada de “glibcâ€, é usada. Essa - biblioteca deve ser compilada para a máquina lfs, isto é, usando o - compilador cruzado cc1. Porém, o próprio compilador usa uma biblioteca - interna implementando complexas instruções não disponíveis no conjunto - de instruções do montador. Essa biblioteca interna é rotulada de - “libgccâ€, e deve ser vinculada à biblioteca “glibc†para ser - completamente funcional! Além disso, a biblioteca padrão para C++ - (libstdc++) também precisa estar vinculada à “glibcâ€. A solução para - esse problema de ovo e galinha é primeiro construir uma libgcc - degradada baseada em cc1, faltando algumas funcionalidades tais como - camadas e manipulação de exceções, então construir glibc usando esse - compilador degradado (o próprio glibc não degradado), então construir - libstdc++. Porém, nessa última biblioteca faltarão as mesmas - funcionalidades que libgcc. - - Esse não é o fim da história: a conclusão do parágrafo precedente é a - de que cc1 é incapaz de construir uma libstdc++ completamente - funcional, porém esse é o único compilador disponível para construir as - bibliotecas C/C++ durante o estágio 2! Certamente, o compilador - construído durante o estágio 2, cc-lfs, seria capaz de construir - aquelas bibliotecas, porém (1) o sistema de construção do GCC não sabe - que está utilizável em pc; e (2) usá-lo em pc estaria sob o risco de - vinculamento às bibliotecas de pc, dado que cc-lfs é um compilador - nativo. Assim, nós temos de construir libstdc++ mais tarde, em jaula. - -Outros detalhes procedurais - - O compilador cruzado será instalado em um diretório $LFS/tools - separado, dado que ele não será parte do sistema final. - - Binutils é instalado primeiro, pois a execução de configure de ambos - GCC e Glibc executa vários testes de características no montador e no - vinculador para determinar quais características de software habilitar - ou desabilitar. Isso é mais importante do que, inicialmente, alguém - possa perceber. Um GCC ou Glibc configurado incorretamente pode - resultar em um conjunto de ferramentas sutilmente quebrado, onde o - impacto de tal quebra talvez não se manifeste até próximo do final da - construção de uma distribuição inteira. Uma falha de teste de suíte - normalmente destacará tal erro antes que muito mais trabalho adicional - seja realizado. - - O Binutils instala o montador e o vinculador dele em dois locais, - $LFS/tools/bin e $LFS/tools/$LFS_TGT/bin. As ferramentas em uma - localização são rigidamente vinculadas à outra. Uma faceta importante - do vinculador é a ordem de procura de biblioteca dele. Informações - detalhadas podem ser obtidas de ld passando a flag --verbose. Por - exemplo, $LFS_TGT-ld --verbose | grep SEARCH exibirá os caminhos atuais - de procura e a ordem deles. Isso mostra quais arquivos estão vinculados - por ld pela compilação de um aplicativo fictício e passagem do - modificador --verbose ao vinculador. Por exemplo, $LFS_TGT-gcc dummy.c - -Wl,--verbose 2>&1 | grep succeeded exibirá todos os arquivos abertos - com sucesso durante o vinculamento. - - O próximo pacote instalado é o GCC. Um exemplo do que pode ser visto - durante a execução dele de configure é: -checking what assembler to use... /mnt/lfs/tools/i686-lfs-linux-gnu/bin/as -checking what linker to use... /mnt/lfs/tools/i686-lfs-linux-gnu/bin/ld - - Isso é importante pelas razões mencionadas acima. Também demonstra que - o script de configuração do GCC não busca os diretórios do PATH para - encontrar quais ferramentas usar. Entretanto, durante a operação atual - do próprio gcc, os mesmos caminhos de busca não são necessariamente - usados. Para descobrir qual vinculador padrão gcc usará, execute: - $LFS_TGT-gcc -print-prog-name=ld. - - Informação detalhada pode ser obtida de gcc passando-se a opção de - linha de comando -v durante a compilação de um aplicativo fictício. Por - exemplo, gcc -v dummy.c exibirá informação detalhada acerca do - preprocessador, compilação e estágios da montagem, incluindo os - caminhos de busca incluídos do gcc e a ordem deles. - - Os próximos instalados são os cabeçalhos sanitizados da API do Linux. - Eles permitem a interface da biblioteca C padrão (Glibc) com - características que o kernel Linux proverá. - - O próximo pacote instalado é Glibc. As considerações mais importantes - para a construção do Glibc são o compilador, ferramentas binárias e os - cabeçalhos do kernel. O compilador geralmente não é um problema dado - que Glibc sempre usará o compilador relacionado ao parâmetro --host - passado ao script de configuração dele; por exemplo, em nosso caso, o - compilador será $LFS_TGT-gcc. As ferramentas binárias e os cabeçalhos - do kernel podem ser um bocado mais complicados. Dessa maneira, nós não - nos arriscamos e usamos os modificadores de configuração disponíveis - para forçar as seleções corretas. Após a execução de configure, - verifique o conteúdo do arquivo config.make no diretório build para - todos os detalhes importantes. Observe o uso de CC="$LFS_TGT-gcc" (com - $LFS_TGT expandida) para controlar quais ferramentas binárias são - usadas e o uso das flags -nostdinc e -isystem para controlar o caminho - de busca incluído do compilador. Esses itens destacam um importante - aspecto do pacote Glibc—ele é muito autossuficiente em termos de - maquinário de construção e geralmente não confia em padrões de - conjuntos de ferramentas. - - Como dito acima, a biblioteca C++ padrão é compilada depois, seguida em - [536]Capítulo 6 por todos os aplicativos que necessitam deles próprios - para serem construídos. O passo de instalação de todos aqueles pacotes - usa os aplicativos instalados no sistema de arquivos do LFS. - - Ao final do [537]Capítulo 6 o compilador nativo do LFS é instalado. - Primeiro binutils-pass2 é construído, com a mesma instalação DESTDIR - como os outros programas, então a segunda passagem de GCC é construída, - omitindo libstdc++ e outras bibliotecas não importantes. Devido a - algumas lógicas estranhas no script configure do GCC, CC_FOR_TARGET - termina como cc quando o host for o mesmo que o target, porém for - diferente do sistema de construção. Essa é a razão pela qual - CC_FOR_TARGET=$LFS_TGT-gcc é colocado explicitamente nas opções de - configuração. - - Uma vez dentro do ambiente chroot no [538]Capítulo 7, a primeira tarefa - é instalar libstdc++. Então instalações temporárias de programas - necessários para a operação apropriada do conjunto de ferramentas são - executadas. Deste ponto em diante, o conjunto central de ferramentas - está autocontido e auto-hospedado. No [539]Capítulo 8, as versões - finais de todos os pacotes necessários para um sistema completamente - funcional são construídos, testados e instalados. - -Instruções Gerais de Compilação - - Quando da construção de pacotes existem várias suposições feitas dentro - das instruções: - * Vários dos pacotes recebem patches antes da compilação, mas apenas - quando o patch é necessário para evitar um problema. Um patch - frequentemente é necessário tanto neste quanto nos seguintes - capítulos, mas algumas vezes em apenas uma localização. Portanto, - não se preocupe se as instruções para um patch baixado pareçam - estar faltando. Mensagens de alerta acerca de offset ou fuzz também - talvez sejam encontradas quando da aplicação de um patch. Não se - preocupe com esses alertas, uma vez que o patch ainda foi aplicado - com sucesso. - * Durante a compilação da maior parte dos pacotes, existirão vários - alertas que rolarão na tela. Esses são normais e seguramente podem - ser ignorados. Esses alertas são o que parecem—alertas acerca de - uso de sintaxe C ou C++ obsoleta, mas não inválida. Padrões C mudam - com ampla frequência, e alguns pacotes ainda usam o padrão antigo. - Isso não é um problema, mas gera o alerta. - * Verifique uma última vez que a variável de ambiente LFS está - configurada adequadamente: -echo $LFS - Certifique-se de que a saída mostra o caminho para o ponto de - montagem da partição LFS, que é /mnt/lfs, usando nosso exemplo. - * Finalmente, dois itens importantes devem ser enfatizados: - -Importante - As instruções de construção assumem que as [540]Exigências do - Sistema Anfitrião, incluindo links simbólicos, foram configuradas - adequadamente: - + bash é o shell em uso. - + sh é um link simbólico para bash. - + /usr/bin/awk é um link simbólico para gawk. - + /usr/bin/yacc é um link simbólico para bison ou um script - pequeno que executa bison. - -Importante - Para reenfatizar o processo de construção: - 1. Coloque todos os pacotes e patches em um diretório que estará - acessível a partir do ambiente chroot, tal como - /mnt/lfs/sources/. - 2. Mude para o diretório dos fontes. - 3. Para cada pacote: - 1. Usando o aplicativo tar, extraia o pacote para ser - construído. Em [541]Capítulo 5 e [542]Capítulo 6, - certifique-se de que você seja a(o) usuária(o) lfs quando - extrair o pacote. - Todos os métodos para obter a árvore de código fonte - sendo construído em-posição, exceto extrair o tarball de - pacote, não são suportados. Notadamente, usar cp -R para - copiar a árvore de código fonte para outro lugar pode - destruir links e marcas temporais na árvore de fontes e - causar falha de construção. - 2. Mude para o diretório criado quando o pacote foi - extraído. - 3. Siga as instruções do livro para construir o pacote. - 4. Mude de volta para o diretório de fontes. - 5. Delete o diretório de fonte extraído a menos que - instruído o contrário. - -Capítulo 5. Compilando um Conjunto de Ferramentas Cruzado - -5.1. Introdução - - Este capítulo mostra como construir um compilador cruzado e suas - ferramentas associadas. Apesar de aqui a compilação cruzada ser - falseada, os princípios são os mesmos que aqueles para um conjunto de - ferramentas cruzado real. - - Os aplicativos compilados neste capítulo serão instalados sob o - diretório $LFS/tools para mantê-los separados dos arquivos instalados - nos capítulos seguintes. As bibliotecas, por outro lado, são instaladas - em seus locais finais, dado que elas pertencem ao sistema que queremos - construir. - -5.2. Binutils-2.38 - Passagem 1 - - O pacote Binutils contém um vinculador, um montador, e outras - ferramentas para manusear arquivos objeto. - Tempo aproximado de construção: 1 UPC - Espaço em disco exigido: 620 MB - -5.2.1. Instalação de Binutils Cruzado - -Nota - - Volte e releia as notas na seção intitulada [543]Instruções Gerais de - Compilação. Entender as notas rotuladas como importante pode salvar - você de um monte de problemas depois. - - É importante que Binutils seja o primeiro pacote compilado, pois ambos - Glibc e GCC realizam vários testes sobre o vinculador e montador - disponíveis para determinar quais de suas próprias características - habilitar. - - A documentação de Binutils recomenda construir Binutils em um diretório - dedicado à construção: -mkdir -v build -cd build - -Nota - - Com a finalidade de que os valores de UPC listados no resto do livro - sejam de qualquer uso, meça o tempo que leva para construir este pacote - desde a configuração até e incluindo a primeira instalação. Para fazer - isso facilmente, encapsule os comandos em um time desta forma: time { - ../configure ... && make && make install; }. - - Agora prepare Binutils para compilação: -../configure --prefix=$LFS/tools \ - --with-sysroot=$LFS \ - --target=$LFS_TGT \ - --disable-nls \ - --disable-werror - - O significado das opções do configure: - - --prefix=$LFS/tools - Isso diz para o script configure para preparar para instalar os - aplicativos de binutils no diretório $LFS/tools. - - --with-sysroot=$LFS - Para compilação cruzada, isso diz ao sistema de construção para - procurar em $LFS pelas bibliotecas alvo de sistema conforme - necessário. - - --target=$LFS_TGT - Por causa da descrição de máquina na variável LFS_TGT ser - ligeiramente diferente do valor retornado pelo script - config.guess, essa chave dirá ao script configure para ajustar o - sistema de construção do binutils para construir um vinculador - cruzado. - - --disable-nls - Isso desabilita internacionalização, uma vez que i18n não é - necessária para as ferramentas temporárias. - - --disable-werror - Isso evita que a construção pare no caso de existirem alertas - originários do compilador do anfitrião. - - Continue compilando o pacote: -make - - Instale o pacote: -make install - - Detalhes deste pacote estão localizados em [544]Seção 8.18.2, “Conteúdo - de Binutils.†- -5.3. GCC-11.2.0 - Passagem 1 - - O pacote GCC contém a GNU compiler collection, o qual inclui os - compiladores C e C++. - Tempo aproximado de construção: 11 UPC - Espaço em disco exigido: 3,3 GB - -5.3.1. Instalação de GCC Cruzado - - GCC exige os pacotes GMP, MPFR e MPC. Uma vez que esses pacotes talvez - não estejam incluídos na sua distribuição anfitriã, eles serão - construídos com GCC. Desempacote cada pacote dentro do diretório de - fonte de GCC e renomeie os diretórios resultantes de forma que os - procedimentos de construção de GCC automaticamente os usarão: - -Nota - - Existem mal-entendidos frequentes sobre este capítulo. Os procedimentos - são os mesmos que todos os outros capítulos explicados anteriormente - ([545]Instruções de construção de pacote). Primeiro extraia o tarball - de gcc a partir do diretório de fontes e então mude para o diretório - criado. Somente então deveria você prosseguir com as instruções abaixo. -tar -xf ../mpfr-4.1.0.tar.xz -mv -v mpfr-4.1.0 mpfr -tar -xf ../gmp-6.2.1.tar.xz -mv -v gmp-6.2.1 gmp -tar -xf ../mpc-1.2.1.tar.gz -mv -v mpc-1.2.1 mpc - - Em anfitriões x86_64, configure o nome padrão de diretório para - bibliotecas de 64 bits para “libâ€: -case $(uname -m) in - x86_64) - sed -e '/m64=/s/lib64/lib/' \ - -i.orig gcc/config/i386/t-linux64 - ;; -esac - - A documentação de GCC recomenda construir GCC em um diretório de - construção dedicado: -mkdir -v build -cd build - - Prepare GCC para compilação: -../configure \ - --target=$LFS_TGT \ - --prefix=$LFS/tools \ - --with-glibc-version=2.35 \ - --with-sysroot=$LFS \ - --with-newlib \ - --without-headers \ - --enable-initfini-array \ - --disable-nls \ - --disable-shared \ - --disable-multilib \ - --disable-decimal-float \ - --disable-threads \ - --disable-libatomic \ - --disable-libgomp \ - --disable-libquadmath \ - --disable-libssp \ - --disable-libvtv \ - --disable-libstdcxx \ - --enable-languages=c,c++ - - O significado das opções de configure: - - --with-glibc-version=2.35 - Essa opção especifica a versão de glibc a qual será usada no - alvo. Ela não é relevante para a libc da distro anfitriã, pois - tudo compilado por gcc passagem 1 executará no ambiente chroot, - o qual é isolado de libc da distro anfitriã. - - --with-newlib - Uma vez que uma biblioteca C funcional ainda não está - disponível, isso assegura que a constante inhibit_libc esteja - definida quando da construção de libgcc. Isso evita a compilação - de qualquer código que exija suporte de libc. - - --without-headers - Quando da criação de um compilador cruzado completo, GCC exige - cabeçalhos padrão compatíveis com o sistema alvo. Para nossos - propósitos esses cabeçalhos não serão necessários. Essa chave - evita que GCC procure por eles. - - --enable-initfini-array - Essa chave força o uso de algumas estruturas internas de dados - que são necessárias, porém não podem ser detectadas quando da - construção de um compilador cruzado. - - --disable-shared - Essa chave força GCC a vincular suas bibliotecas internas - estaticamente. Nós precisamos disso, pois as bibliotecas - compartilhadas exigem glibc, que ainda não está instalado no - sistema alvo. - - --disable-multilib - Em x86_64, LFS não suporta uma configuração multilib. Essa chave - é inofensiva para x86. - - --disable-decimal-float, --disable-threads, --disable-libatomic, - --disable-libgomp, --disable-libquadmath, --disable-libssp, - --disable-libvtv, --disable-libstdcxx - Essas chaves desabilitam suporte para a extensão de ponto - flutuante decimal, threading, libatomic, libgomp, libquadmath, - libssp, libvtv, e a biblioteca padrão C++ respectivamente. Essas - características falharão na compilação quando da construção de - um compilador cruzado e não são necessárias para a tarefa de - compilar cruzadamente a libc temporária. - - --enable-languages=c,c++ - Essa opção garante que apenas os compiladores C e C++ sejam - construídos. Essas são as únicas linguagens necessárias agora. - - Compile GCC executando: -make - - Instale o pacote: -make install - - Essa construção de GCC instalou um par de cabeçalhos internos de - sistema. Normalmente um deles, limits.h, sequencialmente incluiria o - cabeçalho limits.h de sistema correspondente, nesse caso, - $LFS/usr/include/limits.h. Entretanto, ao tempo dessa construção de - GCC, $LFS/usr/include/limits.h não existe, de forma que o cabeçalho - interno recém instalado é um arquivo parcial, autocontido, e não inclui - as características estendidas do cabeçalho de sistema. Isso é adequado - para a construção de glibc, porém o cabeçalho interno completo será - necessário mais tarde. Crie uma versão completa do cabeçalho interno - usando um comando que é idêntico ao que o sistema de construção de GCC - faz em circunstâncias normais: -cd .. -cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \ - `dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/install-tools/include/limits -.h - - Detalhes acerca deste pacote estão localizados em [546]Seção 8.26.2, - “Conteúdo de GCC.†- -5.4. Cabeçalhos da API do Linux-5.16.9 - - Os Cabeçalhos da API do Linux (em linux-5.16.9.tar.xz) expõem a API do - kernel para uso por Glibc. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 1,2 GB - -5.4.1. Instalação dos Cabeçalhos da API do Linux - - O kernel Linux precisa expor uma Interface de Programação de - Aplicativos (API) para a biblioteca C do sistema (Glibc em LFS) usar. - Isso é feito por meio de sanitizar vários arquivos de cabeçalho C que - são incluídos no tarball de fonte de kernel Linux. - - Certifique-se de que não existem arquivos obsoletos embutidos no - pacote: -make mrproper - - Agora extraia os cabeçalhos de kernel visíveis ao usuário a partir do - fonte. O alvo recomendado de make “headers_install†não pode ser usado, - pois ele exige rsync, que talvez não esteja disponível. Os cabeçalhos - são primeiro colocados em ./usr, então copiados para a localização - necessária. -make headers -find usr/include -name '.*' -delete -rm usr/include/Makefile -cp -rv usr/include $LFS/usr - -5.4.2. Conteúdo dos Cabeçalhos da API do Linux - - Cabeçalhos instalados: /usr/include/asm/*.h, - /usr/include/asm-generic/*.h, /usr/include/drm/*.h, - /usr/include/linux/*.h, /usr/include/misc/*.h, /usr/include/mtd/*.h, - /usr/include/rdma/*.h, /usr/include/scsi/*.h, /usr/include/sound/*.h, - /usr/include/video/*.h, and /usr/include/xen/*.h - Diretórios instalados: /usr/include/asm, /usr/include/asm-generic, - /usr/include/drm, /usr/include/linux, /usr/include/misc, - /usr/include/mtd, /usr/include/rdma, /usr/include/scsi, - /usr/include/sound, /usr/include/video, and /usr/include/xen - -Descrições Curtas - - /usr/include/asm/*.h - - Os Cabeçalhos API ASM Linux - - /usr/include/asm-generic/*.h - - Os Cabeçalhos Genéricos API ASM Linux - - /usr/include/drm/*.h - - Os Cabeçalhos API DRM Linux - - /usr/include/linux/*.h - - Os Cabeçalhos Linux API Linux - - /usr/include/misc/*.h - - Os Cabeçalhos Miscelâneas API Linux - - /usr/include/mtd/*.h - - Os Cabeçalhos API MTD Linux - - /usr/include/rdma/*.h - - Os Cabeçalhos API RDMA Linux - - /usr/include/scsi/*.h - - Os Cabeçalhos API SCSI Linux - - /usr/include/sound/*.h - - Os Cabeçalhos de Som API Linux - - /usr/include/video/*.h - - Os Cabeçalhos de Vídeo API Linux - - /usr/include/xen/*.h - - Os Cabeçalhos Xen API Linux - -5.5. Glibc-2.35 - - O pacote Glibc contém a biblioteca C principal. Essa biblioteca fornece - as rotinas básicas para alocação de memória, busca em diretórios, - abertura e fechamento de arquivos, leitura e escrita de arquivos, - manuseio de sequências de caracteres, correspondência de padrões, - aritmética, e daí por diante. - Tempo aproximado de construção: 4,3 UPC - Espaço em disco exigido: 818 MB - -5.5.1. Instalação de Glibc - - Primeiro, crie um link simbólico para conformidade com LSB. - Adicionalmente, para x86_64, crie um link simbólico de compatibilidade - exigido para a operação adequada do carregador dinâmico de biblioteca: -case $(uname -m) in - i?86) ln -sfv ld-linux.so.2 $LFS/lib/ld-lsb.so.3 - ;; - x86_64) ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64 - ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3 - ;; -esac - -Nota - - O comando acima está correto. O comando ln tem umas poucas versões - sintáticas, de forma que tenha certeza de verificar info coreutils ln e - ln(1) antes de relatar o que você talvez pense que seja um erro. - - Alguns dos aplicativos Glibc usam o diretório não conforme com FHS - /var/db para armazenar seus dados em tempo de execução. Aplique a - seguinte correção para fazer com que tais aplicativos armazenem seus - dados em tempo de execução nos locais conformes com FHS: -patch -Np1 -i ../glibc-2.35-fhs-1.patch - - A documentação de Glibc recomenda construir Glibc em um diretório - dedicado à construção: -mkdir -v build -cd build - - Assegure que os utilitários ldconfig e sln sejam instalados em - /usr/sbin: -echo "rootsbindir=/usr/sbin" > configparms - - A seguir, prepare Glibc para compilação: -../configure \ - --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(../scripts/config.guess) \ - --enable-kernel=3.2 \ - --with-headers=$LFS/usr/include \ - libc_cv_slibdir=/usr/lib - - O significado das opções de configure: - - --host=$LFS_TGT, --build=$(../scripts/config.guess) - O efeito combinado dessas chaves é o de que o sistema de - construção do Glibc se autoconfigura para ser compilado - cruzadamente, usando o vinculador cruzado e compilador cruzado - em $LFS/tools. - - --enable-kernel=3.2 - Isso diz a Glibc para compilar a biblioteca com suporte para - kernels Linux 3.2 e posteriores. Contornos para kernels antigos - não estão habilitados. - - --with-headers=$LFS/usr/include - Isso diz a Glibc para compilar a si mesmo com os cabeçalhos - recentemente instalados no diretório $LFS/usr/include, de forma - que ele saiba exatamente quais características o kernel tem e - possa otimizar-se adequadamente. - - libc_cv_slibdir=/usr/lib - Isso garante que a biblioteca seja instalada em /usr/lib em vez - do padrão /lib64 em máquinas de 64 bits. - - Durante este estágio o seguinte alerta pode aparecer: - -configure: WARNING: -*** These auxiliary programs are missing or -*** incompatible versions: msgfmt -*** some features will be disabled. -*** Check the INSTALL file for required versions. - - O aplicativo msgfmt faltando ou incompatível geralmente é inofensivo. - Esse aplicativo msgfmt é parte do pacote Gettext que a distribuição - anfitriã deveria fornecer. - -Nota - - Tem havido relatos de que esse pacote talvez falhe quando da construção - como um "parallel make". Se isso ocorrer, então reexecute o comando - make com uma opção "-j1". - - Compile o pacote: -make - - Instale o pacote: - -Atenção - - Se LFS não estiver adequadamente configurada, e a despeito das - recomendações, você estiver construindo como root, então o próximo - comando instalará a recém construída glibc em seu sistema anfitrião, o - que possivelmente o tornará inutilizável. Portanto, verifique duas - vezes se o ambiente está corretamente configurado, antes de executar o - seguinte comando. -make DESTDIR=$LFS install - - O significado da opção make install: - - DESTDIR=$LFS - A variável DESTDIR de make é usada por quase todos os pacotes - para definir a localização onde o pacote deveria ser instalado. - Se ela não estiver configurada, então o padrão é o diretório - raiz (/). Aqui nós especificamos que o pacote seja instalado em - $LFS, que se tornará a raiz após [547]Seção 7.4, “Entrando no - Ambiente Chrootâ€. - - Corrija caminho codificado rigidamente para o carregador de executável - em script ldd: -sed '/RTLDLIST=/s@/usr@@g' -i $LFS/usr/bin/ldd - -Cuidado - - Neste ponto, é imperativo parar e certificar-se de que as funções - básicas (compilar e lincar) do novo conjunto de ferramentas estão - funcionando como esperado. Para realizar uma verificação de sanidade, - execute os seguintes comandos: -echo 'int main(){}' > dummy.c -$LFS_TGT-gcc dummy.c -readelf -l a.out | grep '/ld-linux' - - Se tudo estiver funcionando corretamente, então não deveriam existir - quaisquer erros, e a saída do último comando será na forma: -[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2] - - Note que para máquinas de 32 bits, o nome do interpretador será - /lib/ld-linux.so.2. - - Se a saída não for mostrada como acima ou não existir saída nenhuma, - então alguma coisa está errada. Investigue e retrace os passos para - encontrar onde está o problema e corrija-o. Esse problema deve ser - resolvido antes de continuar. - - Uma vez que tudo esteja bem, limpe os arquivos de teste: -rm -v dummy.c a.out - -Nota - - Construir pacotes no próximo capítulo servirá como uma verificação - adicional de que o conjunto de ferramentas foi construído - adequadamente. Se algum pacote, especialmente binutils-passagem 2 ou - gcc-passagem 2, falhar na construção, então isso é uma indicação de que - alguma coisa deu errado com as instalações anteriores de Binutils, GCC - ou Glibc. - - Agora que nosso conjunto de ferramentas cruzadas está completa, - finalize a instalação do cabeçalho limits.h. Para fazer isso, execute - um utilitário fornecido pelas(os) desenvolvedoras(os) de GCC: -$LFS/tools/libexec/gcc/$LFS_TGT/11.2.0/install-tools/mkheaders - - Detalhes acerca deste pacote estão localizados em [548]Seção 8.5.3, - “Conteúdo de Glibc.†- -5.6. Libstdc++ oriundo de GCC-11.2.0, Passagem 1 - - Libstdc++ é a biblioteca padrão C++. Ela é necessária para compilar - código C++ (parte de GCC é escrito em C++), porém nós tivemos que adiar - sua instalação quando construímos [549]gcc-pass1, pois ela depende de - glibc, que ainda não estava disponível no diretório alvo. - Tempo aproximado de construção: 0,4 UPC - Espaço em disco exigido: 818 MB - -5.6.1. Instalação de Libstdc++ Alvo - -Nota - - Libstdc++ é parte dos fontes de GCC. Você deveria primeiro desempacotar - o tarball de GCC e mudar para o diretório gcc-11.2.0. - - Crie um diretório de construção separado para libstdc++ e entre nele: -mkdir -v build -cd build - - Prepare libstdc++ para compilação: -../libstdc++-v3/configure \ - --host=$LFS_TGT \ - --build=$(../config.guess) \ - --prefix=/usr \ - --disable-multilib \ - --disable-nls \ - --disable-libstdcxx-pch \ - --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/11.2.0 - - O significado das opções de configure: - - --host=... - Especifica que o compilador cruzado que nós acabamos de - construir deveria ser usado em vez daquele em /usr/bin. - - --disable-libstdcxx-pch - Essa chave evita a instalação de arquivos include - pré-compilados, os quais não são necessários neste estágio. - - --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/11.2.0 - Isso especifica o diretório de instalação para arquivos include. - Por causa de libstdc++ ser a biblioteca padrão C++ para LFS, - esse diretório deveria coincidir com a localização onde o - compilador C++ ($LFS_TGT-g++) procuraria pelos arquivos include - C++ padrão. Em uma construção normal, essa informação é - automaticamente passada para as opções configure de libstdc++ a - partir do diretório de nível de topo. Em nosso caso, essa - informação deve ser explicitamente dada. O compilador C++ - precederá o caminho raiz de sistema $LFS (especificado quando da - construção de GCC passagem 1) para o caminho de pesquisa de - arquivo include, de forma que ele atualmente pesquisará em - $LFS/tools/$LFS_TGT/include/c++/11.2.0. A combinação da variável - DESTDIR (no comando make install abaixo) e essa chave garante - instalar os cabeçalhos lá. - - Compile libstdc++ executando: -make - - Instale a biblioteca: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [550]Seção 8.26.2, - “Conteúdo de GCC.†- -Capítulo 6. Compilando Cruzadamente Ferramentas Temporárias - -6.1. Introdução - - Este capítulo mostra como compilar cruzadamente utilitários básicos - usando o recém construído conjunto de ferramentas cruzadas. Esses - utilitários são instalados no local final deles, porém ainda não podem - ser usados. Tarefas básicas ainda dependem das ferramentas do - anfitrião. Apesar disso, as bibliotecas instaladas são usadas quando da - vinculação. - - O uso dos utilitários será possível no próximo capítulo após entrada no - ambiente “chrootâ€. Porém, todos os pacotes construídos no presente - capítulo precisam ser construídos antes que façamos isso. Dessa forma - nós ainda não podemos ficar independentes do sistema anfitrião. - - Uma vez mais, permita-nos relembrar que a configuração inapropriada de - LFS junto com a construção como root, talvez torne seu computador - inutilizável. Este capítulo inteiro precisa ser feito como usuária(o) - lfs, com o ambiente conforme descrito em [551]Seção 4.4, “Configurando - o Ambienteâ€. - -6.2. M4-1.4.19 - - O pacote M4 contém um processador de macro. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 31 MB - -6.2.1. Instalação de M4 - - Prepare M4 para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [552]Seção 8.12.2, - “Conteúdo de M4.†- -6.3. Ncurses-6.3 - - O pacote Ncurses contém bibliotecas para manipulação de telas de - caracteres independente de terminal. - Tempo aproximado de construção: 0,7 UPC - Espaço em disco exigido: 50 MB - -6.3.1. Instalação de Ncurses - - Primeiro, assegure que gawk é encontrado primeiro durante a - configuração: -sed -i s/mawk// configure - - Então, execute os seguintes comandos para construir o aplicativo “tic†- no anfitrião de construção: -mkdir build -pushd build - ../configure - make -C include - make -C progs tic -popd - - Prepare Ncurses para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(./config.guess) \ - --mandir=/usr/share/man \ - --with-manpage-format=normal \ - --with-shared \ - --without-debug \ - --without-ada \ - --without-normal \ - --disable-stripping \ - --enable-widec - - O significado das novas opções de configure: - - --with-manpage-format=normal - Isso evita que Ncurses instale páginas comprimidas de manual, o - que talvez aconteceu se a própria distribuição anfitriã tiver - páginas comprimidas de manual. - - --without-ada - Isso assegura que Ncurses não construa suporte para o compilador - Ada, o qual talvez esteja presente no anfitrião, porém não - estará disponível até que nós entremos no ambiente chroot. - - --disable-stripping - Essa chave impede o sistema de construção de despojar os - aplicativos usando o aplicativo strip oriundo do anfitrião. O - uso de ferramentas de anfitrião em aplicativo compilado - cruzadamente pode causar falha. - - --enable-widec - Essa chave faz com que bibliotecas de caracteres largos (por - exemplo, libncursesw.so.6.3) sejam construídas em vez de - bibliotecas normais (por exemplo, libncurses.so.6.3). Essas - bibliotecas de caracteres largos são utilizáveis tanto em - locales de múltiplos bytes quanto em tradicionais de oito (08) - bits, enquanto bibliotecas normais funcionam adequadamente só em - locales de oito (08) bits. Bibliotecas de caracteres largos e - bibliotecas normais são compatíveis em fonte, mas não são - compatíveis em binário. - - --without-normal - Essa chave desabilita a construção e instalação da maioria das - bibliotecas estáticas. - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS TIC_PATH=$(pwd)/build/progs/tic install -echo "INPUT(-lncursesw)" > $LFS/usr/lib/libncurses.so - - O significado das opções de install: - - TIC_PATH=$(pwd)/build/progs/tic - Nós precisamos passar o caminho do recém construído tic apto - para executar na máquina de construção, de forma que a base de - dados de terminal possa ser criada sem erros. - - echo "INPUT(-lncursesw)" > $LFS/usr/lib/libncurses.so - A biblioteca libncurses.so é necessária para uns poucos pacotes - que nós construiremos breve. Nós criamos esse pequeno script - vinculador, pois isso é o que é feito em [553]Capítulo 8. - - Detalhes acerca deste pacote estão localizados em [554]Seção 8.28.2, - “Conteúdo de Ncurses.†- -6.4. Bash-5.1.16 - - O pacote Bash contém o Bourne-Again SHell. - Tempo aproximado de construção: 0,4 UPC - Espaço em disco exigido: 64 MB - -6.4.1. Instalação de Bash - - Prepare Bash para compilação: -./configure --prefix=/usr \ - --build=$(support/config.guess) \ - --host=$LFS_TGT \ - --without-bash-malloc - - O significado das opções de configure: - - --without-bash-malloc - Essa opção desliga o uso da função de alocação de memória do - Bash (malloc) a qual é conhecida por causar falhas de - segmentação. Ao se desligar essa opção, Bash usará as funções - malloc originárias de Glibc que são mais estáveis. - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Faça um link para os aplicativos que usam sh para um shell: -ln -sv bash $LFS/bin/sh - - Detalhes acerca deste pacote estão localizados em [555]Seção 8.34.2, - “Conteúdo do Bash.†- -6.5. Coreutils-9.0 - - O pacote Coreutils contém utilitários para mostrar e configurar as - características básicas de sistema. - Tempo aproximado de construção: 0,6 UPC - Espaço em disco exigido: 158 MB - -6.5.1. Instalação de Coreutils - - Prepare Coreutils para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) \ - --enable-install-program=hostname \ - --enable-no-install-program=kill,uptime - - O significado das opções de configure: - - --enable-install-program=hostname - Isso habilita o binário hostname para ser construído e instalado - – ele é desabilitado por padrão, porém é exigido pela suíte de - teste de Perl. - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Mova aplicativos para seus locais finais esperados. Apesar de isso não - ser necessário neste ambiente temporário, nós precisamos fazer isso, - pois alguns aplicativos codificam rigidamente locais de executável: -mv -v $LFS/usr/bin/chroot $LFS/usr/sbin -mkdir -pv $LFS/usr/share/man/man8 -mv -v $LFS/usr/share/man/man1/chroot.1 $LFS/usr/share/man/man8/chroot.8 -sed -i 's/"1"/"8"/' $LFS/usr/share/man/man8/chroot.8 - - Detalhes acerca deste pacote estão localizados em [556]Seção 8.53.2, - “Conteúdo do Coreutils.†- -6.6. Diffutils-3.8 - - O pacote Diffutils contém aplicativos que mostram as diferenças entre - arquivos ou diretórios. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 27 MB - -6.6.1. Instalação de Diffutils - - Prepare Diffutils para compilação: -./configure --prefix=/usr --host=$LFS_TGT - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [557]Seção 8.55.2, - “Conteúdo do Diffutils.†- -6.7. File-5.41 - - O pacote File contém um utilitário para determinar o tipo de um dado - arquivo ou arquivos. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 32 MB - -6.7.1. Instalação de File - - O comando file no anfitrião de construção precisa ser da mesma versão - que aquele que nós estamos construindo com a finalidade de criar o - arquivo de assinatura. Execute os seguintes comandos para construí-lo: -mkdir build -pushd build - ../configure --disable-bzlib \ - --disable-libseccomp \ - --disable-xzlib \ - --disable-zlib - make -popd - - O significado da nova opção de configure: - - --disable-* - O script de configuração tenta usar alguns pacotes originários - da distribuição anfitriã se os arquivos de biblioteca - correspondentes existirem. Isso talvez cause falha de compilação - se um arquivo de biblioteca existir, porém os arquivos de - cabeçalhos correspondentes não. Essas opções impedem o uso - dessas capacidades desnecessárias a partir do anfitrião. - - Prepare File para compilação: -./configure --prefix=/usr --host=$LFS_TGT --build=$(./config.guess) - - Compile o pacote: -make FILE_COMPILE=$(pwd)/build/src/file - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [558]Seção 8.10.2, - “Conteúdo de File.†- -6.8. Findutils-4.9.0 - - O pacote Findutils contém aplicativos para procurar arquivos. Esses - aplicativos são fornecidos para procurar recursivamente dentro de uma - árvore de diretório e para criar, manter e buscar um banco de dados - (geralmente mais rápido que o find recursivo, porém não é confiável se - o banco de dados não for atualizado recentemente). - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 42 MB - -6.8.1. Instalação de Findutils - - Prepare Findutils para compilação: -./configure --prefix=/usr \ - --localstatedir=/var/lib/locate \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [559]Seção 8.57.2, - “Conteúdo do Findutils.†- -6.9. Gawk-5.1.1 - - O pacote Gawk contém aplicativos para manipular arquivos de texto. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 45 MB - -6.9.1. Instalação de Gawk - - Primeiro, garanta que alguns arquivos desnecessários não sejam - instalados: -sed -i 's/extras//' Makefile.in - - Prepare Gawk para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [560]Seção 8.56.2, - “Conteúdo do Gawk.†- -6.10. Grep-3.7 - - O pacote Grep contém aplicativos para procura ao longo do conteúdo de - arquivos. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 26 MB - -6.10.1. Instalação de Grep - - Prepare Grep para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [561]Seção 8.33.2, - “Conteúdo do Grep.†- -6.11. Gzip-1.11 - - O pacote Gzip contém aplicativos para compressão e descompressão de - arquivos. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 11 MB - -6.11.1. Instalação de Gzip - - Prepare Gzip para compilação: -./configure --prefix=/usr --host=$LFS_TGT - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [562]Seção 8.60.2, - “Conteúdo do Gzip.†- -6.12. Make-4.3 - - O pacote Make contém um aplicativo para controlar a geração de - executáveis e outros arquivos não fonte de um pacote a partir de - arquivos fonte. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 15 MB - -6.12.1. Instalação de Make - - Prepare Make para compilação: -./configure --prefix=/usr \ - --without-guile \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) - - O significado da nova opção de configure: - - --without-guile - Apesar de nós estarmos compilando cruzadamente, configure tenta - usar guile a partir do anfitrião de construção se encontrá-lo. - Isso provoca falha de compilação, de forma que essa chave impede - o uso de guile. - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [563]Seção 8.64.2, - “Conteúdo do Make.†- -6.13. Patch-2.7.6 - - O pacote Patch contém um aplicativo para modificar ou criar arquivos - por aplicação de um arquivo “patch†tipicamente criado pelo aplicativo - diff. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 12 MB - -6.13.1. Instalação de Patch - - Prepare Patch para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [564]Seção 8.65.2, - “Conteúdo do Patch.†- -6.14. Sed-4.8 - - O pacote Sed contém um editor de fluxo. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 20 MB - -6.14.1. Instalação de Sed - - Prepare Sed para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [565]Seção 8.29.2, - “Conteúdo do Sed.†- -6.15. Tar-1.34 - - O pacote Tar fornece a habilidade para criar arquivamentos tar bem como - realizar vários outros tipos de manipulação de arquivamento. Tar pode - ser usado em arquivamentos previamente criados para extrair arquivos, - para armazenar arquivos adicionais, ou para atualizar ou listar - arquivos que já foram armazenados. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 38 MB - -6.15.1. Instalação de Tar - - Prepare Tar para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [566]Seção 8.66.2, - “Conteúdo do Tar.†- -6.16. Xz-5.2.5 - - O pacote Xz contém aplicativos para compressão e descompressão de - arquivos. Ele fornece capacidades para os formatos de compressão lzma e - o mais novo xz. Comprimir arquivos de texto com xz gera uma melhor - percentagem de compressão que os tradicionais comandos gzip ou bzip2. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 15 MB - -6.16.1. Instalação de Xz - - Prepare Xz para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) \ - --disable-static \ - --docdir=/usr/share/doc/xz-5.2.5 - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [567]Seção 8.8.2, - “Conteúdo de Xz.†- -6.17. Binutils-2.38 - Passagem 2 - - O pacote Binutils contém um vinculador, um montador, e outras - ferramentas para manusear arquivos objeto. - Tempo aproximado de construção: 1,3 UPC - Espaço em disco exigido: 520 MB - -6.17.1. Instalação de Binutils - - Binutils entrega uma cópia desatualizada de libtool no tarball. Ela - carece de suporte de raiz de sistema de forma que os binários - produzidos serão erroneamente vinculados à bibliotecas originárias da - distribuição anfitriã. Contorne esse problema: -sed '6009s/$add_dir//' -i ltmain.sh - - Crie um diretório de construção separado novamente: -mkdir -v build -cd build - - Prepare Binutils para compilação: -../configure \ - --prefix=/usr \ - --build=$(../config.guess) \ - --host=$LFS_TGT \ - --disable-nls \ - --enable-shared \ - --disable-werror \ - --enable-64-bit-bfd - - O significado das novas opções de configure: - - --enable-shared - Constrói libbfd como uma biblioteca compartilhada. - - --enable-64-bit-bfd - Habilita suporte de 64 bits (em anfitriões com tamanhos de - palavra mais estreitos). Talvez não seja necessário em sistemas - de 64 bits, porém não causa dano. - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [568]Seção 8.18.2, - “Conteúdo de Binutils.†- -6.18. GCC-11.2.0 - Passagem 2 - - O pacote GCC contém a GNU compiler collection, o qual inclui os - compiladores C e C++. - Tempo aproximado de construção: 11 UPC - Espaço em disco exigido: 3,3 GB - -6.18.1. Instalação de GCC - - Como na primeira construção de GCC, os pacotes GMP, MPFR, e MPC são - exigidos. Desempacote os tarballs e mova-os para os nomes de diretório - exigidos: -tar -xf ../mpfr-4.1.0.tar.xz -mv -v mpfr-4.1.0 mpfr -tar -xf ../gmp-6.2.1.tar.xz -mv -v gmp-6.2.1 gmp -tar -xf ../mpc-1.2.1.tar.gz -mv -v mpc-1.2.1 mpc - - Se construindo em x86_64, então mude o nome padrão de diretório para - bibliotecas de 64 bits para “libâ€: -case $(uname -m) in - x86_64) - sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64 - ;; -esac - - Crie um diretório de construção separado novamente: -mkdir -v build -cd build - - Crie um link simbólico que permite que libgcc seja construída com - suporte posix de camadas: -mkdir -pv $LFS_TGT/libgcc -ln -s ../../../libgcc/gthr-posix.h $LFS_TGT/libgcc/gthr-default.h - - Antes de iniciar a construção de GCC, lembre-se de desconfigurar - quaisquer variáveis de ambiente que substituam os sinalizadores de - otimização padrão. - - Agora prepare GCC para compilação: -../configure \ - --build=$(../config.guess) \ - --host=$LFS_TGT \ - --prefix=/usr \ - CC_FOR_TARGET=$LFS_TGT-gcc \ - --with-build-sysroot=$LFS \ - --enable-initfini-array \ - --disable-nls \ - --disable-multilib \ - --disable-decimal-float \ - --disable-libatomic \ - --disable-libgomp \ - --disable-libquadmath \ - --disable-libssp \ - --disable-libvtv \ - --disable-libstdcxx \ - --enable-languages=c,c++ - - O significado das novas opções de configure: - - -with-build-sysroot=$LFS - Normalmente, usar --host garante que um compilador cruzado seja - usado para construir GCC, e que o compilador sabe que tem que - procurar por cabeçalhos e bibliotecas em $LFS. Porém, o sistema - de construção de GCC usa outras ferramentas, que não estão - cientes dessa localização. Essa chave é necessária para que elas - busquem os arquivos necessários em $LFS, e não no anfitrião. - - --enable-initfini-array - Essa opção é automaticamente habilitada quando da construção de - um compilador nativo com um compilador nativo em x86. Porém, - aqui, nós construímos com um compilador cruzado, de forma que - nós precisamos explicitamente configurar essa opção. - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Como um toque final, crie um link simbólico utilitário. Muitos - aplicativos e scripts executam cc em vez de gcc, o que é usado para - manter genéricos os aplicativos e, assim, utilizáveis em todos os tipos - de sistemas UNIX onde o compilador C de GNU nem sempre está instalado. - Executar cc deixa a(o) administradora(r) de sistema livre para decidir - qual compilador C instalar: -ln -sv gcc $LFS/usr/bin/cc - - Detalhes acerca deste pacote estão localizados em [569]Seção 8.26.2, - “Conteúdo de GCC.†- -Capítulo 7. Entrando em Chroot e Construindo Ferramentas Temporárias -Adicionais - -7.1. Introdução - - Este capítulo mostra como construir os últimos bits que faltam no - sistema temporário: as ferramentas necessárias para o maquinário de - construção de vários pacotes. Agora que todas as dependências - circulares foram resolvidas, um ambiente “chrootâ€, completamente - isolado do sistema operacional anfitrião (exceto pelo kernel em - execução), pode ser usado para a construção. - - Para operação adequada do ambiente isolado, alguma comunicação com o - kernel em execução precisa ser estabelecida. Isso é feito por meio dos - assim chamados Sistemas de Arquivos Virtuais de Kernel, que precisam - ser montados quando da entrada no ambiente chroot. Você talvez queira - verificar que eles estejam montados emitindo findmnt. - - Até [570]Seção 7.4, “Entrando no Ambiente Chrootâ€, os comandos precisam - ser executados como root, com a variável LFS configurada. Após a - entrada em chroot, todos os comandos são executados como root, por - sorte sem acesso ao OS do computador no qual que você construiu LFS. - Seja cuidadosa(o) de qualquer maneira, dado que é fácil destruir o - sistema LFS inteiro com comandos mau formados. - -7.2. Mudando Propriedade - -Nota - - Os comandos no resto deste livro precisam ser realizados enquanto - logada(o) como usuária(o) root e não mais como usuária(o) lfs. Também, - verifique duplamente que $LFS está configurada no ambiente do root. - - Atualmente, a hierarquia de diretório inteira em $LFS é de propriedade - da(o) usuária(o) lfs, uma(m) usuária(o) que existe somente no sistema - anfitrião. Se os diretórios e arquivos sob $LFS forem mantidos como - estão, então eles serão de propriedade de um ID de usuária(o) sem uma - conta correspondente. Isso é perigoso, pois uma conta de usuária(o) - criada posteriormente poderia receber esse mesmo ID de usuária(o) e se - tornaria proprietária(o) de todos os arquivos sob $LFS, dessa forma - expondo esses arquivos a possível manipulação maliciosa. - - Para endereçar esse problema, mude a propriedade dos diretórios $LFS/* - para usuária(o) root executando o seguinte comando: -chown -R root:root $LFS/{usr,lib,var,etc,bin,sbin,tools} -case $(uname -m) in - x86_64) chown -R root:root $LFS/lib64 ;; -esac - -7.3. Preparando Sistemas de Arquivos Virtuais de Kernel - - Vários sistemas de arquivos exportados pelo kernel são usados para - comunicar para e oriunda do próprio kernel. Esses sistemas de arquivos - são virtuais uma vez que nenhum espaço de disco é usado por eles. O - conteúdo dos sistemas de arquivos reside em memória. - - Comece criando diretórios nos quais os sistemas de arquivos serão - montados: -mkdir -pv $LFS/{dev,proc,sys,run} - -7.3.1. Criando Nós de Dispositivos Iniciais - - Quando o kernel inicializa o sistema, ele exige a presença de alguns - nós de dispositivos, em particular os dispositivos console e null. Os - nós de dispositivos precisam ser criados no disco rígido de modo que - eles estejam disponíveis antes que o kernel povoe /dev), e - adicionalmente quando Linux é iniciado com init=/bin/bash. Crie os - dispositivos executando os seguintes comandos: -mknod -m 600 $LFS/dev/console c 5 1 -mknod -m 666 $LFS/dev/null c 1 3 - -7.3.2. Montando e Povoando /dev - - O método recomendado de povoar o diretório /dev com dispositivos é - montar um sistema de arquivos virtuais (tal como tmpfs) no diretório - /dev, e permitir que os dispositivos sejam criados dinamicamente - naquele sistema de arquivos virtuais conforme eles sejam detectados ou - acessados. Criação de dispositivos é geralmente feita durante o - processo de inicialização por Udev. Uma vez que esse novo sistema ainda - não tem Udev e ainda não foi inicializado, é necessário montar e povoar - /dev manualmente. Isso é conseguido montando com bind o diretório /dev - do sistema anfitrião. Uma montagem com bind é um tipo especial de - montagem que permite que você crie um espelho de um diretório ou ponto - de montagem para alguma outra localização. Use o seguinte comando para - conseguir isso: -mount -v --bind /dev $LFS/dev - -7.3.3. Montando Sistemas de Arquivos Virtuais de Kernel - - Agora monte os restantes sistemas de arquivos virtuais de kernel: -mount -v --bind /dev/pts $LFS/dev/pts -mount -vt proc proc $LFS/proc -mount -vt sysfs sysfs $LFS/sys -mount -vt tmpfs tmpfs $LFS/run - - Em alguns sistemas anfitrião, /dev/shm é um link simbólico para - /run/shm. O tmpfs /run foi montado acima então, nesse caso, apenas um - diretório precisa ser criado. -if [ -h $LFS/dev/shm ]; then - mkdir -pv $LFS/$(readlink $LFS/dev/shm) -fi - -7.4. Entrando no Ambiente Chroot - - Agora que todos os pacotes que são exigidos para construir o resto das - ferramentas necessárias estão no sistema, é hora de entrar no ambiente - chroot para finalizar a instalação das restantes ferramentas - temporárias. Esse ambiente estará em uso também para a instalação do - sistema final. Como usuária(o) root, execute o seguinte comando para - entrar no ambiente que é, neste momento, povoado apenas com as - ferramentas temporárias: -chroot "$LFS" /usr/bin/env -i \ - HOME=/root \ - TERM="$TERM" \ - PS1='(lfs chroot) \u:\w\$ ' \ - PATH=/usr/bin:/usr/sbin \ - /bin/bash --login - - A opção -i dada para o comando env limpará todas as variáveis do - ambiente chroot. Depois disso, apenas as variáveis HOME, TERM, PS1, e - PATH são configuradas novamente. A construção TERM=$TERM configurará a - variável TERM dentro de chroot para o mesmo valor que fora de chroot. - Essa variável é necessária para aplicativos como vim e less operarem - adequadamente. Se outras variáveis forem desejadas, tais como CFLAGS ou - CXXFLAGS, então esse é um bom lugar para configurá-las novamente. - - Deste ponto em diante, não mais há necessidade de usar a variável LFS, - pois todo o trabalho estará restrito ao sistema de arquivos de LFS. - Isso acontece pois o shell Bash é informado que $LFS agora é o - diretório raiz (/). - - Perceba que /tools/bin não está no PATH. Isso significa que o conjunto - de ferramentas cruzadas não mais será usado no ambiente chroot. - - Note que o prompt de bash dirá I have no name! Isso é normal, pois o - arquivo /etc/passwd ainda não foi criado. - -Nota - - É importante que todos os comandos até o final deste capítulo e nos - capítulos seguintes sejam executados de dentro do ambiente chroot. Se - você deixar esse ambiente por qualquer razão (reiniciar, por exemplo), - então certifique-se que os sistemas de arquivos virtuais de kernel - estejam montados como explicado em [571]Seção 7.3.2, “Montando e - Povoando /dev†e [572]Seção 7.3.3, “Montando Sistemas de Arquivos - Virtuais de Kernel†e entre no chroot novamente antes de continuar a - instalação. - -7.5. Criando Diretórios - - É tempo de criar a estrutura completa no sistema de arquivos LFS. - - Crie alguns diretórios de nível de raiz que não estão no conjunto - limitado exigido nos capítulos anteriores emitindo o seguinte comando: - -Nota - - Alguns dos diretórios abaixo já foram criados anteriormente com - instruções explícitas ou quando da instalação de alguns pacotes. Elas - estão repetidas abaixo para completude. -mkdir -pv /{boot,home,mnt,opt,srv} - - Crie o conjunto exigido de subdiretórios abaixo do nível de raiz - emitindo os seguintes comandos: -mkdir -pv /etc/{opt,sysconfig} -mkdir -pv /lib/firmware -mkdir -pv /media/{floppy,cdrom} -mkdir -pv /usr/{,local/}{include,src} -mkdir -pv /usr/local/{bin,lib,sbin} -mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man} -mkdir -pv /usr/{,local/}share/{misc,terminfo,zoneinfo} -mkdir -pv /usr/{,local/}share/man/man{1..8} -mkdir -pv /var/{cache,local,log,mail,opt,spool} -mkdir -pv /var/lib/{color,misc,locate} - -ln -sfv /run /var/run -ln -sfv /run/lock /var/lock - -install -dv -m 0750 /root -install -dv -m 1777 /tmp /var/tmp - - Diretórios são, por padrão, criados com modo de permissão 755, mas isso - não é desejável para todos os diretórios. Nos comandos acima, duas - mudanças são feitas—uma para o diretório home da(o) usuária(o) root, e - outra para os diretórios para arquivos temporários. - - A primeira mudança de modo assegura que nem qualquer pessoa possa - entrar no diretório /root—o mesmo que uma(m) usuária(o) normal faria - com o diretório home dela ou dele. A segunda mudança de modo garante - que qualquer usuária(o) possa escrever nos diretórios /tmp e /var/tmp, - mas não possa remover deles os arquivos de outras(os) usuárias(os). - Essa última é proibida pelo assim chamado “sticky bitâ€, o bit mais alto - (1) na máscara de bits 1777. - -7.5.1. Nota de conformidade FHS - - A árvore de diretório é baseada no Padrão de Hierarquia de Sistema de - Arquivos (Filesystem Hierarchy Standard - FHS) (disponível em - [573]https://refspecs.linuxfoundation.org/fhs.shtml). O FHS também - especifica a existência opcional de alguns diretórios tais como - /usr/local/games e /usr/share/games. Nós criamos apenas os diretórios - que são necessários. Entretanto, sinta-se livre para criar esses - diretórios. - -7.6. Criando Arquivos Essenciais e Links Simbólicos - - Historicamente, o Linux mantém uma lista dos sistemas de arquivos - montados no arquivo /etc/mtab. Kernels modernos mantém essa lista - internamente e expõem ela para a(o) usuária(o) via sistema de arquivos - /proc. Para satisfazer utilitários que esperam a presença de /etc/mtab, - crie o seguinte link simbólico: -ln -sv /proc/self/mounts /etc/mtab - - Crie um arquivo /etc/hosts básico para ser referenciado em algumas - suítes de teste, e em um dos arquivos de configuração do Perl também: -cat > /etc/hosts << EOF -127.0.0.1 localhost $(hostname) -::1 localhost -EOF - - Para que a(o) usuária(o) root seja capaz de logar e para que o nome - “root†seja reconhecido, precisa existir entradas relevantes nos - arquivos /etc/passwd e /etc/group. - - Crie o arquivo /etc/passwd executando o seguinte comando: -cat > /etc/passwd << "EOF" -root:x:0:0:root:/root:/bin/bash -bin:x:1:1:bin:/dev/null:/usr/bin/false -daemon:x:6:6:Daemon User:/dev/null:/usr/bin/false -messagebus:x:18:18:D-Bus Message Daemon User:/run/dbus:/usr/bin/false -uuidd:x:80:80:UUID Generation Daemon User:/dev/null:/usr/bin/false -nobody:x:99:99:Unprivileged User:/dev/null:/usr/bin/false -EOF - - A senha atual para root será configurada mais tarde. - - Crie o arquivo /etc/group executando o seguinte comando: -cat > /etc/group << "EOF" -root:x:0: -bin:x:1:daemon -sys:x:2: -kmem:x:3: -tape:x:4: -tty:x:5: -daemon:x:6: -floppy:x:7: -disk:x:8: -lp:x:9: -dialout:x:10: -audio:x:11: -video:x:12: -utmp:x:13: -usb:x:14: -cdrom:x:15: -adm:x:16: -messagebus:x:18: -input:x:24: -mail:x:34: -kvm:x:61: -uuidd:x:80: -wheel:x:97: -nogroup:x:99: -users:x:999: -EOF - - Os grupos criados não são parte de qualquer padrão—eles são grupos - decididos em parte pelas exigências da configuração de Udev no Capítulo - 9, e em parte pelas convenções comuns empregadas por um número de - distribuições Linux existentes. Em adição, algumas suítes de teste - dependem de usuárias(os) ou grupos específicos. A Base Padrão Linux - (Linux Standard Base - LSB, disponível em - [574]http://refspecs.linuxfoundation.org/lsb.shtml) apenas recomenda - que, além do grupo root com um ID de Grupo (GID) de 0, um grupo bin com - um GID de 1 esteja presente. Todos os outros nomes de grupo e GIDs - podem ser escolhidos livremente pela(o) administradora(r) de sistema - uma vez que aplicativos bem escritos não dependem de números de GID, - mas sim usam o nome do grupo. - - Alguns testes em [575]Capítulo 8 precisam de uma(m) usuária(o) regular. - Nós adicionamos essa(e) usuária(o) aqui e deletamos essa conta ao final - daquele capítulo. -echo "tester:x:101:101::/home/tester:/bin/bash" >> /etc/passwd -echo "tester:x:101:" >> /etc/group -install -o tester -d /home/tester - - Para remover o prompt “I have no name!â€, inicie um novo shell. Uma vez - que os arquivos /etc/passwd e /etc/group foram criados, resolução de - nome de usuária(o) e nome de grupo agora funcionará: -exec /usr/bin/bash --login - - Os aplicativos login, agetty, e init (e outros) usam um número de - arquivos de log para registrar informação tais como quem esteve - logada(o) no sistema e quando. Entretanto, esses aplicativos não - escreverão nos arquivos de log se eles já não existirem. Inicialize os - arquivos de log e dê a eles permissões adequadas: -touch /var/log/{btmp,lastlog,faillog,wtmp} -chgrp -v utmp /var/log/lastlog -chmod -v 664 /var/log/lastlog -chmod -v 600 /var/log/btmp - - O arquivo /var/log/wtmp registra todos os logins e logouts. O arquivo - /var/log/lastlog registra quando cada usuária(o) logou pela última vez. - O arquivo /var/log/faillog registra tentativas de login falhas. O - arquivo /var/log/btmp registra tentativas de login inválidas. - -Nota - - O arquivo /run/utmp registra as(os) usuárias(os) que estão atualmente - logadas(os). Esse arquivo é criado dinamicamente nos scripts de - inicialização. - -7.7. Libstdc++ oriundo de GCC-11.2.0, Passagem 2 - - Quando da construção de [576]gcc-pass2 nós tivemos que adiar a - instalação da biblioteca padrão C++, pois nenhum compilador adequado - estava disponível para compilá-la. Nós não poderíamos usar o compilador - construído naquela seção, por causa de que ele é um compilador nativo e - não deveria ser usado do lado de fora do chroot e riscos de poluir as - bibliotecas com alguns componentes do anfitrião. - Tempo aproximado de construção: 0,8 UPC - Espaço em disco exigido: 1,1 GB - -7.7.1. Instalação de Libstdc++ Alvo - -Nota - - Libstdc++ é parte dos fontes de GCC. Você deveria primeiro desempacotar - o tarball de GCC e mudar para o diretório gcc-11.2.0. - - Crie um link que existe quando da construção de libstdc++ na árvore de - gcc: -ln -s gthr-posix.h libgcc/gthr-default.h - - Crie um diretório de construção separado para libstdc++ e entre nele: -mkdir -v build -cd build - - Prepare libstdc++ para compilação: -../libstdc++-v3/configure \ - CXXFLAGS="-g -O2 -D_GNU_SOURCE" \ - --prefix=/usr \ - --disable-multilib \ - --disable-nls \ - --host=$(uname -m)-lfs-linux-gnu \ - --disable-libstdcxx-pch - - O significado das opções de configure: - - CXXFLAGS="-g -O2 -D_GNU_SOURCE" - Esses sinalizadores são passados pelo Makefile de nível de topo - quando da feitura de uma construção completa de GCC. - - --host=$(uname -m)-lfs-linux-gnu - Nós temos que imitar o que teria acontecido se esse pacote fosse - construído como parte de uma construção completa de compilador. - Essa chave teria sido passada para configure pelo maquinário de - construção do GCC. - - --disable-libstdcxx-pch - Essa chave evita a instalação de arquivos include - pré-compilados, os quais não são necessários neste estágio. - - Compile libstdc++ executando: -make - - Instale a biblioteca: -make install - - Detalhes acerca deste pacote estão localizados em [577]Seção 8.26.2, - “Conteúdo de GCC.†- -7.8. Gettext-0.21 - - O pacote Gettext contém utilitários para internacionalização e - localização. Eles permitem que aplicativos sejam compilados com Suporte - ao Idioma Nativo (Native Language Support - NLS), habilitando-os a - emitir mensagens no idioma nativo da(o) usuária(o). - Tempo aproximado de construção: 1,6 UPC - Espaço em disco exigido: 280 MB - -7.8.1. Instalação de Gettext - - Para nosso conjunto temporário de ferramentas, nós apenas precisamos - instalar três aplicativos originários de Gettext. - - Prepare Gettext para compilação: -./configure --disable-shared - - O significado da opção de configure: - - --disable-shared - Nós não precisamos instalar quaisquer das bibliotecas - compartilhadas de Gettext nesta ocasião, assim não existe - necessidade de construí-las. - - Compile o pacote: -make - - Instale os aplicativos msgfmt, msgmerge, e xgettext: -cp -v gettext-tools/src/{msgfmt,msgmerge,xgettext} /usr/bin - - Detalhes acerca deste pacote estão localizados em [578]Seção 8.31.2, - “Conteúdo do Gettext.†- -7.9. Bison-3.8.2 - - O pacote Bison contém um gerador de analisador. - Tempo aproximado de construção: 0,3 UPC - Espaço em disco exigido: 50 MB - -7.9.1. Instalação de Bison - - Prepare Bison para compilação: -./configure --prefix=/usr \ - --docdir=/usr/share/doc/bison-3.8.2 - - O significado da nova opção de configure: - - --docdir=/usr/share/doc/bison-3.8.2 - Isso diz ao sistema de construção para instalar documentação de - bison em um diretório versionado. - - Compile o pacote: -make - - Instale o pacote: -make install - - Detalhes acerca deste pacote estão localizados em [579]Seção 8.32.2, - “Conteúdo do Bison.†- -7.10. Perl-5.34.0 - - O pacote Perl contém o Practical Extraction and Report Language. - Tempo aproximado de construção: 1,6 UPC - Espaço em disco exigido: 272 MB - -7.10.1. Instalação de Perl - - Prepare Perl para compilação: -sh Configure -des \ - -Dprefix=/usr \ - -Dvendorprefix=/usr \ - -Dprivlib=/usr/lib/perl5/5.34/core_perl \ - -Darchlib=/usr/lib/perl5/5.34/core_perl \ - -Dsitelib=/usr/lib/perl5/5.34/site_perl \ - -Dsitearch=/usr/lib/perl5/5.34/site_perl \ - -Dvendorlib=/usr/lib/perl5/5.34/vendor_perl \ - -Dvendorarch=/usr/lib/perl5/5.34/vendor_perl - - O significado das novas opções de Configure: - - -des - Essa é uma combinação de três opções: -d usa padrões para todos - os itens; -e assegura completamento de todas as tarefas; -s - silencia saída não essencial. - - Compile o pacote: -make - - Instale o pacote: -make install - - Detalhes acerca deste pacote estão localizados em [580]Seção 8.41.2, - “Conteúdo do Perl.†- -7.11. Python-3.10.2 - - O pacote Python 3 contém o ambiente Python de desenvolvimento. Ele é - útil para programação orientada a objetos, escrita de scripts, - prototipagem de aplicativos grandes, ou desenvolvimento de aplicações - inteiras. - Tempo aproximado de construção: 1,2 UPC - Espaço em disco exigido: 359 MB - -7.11.1. Instalação de Python - -Nota - - Existem dois arquivos de pacotes cujos nomes se iniciam com “pythonâ€. - Aquele a se extrair a partir dele é Python-3.10.2.tar.xz (perceba a - primeira letra maiúscula). - - Prepare Python para compilação: -./configure --prefix=/usr \ - --enable-shared \ - --without-ensurepip - - O significado da opção de configure: - - --enable-shared - Essa chave impede instalação de bibliotecas estáticas. - - --without-ensurepip - Essa chave desabilita o instalador de pacote de Python, o qual - não é necessário neste estágio. - - Compile o pacote: -make - -Nota - - Alguns módulos de Python 3 não podem ser construídos agora, por causa - de que as dependências não estão instaladas ainda. O sistema de - construção ainda tenta construí-las, entretanto, de forma que a - compilação de alguns arquivos falhará e a mensagem de compilador talvez - pareça indicar “fatal errorâ€. A mensagem deveria ser ignorada. Apenas - tenha certeza de que o comando de nível de topo make não tenha falhado. - Os módulos opcionais não são necessários agora e eles serão construídos - em [581]Capítulo 8. - - Instale o pacote: -make install - - Detalhes acerca deste pacote estão localizados em [582]Seção 8.50.2, - “Conteúdo do Python 3.†- -7.12. Texinfo-6.8 - - O pacote Texinfo contém aplicativos para leitura, escrita e conversão - de páginas info. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 109 MB - -7.12.1. Instalação de Texinfo - - Primeiro, conserte um problema ao construir o pacote com Glibc-2.34 ou - posterior: -sed -e 's/__attribute_nonnull__/__nonnull/' \ - -i gnulib/lib/malloc/dynarray-skeleton.c - - Prepare Texinfo para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Instale o pacote: -make install - - Detalhes acerca deste pacote estão localizados em [583]Seção 8.67.2, - “Conteúdo do Texinfo.†- -7.13. Util-linux-2.37.4 - - O pacote Util-linux contém diversos aplicativos utilitários. - Tempo aproximado de construção: 0,7 UPC - Espaço em disco exigido: 129 MB - -7.13.1. Instalação de Util-linux - - O FHS recomenda usar o diretório /var/lib/hwclock em vez do usual - diretório /etc como a localização para o arquivo adjtime. Crie esse - diretório com: -mkdir -pv /var/lib/hwclock - - Prepare Util-linux para compilação: -./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ - --libdir=/usr/lib \ - --docdir=/usr/share/doc/util-linux-2.37.4 \ - --disable-chfn-chsh \ - --disable-login \ - --disable-nologin \ - --disable-su \ - --disable-setpriv \ - --disable-runuser \ - --disable-pylibmount \ - --disable-static \ - --without-python \ - runstatedir=/run - - O significado das opções de configure: - - ADJTIME_PATH=/var/lib/hwclock/adjtime - Isso configura a localização do arquivo gravando informação - acerca do relógio de hardware de acordo com o FHS. Isso não é - estritamente necessário para essa ferramenta temporária, porém - impede a criação de um arquivo em outra localização, o qual não - seria sobrescrito ou removido quando da construção do pacote - util-linux final. - - --libdir=/usr/lib - Essa chave assegura que os links simbólicos .so apontem para o - arquivo de biblioteca compartilhada no mesmo diretório - (/usr/lib) diretamente. - - --disable-* - Essas chaves evitam avisos acerca de componentes de construção - que exigem pacotes que não estão no LFS ou ainda não estão - instalados. - - --without-python - Essa chave desabilita o uso de Python. Ela evita tentar - construir ligações desnecessárias. - - runstatedir=/run - Essa chave configura corretamente a localização do soquete usado - por uuidd e libuuid. - - Compile o pacote: -make - - Instale o pacote: -make install - - Detalhes acerca deste pacote estão localizados em [584]Seção 8.72.2, - “Conteúdo do Util-linux.†- -7.14. Limpando e Salvando o Sistema Temporário - -7.14.1. Limpando - - Primeiro, remova a documentação atualmente instalada para evitar que - ela termine no sistema final, e para salvar cerca de 35 MB: -rm -rf /usr/share/{info,man,doc}/* - - Segundo, os arquivos .la de libtool somente são úteis quando vinculados - com bibliotecas estáticas. Eles são desnecessários e potencialmente - danosos quando do uso de bibliotecas compartilhadas dinâmicas, - especialmente quando do uso de sistemas de construção não autotools. - Enquanto ainda no chroot, remova aqueles arquivos agora: -find /usr/{lib,libexec} -name \*.la -delete - - O tamanho atual de sistema é agora de cerca de 3 GB, entretanto o - diretório /tools não mais é necessário. Ele usa cerca de 1 GB de espaço - de disco. Delete ele agora: -rm -rf /tools - -7.14.2. Cópia de segurança - - Neste ponto os aplicativos e bibliotecas essenciais foram criados e seu - sistema LFS atual está em um bom estado. Seu sistema pode agora ser - copiado para posterior reuso. Em caso de falhas fatais nos capítulos - subsequentes, frequentemente acontece que remover tudo e começar de - novo (mais cuidadosamente) é a melhor opção para recuperar. - Infelizmente, todos os arquivos temporários serão removidos, também. - Para evitar desperdiçar tempo extra para refazer tudo o que foi - construído com sucesso, criar uma cópia de segurança do sistema LFS - atual talvez se prove útil. - -Nota - - Todos os passos restantes nesta seção são opcionais. Apesar disso, tão - logo você comece a instalar pacotes em [585]Capítulo 8, os arquivos - temporários serão sobrescritos. Assim, talvez seja uma boa ideia fazer - uma cópia de segurança do sistema atual conforme descrito abaixo. - - Os passos seguintes são realizados a partir do lado de fora do ambiente - chroot. Isso significa, você tem de deixar o ambiente chroot primeiro - antes de continuar. A razão para isso é para conseguir acesso a locais - do sistema de arquivos do lado de fora do ambiente chroot para - armazenar/ler o arquivamento de cópia de segurança o qual não deveria - ser colocado dentro da hierarquia de $LFS por razões de segurança. - - Se você decidiu fazer uma cópia de segurança, então deixe o ambiente - chroot: -exit - -Importante - - Todas as instruções seguintes são executadas por root em seu sistema - anfitrião. Tome cuidado extra acerca dos comandos que você vai - executar, uma vez que erros aqui podem modificar seu sistema anfitrião. - Esteja ciente de que a variável de ambiente LFS está configurada para - usuária(o) lfs por padrão, mas talvez não esteja configurada para root. - - Sempre que comandos forem ser executados por root, tenha certeza de que - você configurou LFS. - - Isso foi discutido em [586]Seção 2.6, “Configurando a Variável $LFSâ€. - - Antes de fazer uma cópia de segurança, desmonte os sistemas de arquivos - virtuais: -umount $LFS/dev/pts -umount $LFS/{sys,proc,run,dev} - - Tenha certeza de que tem pelo menos 1 GB de espaço de disco livre (os - tarballs de fonte serão incluídos no arquivamento de cópia de - segurança) no sistema de arquivos contendo diretório onde você criar o - arquivamento de cópia de segurança. - - Note que as instruções abaixo especificam o diretório home da(o) - usuária(o) root do sistema anfitrião, o qual tipicamente é encontrado - no sistema de arquivos raiz. - - Substitua $HOME por um diretório da sua escolha se você não quiser ter - a cópia de segurança armazenada no diretório home de root. - - Crie o arquivamento de cópia de segurança executando o seguinte - comando: - -Nota - - Por causa de que o arquivamento de cópia de segurança é comprimido, - dura um tempo relativamente longo (mais de 10 minutos) mesmo em um - sistema razoavelmente rápido. -cd $LFS -tar -cJpf $HOME/lfs-temp-tools-11.1.tar.xz . - -Nota - - Se continuar para o capítulo 8, então não se esqueça de entrar - novamente no ambiente chroot conforme explanado na caixa “Importante†- abaixo. - -7.14.3. Restauro - - No caso de alguns erros tiverem sido feitos e você precisar começar de - novo, você pode usar essa cópia de segurança para restaurar o sistema e - economizar algum tempo de recuperação. Desde que os fontes estão - localizados sob $LFS, eles são incluídos no arquivamento de cópia de - segurança também, de forma que eles não precisam ser baixados - novamente. Após verificar que $LFS está configurada adequadamente, - restaure a cópia de segurança executando os seguintes comandos: - -Atenção - - Os seguintes comandos são extremamente perigosos. Se você executar rm - -rf ./* como a(o) usuária(o) root e você não mudar para o diretório - $LFS ou a variável de ambiente LFS não estiver configurada para a(o) - usuária(o) root, então isso destruirá seu sistema anfitrião inteiro. - VOCÊ ESTà AVISADA(O). -cd $LFS -rm -rf ./* -tar -xpf $HOME/lfs-temp-tools-11.1.tar.xz - - Novamente, verifique duplamente se o ambiente foi configurado - adequadamente e continue construindo o resto do sistema. - -Importante - - Se você deixou o ambiente chroot para criar uma cópia de segurança ou - reiniciar a construção usando um restauro, então lembre-se de verificar - se os sistemas de arquivos virtuais ainda estão montados (findmnt | - grep $LFS). Se eles não estiverem montados, então remonte-os agora - conforme descrito em [587]Seção 7.3, “Preparando Sistemas de Arquivos - Virtuais de Kernel†e entre novamente no ambiente chroot (veja - [588]Seção 7.4, “Entrando no Ambiente Chrootâ€) antes de continuar. - -Parte IV. Construindo o Sistema LFS - -Capítulo 8. Instalando Aplicativos Básicos de Sistema - -8.1. Introdução - - Neste capítulo, nós começamos a construir o sistema LFS pra valer. - - A instalação desse software é simples. 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 é saber para que cada pacote é usado e - porque você (ou o sistema) talvez precise dele. - - Nós não recomendamos usar otimizações. Elas podem fazer com que um - aplicativo execute ligeiramente mais rápido, mas elas também talvez - causem dificuldades de compilação e problemas quando executar o - aplicativo. Se um pacote se recusar a compilar quando usar otimização, - então tente compilá-lo sem otimização e veja se isso conserta o - problema. Mesmo se o pacote compilar quando usar otimização, existe o - risco de que ele talvez tenha sido compilado incorretamente devido às - complexas interações entre o código e ferramentas de construção. Note - também que as opções -march e -mtune usando valores não especificados - no livro não foram testadas. Isso talvez cause problemas com os pacotes - do conjunto de ferramentas (Binutils, GCC e Glibc). Os pequenos ganhos - potenciais alcançados usando otimizações de compilador frequentemente - são superados pelos riscos. Construtoras(es) de primeira vez de LFS são - encorajadas(os) a construir sem otimizações personalizadas. O sistema - subsequente ainda executará muito rápido e será estável ao mesmo tempo. - - Antes das instruções de instalação, cada página de instalação fornece - informação acerca 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 - bibliotecas (juntamente com breves descrições) que o pacote instala. - -Nota - - Os valores de UPC e espaço de disco exigido incluem dados de suíte de - teste para todos os pacotes aplicáveis em [589]Capítulo 8. Os valores - de UPC foram calculados usando um núcleo sozinho de CPU (-j1) para - todas as operações. - -8.1.1. Acerca de bibliotecas - - Em geral, as(os) editoras(es) de LFS desencorajam construir e instalar - bibliotecas estáticas. O propósito original para a maioria das - bibliotecas estáticas tem sido tornado obsoleto 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 todos os - aplicativos que usam a biblioteca estática precisarão ser vinculados de - novo à 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) talvez nem mesmo sejam conhecidos. - - Nos procedimentos neste capítulo, nós removemos ou desabilitamos a - instalação da maioria das bibliotecas estáticas. Usualmente isso é - feito passando-se uma opção --disable-static para 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 - essencial para o processo geral de construção de pacote. - - Para uma discussão mais completa acerca de bibliotecas, veja-se a - discussão [590]Bibliotecas: Estática ou compartilhada? no livro BLFS. - -8.2. Gerenciamento de Pacote - - Gerenciamento de Pacote é uma adição frequentemente solicitada ao Livro - LFS. Um Gerenciador de Pacote permite monitorar a instalação de - arquivos tornando fácil remover e atualizar pacotes. Assim como os - arquivos binários e bibliotecas, um gerenciador de pacote lidará com a - instalação de arquivos de configuração. Antes que você comece a - questionar, NÃO—esta seção não falará nem recomendará qualquer - gerenciador de pacote em particular. O que ela fornece é um resumo - acerca das técnicas mais populares e como elas funcionam. O gerenciador - de pacote perfeito para você talvez esteja entre essas técnicas ou - talvez seja uma combinação de duas ou mais dessas técnicas. Esta seção - menciona brevemente problemas que talvez surjam quando da atualização - de pacotes. - - Algumas razões porque nenhum gerenciador de pacote é mencionado em LFS - ou BLFS incluem: - * Lidar com gerenciamento de pacote retira o foco das finalidades - desses livros—ensinar como um sistema Linux é construído. - * Existem múltiplas soluções para gerenciamento de pacote, cada uma - tendo seus pontos fortes e fracos. Incluir uma que satisfaça todas - as audiências é difícil. - - Existem algumas dicas escritas no tópico acerca de gerenciamento de - pacote. Visite o [591]Hints Project e veja se uma delas se adéqua às - suas necessidades. - -8.2.1. Problemas de Atualização - - Um Gerenciador de Pacote torna fácil atualizar para versões mais novas - quando elas são liberadas. Geralmente as instruções nos livros LFS e - BLFS podem ser usadas para atualizar para versões mais novas. Aqui - estão alguns pontos que você deveria estar ciente quando da atualização - de pacotes, especialmente em um sistema em execução. - * Se o kernel Linux precisar ser atualizado (por exemplo, de 5.10.17 - para 5.10.18 ou 5.11.1), então nada mais precisa ser reconstruído. - O sistema seguirá funcionando bem graças à borda bem definida entre - kernel e espaço de usuária(o). Especificamente, os cabeçalhos de - API de Linux não precisam ser (e não deveriam ser, veja-se o - próximo item) atualizados juntamente com o kernel. Você precisará - reiniciar seu sistema para usar o kernel atualizado. - * Se os cabeçalhos de API de Linux ou Glibc precisarem ser - atualizados para uma versão mais nova, (por exemplo, de glibc-2.31 - para glibc-2.32), então é mais seguro reconstruir LFS. Ainda que - você talvez seja capaz de reconstruir todos os pacotes na ordem de - dependência deles, nós não recomendamos isso. - * Se um pacote contendo uma biblioteca compartilhada for atualizado, - e se o nome da biblioteca mudar, então quaisquer pacotes - dinamicamente vinculados à biblioteca precisam ser recompilados com - a finalidade de vincular à biblioteca mais nova. (Note que não - existe correlação entre a versão de pacote e o nome da biblioteca). - Por exemplo, considere um pacote foo-1.2.3 que instala uma - biblioteca compartilhada com nome libfoo.so.1. Se você atualizar o - pacote para uma versão mais nova foo-1.2.4 que instala uma - biblioteca compartilhada com nome libfoo.so.2. Nesse caso, - quaisquer pacotes que estiverem dinamicamente vinculados à - libfoo.so.1 precisam ser recompilados para vincular à libfoo.so.2 - com a finalidade de usar a nova versão de biblioteca. Você não - deveria remover as bibliotecas anteriores a menos que todos os - pacotes dependentes sejam recompilados. - * Se um pacote contendo uma biblioteca compartilhada for atualizado, - e o nome da biblioteca não mudar, porém o número de versão do - arquivo de biblioteca decrescer (por exemplo, o nome da biblioteca - é mantido como libfoo.so.1, porém o nome do arquivo de biblioteca é - modificado de libfoo.so.1.25 para libfoo.so.1.24), então você - deveria remover o arquivo de biblioteca originário da versão - previamente instalada (libfoo.so.1.25 no caso). Ou, uma execução de - ldconfig (por você mesmo usando uma linha de comando, ou pela - instalação de algum pacote) reconfigurará o link simbólico - libfoo.so.1 para apontar para o antigo arquivo de biblioteca, pois - ele aparenta ter uma versão “mais novaâ€, uma vez que seu número de - versão é mais largo. Essa situação talvez aconteceu se você teve - que desatualizar um pacote, ou o pacote muda repentinamente o - esquema de versionamento de arquivos de biblioteca. - * Se um pacote contendo uma biblioteca compartilhada for atualizado, - e o nome da biblioteca não mudar, porém um problema severo - (especialmente, uma vulnerabilidade de segurança) for corrigido, - então todos os aplicativos em execução vinculados à biblioteca - compartilhada deveriam ser reiniciados. O seguinte comando, - executado como root após atualização, listará o que está usando as - versões antigas daquelas bibliotecas (substitua libfoo com o nome - da biblioteca): -grep -l -e 'libfoo.*deleted' /proc/*/maps | - tr -cd 0-9\\n | xargs -r ps u - Se OpenSSH estiver sendo usado para acessar o sistema e ele estiver - vinculado à biblioteca atualizada, então você precisa reiniciar o - serviço sshd, então deslogar-se, logar-se novamente, e reexecutar - aquele comando para confirmar que nada ainda está usando as - bibliotecas deletadas. - * Se um binário ou uma biblioteca compartilhada for sobrescrito, - então os processos usando o código ou dados no binário ou - biblioteca talvez quebrem. A maneira correta para atualizar um - binário ou uma biblioteca compartilhada sem causar quebra ao - processo é removê-lo primeiro, então instalar a versão nova na - posição. O comando install fornecido por Coreutils já implementou - isso e a maioria dos pacotes usa ele para instalar binários e - bibliotecas. Isso significa que você não estaria encrencada(o) por - esse problema a maior parte do tempo. Entretanto, o processo de - instalação de alguns pacotes (notadamente Mozilla JS em BLFS) - apenas sobrescreve o arquivo se ele existir e causa uma quebra, de - forma que é mais seguro salvar seu trabalho e fechar processos em - execução desnecessários antes de atualizar um pacote. - -8.2.2. Técnicas de Gerenciamento de Pacote - - As seguintes são algumas técnicas comuns de gerenciamento de pacote. - Antes de se decidir acerca de um gerenciador de pacote, pesquise sobre - as várias técnicas, particularmente os pontos fracos do esquema em - particular. - -8.2.2.1. Está Tudo na Minha Cabeça! - - Sim, isso é uma técnica de gerenciamento de pacote. Algumas pessoas não - encontram a necessidade para um gerenciador de pacote, pois elas - conhecem os pacotes intimamente e sabem quais arquivos estão instalados - por cada pacote. Algumas(ns) usuárias(os) também não precisam de - qualquer gerenciamento de pacote, pois elas(es) planejam reconstruir o - sistema inteiro quando um pacote for mudado. - -8.2.2.2. Instalação em Diretórios Separados - - Esse é um gerenciamento de pacote simplista que não necessita de - qualquer pacote extra para gerenciar as instalações. Cada pacote é - instalado em um diretório separado. Por exemplo, o pacote foo-1.1 é - instalado em /usr/pkg/foo-1.1 e um link simbólico é feito de - /usr/pkg/foo para /usr/pkg/foo-1.1. Quando da instalação de uma nova - versão foo-1.2, ela é instalada em /usr/pkg/foo-1.2 e o link simbólico - anterior é substituído por um link simbólico para a nova versão. - - Variáveis de ambiente tais como PATH, LD_LIBRARY_PATH, MANPATH, - INFOPATH e CPPFLAGS precisam ser expandidas para incluir /usr/pkg/foo. - Para mais que uns poucos pacotes, esse esquema se torna ingerenciável. - -8.2.2.3. Gerenciamento de Pacote Estilo Link Simbólico - - Essa é uma variação da técnica de gerenciamento de pacote anterior. - Cada pacote é instalado similar ao esquema anterior. Mas, em vez de - fazer o link simbólico, cada arquivo é simbolicamente vinculado à - hierarquia /usr. Isso remove a necessidade de expandir as variáveis de - ambiente. Ainda que os links simbólicos possam ser criados pela(o) - usuária(o) para automatizar a criação, muitos gerenciadores de pacote - tem sido escritos usando essa abordagem. Alguns dos populares inclui - Stow, Epkg, Graft, e Depot. - - A instalação precisa ser falseada, de modo que o pacote pense que está - instalado em /usr, ainda que, na realidade, ele esteja instalado na - hierarquia /usr/pkg. Instalar dessa maneira geralmente não é uma tarefa - trivial. Por exemplo, considere que você está instalando um pacote - libfoo-1.1. As seguintes instruções talvez não instalem adequadamente o - pacote: -./configure --prefix=/usr/pkg/libfoo/1.1 -make -make install - - A instalação funcionará, mas os pacotes dependentes talvez não se - vinculem à libfoo conforme você esperaria. Se você compilar um pacote - que vincula à libfoo, então você talvez note que ele está vinculado a - /usr/pkg/libfoo/1.1/lib/libfoo.so.1 em vez de /usr/lib/libfoo.so.1 como - você esperaria. A abordagem correta é usar a estratégia DESTDIR para - falsear a instalação do pacote. Essa abordagem funciona como se segue: -./configure --prefix=/usr -make -make DESTDIR=/usr/pkg/libfoo/1.1 install - - A maioria dos pacotes suporta essa abordagem, mas existem alguns que - não. Para os pacotes não conformes, você talvez ou precise instalar - manualmente o pacote, ou você talvez ache que é mais fácil instalar - alguns pacotes problemáticos em /opt. - -8.2.2.4. Baseado em Marca Temporal - - Nessa técnica, um arquivo é marcado temporalmente antes da instalação - do pacote. Após a instalação, um simples uso do comando find com as - opções apropriadas pode gerar um registro de todos os arquivos - instalados após o arquivo de marca temporal ser criado. Um gerenciador - de pacote escrito com essa abordagem é instalação-registro. - - Ainda que esse esquema tenha a vantagem de ser simples, ele tem duas - desvantagens. Se, durante a instalação, os arquivos forem instalados - com qualquer marca temporal outra que a hora atual, então aqueles - arquivos não serão rastreados pelo gerenciador de pacote. Além disso, - esse esquema pode ser usado apenas quando um pacote for instalado de - cada vez. Os registros não são confiáveis se dois pacotes estão sendo - instalados em dois consoles. - -8.2.2.5. Scripts de Rastreamento de Instalação - - Nessa abordagem, os comandos que os scripts de instalação realizam são - gravados. Existem duas técnicas que se pode usar: - - A variável de ambiente LD_PRELOAD pode ser configurada para apontar - para uma biblioteca a ser pré-carregada antes da instalação. Durante a - instalação, essa biblioteca rastreia os pacotes que estão sendo - instalados anexando-se a vários executáveis tais como cp, install, mv e - rastreando as chamadas de sistema que modificam o sistema de arquivos. - Para que essa abordagem funcione, todos os executáveis precisam ser - dinamicamente vinculados sem o bit suid ou sgid. Pré-carregar a - biblioteca talvez cause alguns efeitos colaterais indesejados durante a - instalação. Portanto, aconselha-se que se realize alguns testes para - garantir que o gerenciador de pacote não quebre nada e registre todos - os arquivos adequados. - - A segunda técnica é usar strace, que registra todas as chamadas de - sistema feitas durante a execução dos scripts de instalação. - -8.2.2.6. Criando Arquivamentos de Pacote - - Nesse esquema, a instalação do pacote é falseada em uma árvore separada - como descrito no gerenciamento de pacote estilo Link Simbólico. Após a - instalação, um arquivamento de pacote é criado usando os arquivos - instalados. Esse arquivamento é então usado para instalar o pacote - tanto na máquina local quanto pode até ser usado para instalar o pacote - em outras máquinas. - - Essa abordagem é usada pela maioria dos gerenciadores de pacote - encontrados nas distribuições comerciais. Exemplos de gerenciadores de - pacote que seguem essa abordagem são RPM (o qual, incidentalmente, é - exigido pela [592]Linux Standard Base Specification), pkg-utils, apt do - Debian, e sistema Portage do Gentoo. Uma dica descrevendo como adotar - esse estilo de gerenciamento de pacote para sistemas LFS está - localizada em - [593]https://www.linuxfromscratch.org/hints/downloads/files/fakeroot.tx - t. - - Criação de arquivos pacote que incluem informação de dependência é - complexa e está além do escopo de LFS. - - Slackware usa um sistema baseado em tar para arquivamentos de pacote. - Esse sistema intencionalmente não manuseia dependências de pacote como - gerenciadores de pacote mais complexos fazem. Para detalhes de - gerenciamento de pacote Slackware, veja - [594]http://www.slackbook.org/html/package-management.html. - -8.2.2.7. Gerenciamento Baseado em Usuária(o) - - Esse esquema, único para LFS, foi concebido por Matthias Benkmann, e - está disponível a partir do [595]Hints Project. Nesse esquema, cada - pacote é instalado como uma(m) usuária(o) separada(o) nos locais - padrão. Arquivos pertencentes a um pacote são facilmente identificados - checando o ID de usuária(o). As características e deficiências dessa - abordagem são muito complexas para serem descritas nesta seção. Para os - detalhes, por favor veja a dica em - [596]https://www.linuxfromscratch.org/hints/downloads/files/more_contro - l_and_pkg_man.txt. - -8.2.3. Implantando LFS em Múltiplos Sistemas - - Uma das vantagens de um sistema LFS é a de que não existem arquivos que - dependam da posição de arquivos em um sistema de disco. Clonar uma - construção LFS para outro computador com a mesma arquitetura que a do - sistema base é tão simples quanto usar tar na partição LFS que contém o - diretório raiz (cerca de 250MB descomprimido para uma construção base - LFS), copiando aquele arquivo via transferência de rede ou CD-ROM para - o novo sistema e expandindo-o. A partir daquele ponto, uns poucos - arquivos de configuração terão que ser mudados. Arquivos de - configuração que talvez precisem ser atualizados incluem: /etc/hosts, - /etc/fstab, /etc/passwd, /etc/group, /etc/shadow, /etc/ld.so.conf, - /etc/sysconfig/rc.site, /etc/sysconfig/network, e - /etc/sysconfig/ifconfig.eth0. - - Um kernel personalizado talvez seja necessário ser construído para o - novo sistema dependendo das diferenças entre hardware de sistema e a - configuração original do kernel. - -Nota - - Tem havido alguns relatos de problemas quando da cópia entre - arquiteturas similares, porém não idênticas. Por exemplo, o conjunto de - instrução para um sistema Intel não é idêntico com um processador AMD, - e versões posteriores de alguns processadores talvez tenham instruções - que estão indisponíveis em versões anteriores. - - Finalmente, o novo sistema tem de ser tornado inicializável via - [597]Seção 10.4, “Usando o GRUB para Configurar o Processo de - Inicializaçãoâ€. - -8.3. Man-pages-5.13 - - O pacote Man-pages contém mais que 2.200 páginas de manual. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 33 MB - -8.3.1. Instalação de Man-pages - - Instale Man-pages executando: -make prefix=/usr install - -8.3.2. Conteúdo de Man-pages - - Arquivos instalados: várias páginas de manual - -Breves Descrições - - man pages - - Descreve funções da linguagem de programação C, arquivos importantes de - dispositivo e arquivos significantes de configuração - -8.4. Iana-Etc-20220207 - - O pacote Iana-Etc fornece dados para serviços e protocolos de rede. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 4,7 MB - -8.4.1. Instalação de Iana-Etc - - Para esse pacote, nós apenas precisamos copiar os arquivos para o - lugar: -cp services protocols /etc - -8.4.2. Conteúdo de Iana-Etc - - Arquivos instalados: /etc/protocols e /etc/services - -Breves Descrições - - /etc/protocols - - Descreve os vários protocolos DARPA de Internet que estão disponíveis a - partir do subsistema TCP/IP - - /etc/services - - Fornece um mapeamento entre nomes textuais amigáveis para serviços de - internet e seus números de porta atribuídos e tipos de protocolos não - expostos - -8.5. Glibc-2.35 - - O pacote Glibc contém a biblioteca C principal. Essa biblioteca fornece - as rotinas básicas para alocação de memória, busca em diretórios, - abertura e fechamento de arquivos, leitura e escrita de arquivos, - manuseio de sequências de caracteres, correspondência de padrões, - aritmética, e daí por diante. - Tempo aproximado de construção: 24 UPC - Espaço em disco exigido: 2,8 GB - -8.5.1. Instalação de Glibc - - Alguns dos aplicativos Glibc usam o diretório não conforme com FHS - /var/db para armazenar seus dados em tempo de execução. Aplique a - seguinte correção para fazer com que tais aplicativos armazenem seus - dados em tempo de execução nos locais conformes com FHS: -patch -Np1 -i ../glibc-2.35-fhs-1.patch - - A documentação de Glibc recomenda construir Glibc em um diretório - dedicado à construção: -mkdir -v build -cd build - - Garanta que os utilitários ldconfig e sln serão instalados no - /usr/sbin: -echo "rootsbindir=/usr/sbin" > configparms - - Prepare Glibc para compilação: -../configure --prefix=/usr \ - --disable-werror \ - --enable-kernel=3.2 \ - --enable-stack-protector=strong \ - --with-headers=/usr/include \ - libc_cv_slibdir=/usr/lib - - O significado das opções de configure: - - --disable-werror - Essa opção desabilita a opção -Werror passada para GCC. Isso é - necessário para a execução da suíte de teste. - - --enable-kernel=3.2 - Essa opção diz ao sistema de construção que este glibc talvez - seja usado com kernels tão antigos quanto 3.2. Isso significa - que a geração de contornos no caso de uma chamada de sistema - introduzida em uma versão posterior não pode ser usada. - - --enable-stack-protector=strong - Essa opção aumenta a segurança de sistema adicionando código - extra para verificar estouros de buffer, tais como ataques de - esmagamento de pilha. - - --with-headers=/usr/include - Essa opção diz ao sistema de construção onde encontrar os - cabeçalhos de API de kernel. - - libc_cv_slibdir=/usr/lib - Essa variável configura a biblioteca correta para todos os - sistemas. Nós não queremos que lib64 seja usada. - - Compile o pacote: -make - -Importante - - Nesta seção, a suíte de teste para Glibc é considerada crítica. Não - pule sob qualquer circunstância. - - Geralmente uns poucos testes não passam. As falhas de teste listadas - abaixo são usualmente seguras ignorar. -make check - - Você talvez veja algumas falhas de teste. A suíte de teste de Glibc é - de alguma forma dependente do sistema anfitrião. Umas poucas falhas - saídas de mais que 4.200 testes geralmente podem ignoradas. Esta é uma - lista dos problemas mais comuns vistos para versões recentes de LFS: - * io/tst-lchmod é conhecido por falhar no ambiente chroot de LFS. - * misc/tst-ttyname é conhecido por falhar no ambiente chroot de LFS. - * O teste nss/tst-nss-files-hosts-multi é conhecido por falhar se o - sistema não tiver endereços IP não loopback. - - Mesmo sendo uma mensagem inofensiva, o estágio de instalação de Glibc - reclamará acerca da ausência de /etc/ld.so.conf. Impeça esse alerta - com: -touch /etc/ld.so.conf - - Conserte o Makefile para pular uma verificação de sanidade - desnecessária que falha no ambiente parcial de LFS: -sed '/test-installation/s@$(PERL)@echo not running@' -i ../Makefile - - Instale o pacote: -make install - - Conserte caminho codificado rigidamente para o carregador de executável - em script ldd: -sed '/RTLDLIST=/s@/usr@@g' -i /usr/bin/ldd - - Instale o arquivo de configuração e diretório de tempo de execução para - nscd: -cp -v ../nscd/nscd.conf /etc/nscd.conf -mkdir -pv /var/cache/nscd - - Em seguida, instale os locales que podem fazer o sistema responder em - um idioma diferente. Nenhum dos locales é exigido, mas se algum deles - estiver faltando, então as suítes de teste de futuros pacotes pulariam - casos de teste importantes. - - Locales individuais podem ser instalados usando o aplicativo localedef. - Por exemplo, o segundo comando localedef abaixo combina a definição de - locale independente de carácter /usr/share/i18n/locales/cs_CZ com a - definição de mapa de caracteres /usr/share/i18n/charmaps/UTF-8.gz e - adiciona o resultado ao arquivo /usr/lib/locale/locale-archive. As - seguintes instruções instalarão o conjunto mínimo de locales necessário - para a cobertura ótima de testes: -mkdir -pv /usr/lib/locale -localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true -localedef -i cs_CZ -f UTF-8 cs_CZ.UTF-8 -localedef -i de_DE -f ISO-8859-1 de_DE -localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro -localedef -i de_DE -f UTF-8 de_DE.UTF-8 -localedef -i el_GR -f ISO-8859-7 el_GR -localedef -i en_GB -f ISO-8859-1 en_GB -localedef -i en_GB -f UTF-8 en_GB.UTF-8 -localedef -i en_HK -f ISO-8859-1 en_HK -localedef -i en_PH -f ISO-8859-1 en_PH -localedef -i en_US -f ISO-8859-1 en_US -localedef -i en_US -f UTF-8 en_US.UTF-8 -localedef -i es_ES -f ISO-8859-15 es_ES@euro -localedef -i es_MX -f ISO-8859-1 es_MX -localedef -i fa_IR -f UTF-8 fa_IR -localedef -i fr_FR -f ISO-8859-1 fr_FR -localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro -localedef -i fr_FR -f UTF-8 fr_FR.UTF-8 -localedef -i is_IS -f ISO-8859-1 is_IS -localedef -i is_IS -f UTF-8 is_IS.UTF-8 -localedef -i it_IT -f ISO-8859-1 it_IT -localedef -i it_IT -f ISO-8859-15 it_IT@euro -localedef -i it_IT -f UTF-8 it_IT.UTF-8 -localedef -i ja_JP -f EUC-JP ja_JP -localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true -localedef -i ja_JP -f UTF-8 ja_JP.UTF-8 -localedef -i nl_NL@euro -f ISO-8859-15 nl_NL@euro -localedef -i ru_RU -f KOI8-R ru_RU.KOI8-R -localedef -i ru_RU -f UTF-8 ru_RU.UTF-8 -localedef -i se_NO -f UTF-8 se_NO.UTF-8 -localedef -i ta_IN -f UTF-8 ta_IN.UTF-8 -localedef -i tr_TR -f UTF-8 tr_TR.UTF-8 -localedef -i zh_CN -f GB18030 zh_CN.GB18030 -localedef -i zh_HK -f BIG5-HKSCS zh_HK.BIG5-HKSCS -localedef -i zh_TW -f UTF-8 zh_TW.UTF-8 - - Em adição, instale o locale para seu próprio país, idioma e conjunto de - caracteres. - - Alternativamente, instale todos os locales listados no arquivo - glibc-2.35/localedata/SUPPORTED (inclui cada locale listado acima e - muitos mais) de uma vez com o seguinte comando consumidor de tempo: -make localedata/install-locales - - Então, use o comando localedef para criar e instalar locales não - listados no arquivo glibc-2.35/localedata/SUPPORTED quando você - precisar deles. Por exemplo, os seguintes dois locales são necessários - para alguns testes posteriormente neste capítulo: -localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true -localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true - -Nota - - Glibc agora usa libidn2 quando da resolução de nomes - internacionalizados de domínio. Essa é uma dependência de tempo de - execução. Se essa capacidade for necessária, então as instruções para - instalar libidn2 estão na [598]página libidn2 de BLFS. - -8.5.2. Configurando Glibc - -8.5.2.1. Adicionando nsswitch.conf - - O arquivo /etc/nsswitch.conf precisa ser criado, pois os padrões de - Glibc não funcionam bem em um ambiente em rede. - - Crie um novo arquivo /etc/nsswitch.conf executando o seguinte: -cat > /etc/nsswitch.conf << "EOF" -# Begin /etc/nsswitch.conf - -passwd: files -group: files -shadow: files - -hosts: files dns -networks: files - -protocols: files -services: files -ethers: files -rpc: files - -# End /etc/nsswitch.conf -EOF - -8.5.2.2. Adicionando dados de fuso horário - - Instale e configure os dados de fuso horário com o seguinte: -tar -xf ../../tzdata2021e.tar.gz - -ZONEINFO=/usr/share/zoneinfo -mkdir -pv $ZONEINFO/{posix,right} - -for tz in etcetera southamerica northamerica europe africa antarctica \ - asia australasia backward; do - zic -L /dev/null -d $ZONEINFO ${tz} - zic -L /dev/null -d $ZONEINFO/posix ${tz} - zic -L leapseconds -d $ZONEINFO/right ${tz} -done - -cp -v zone.tab zone1970.tab iso3166.tab $ZONEINFO -zic -d $ZONEINFO -p America/New_York -unset ZONEINFO - - O significado dos comandos zic: - - zic -L /dev/null ... - Isso cria fusos horários posix sem quaisquer segundos bissextos. - É convencional colocá-los em ambos zoneinfo e zoneinfo/posix. É - necessário colocar os fusos horários POSIX em zoneinfo, do - contrário várias suítes de teste reportarão erros. Em um sistema - embarcado, onde o espaço é apertado e você não pretende nunca - atualizar os fusos horários, você poderia economizar 1,9 MB não - usando o diretório posix, mas alguns aplicativos ou suítes de - teste poderiam produzir algumas falhas. - - zic -L leapseconds ... - Isso cria fusos horários corretos, incluindo segundos bissextos. - Em um sistema embarcado, onde o espaço é apertado e você não - pretende nunca atualizar os fusos horários, ou se importa com a - hora correta, você poderia economizar 1,9 MB omitindo o - diretório right. - - zic ... -p ... - Isso cria o arquivo posixrules. Nós usamos New York, pois POSIX - exige que as regras de horário de verão estejam de acordo com - regras dos Estados Unidos da América do Norte. - - Uma maneira para determinar o fuso horário local é executando o - seguinte script: -tzselect - - Depois de responder à umas poucas perguntas sobre a localização, o - script retornará o nome do fuso horário (por exemplo, - America/Edmonton). Existem também alguns outros possíveis fusos - horários listados em /usr/share/zoneinfo, tais como Canada/Eastern ou - EST5EDT que não são identificados pelo script, mas podem ser usados. - - Então crie o arquivo /etc/localtime executando: -ln -sfv /usr/share/zoneinfo/ /etc/localtime - - Substitua com o nome do fuso horário selecionado (por exemplo, - Canada/Eastern). - -8.5.2.3. Configurando o Carregador Dinâmico - - Por padrão, o carregador dinâmico (/lib/ld-linux.so.2) procura em /lib - e /usr/lib por bibliotecas dinâmicas que são necessárias para - aplicativos assim que são executados. Entretanto, se existirem - bibliotecas em outros diretórios diferentes de /lib e /usr/lib, então - esses precisam ser adicionados ao arquivo /etc/ld.so.conf para a - finalidade de que o carregador dinâmico encontre elas. Dois diretórios - que são comumente conhecidos por conterem bibliotecas adicionais são - /usr/local/lib e /opt/lib, então adicione esses diretórios ao caminho - de busca do carregador dinâmico. - - Crie um novo arquivo /etc/ld.so.conf executando o seguinte: -cat > /etc/ld.so.conf << "EOF" -# Begin /etc/ld.so.conf -/usr/local/lib -/opt/lib - -EOF - - Se desejado, o carregador dinâmico também pode pesquisar um diretório e - incluir o conteúdo de arquivos encontrados lá. Geralmente os arquivos - nesse diretório include são uma linha especificando o caminho de - biblioteca desejado. Para adicionar essa capacidade, execute os - seguintes comandos: -cat >> /etc/ld.so.conf << "EOF" -# Add an include directory -include /etc/ld.so.conf.d/*.conf - -EOF -mkdir -pv /etc/ld.so.conf.d - -8.5.3. Conteúdo de Glibc - - Aplicativos instalados: gencat, getconf, getent, iconv, iconvconfig, - ldconfig, ldd, lddlibc4, ld.so (link simbólico para - ld-linux-x86-64.so.2 ou ld-linux.so.2), locale, localedef, makedb, - mtrace, nscd, pcprofiledump, pldd, sln, sotruss, sprof, tzselect, - xtrace, zdump, e zic - Bibliotecas instaladas: ld-linux-x86-64.so.2, ld-linux.so.2, - libBrokenLocale.{a,so}, libanl.{a,so}, libc.{a,so}, libc_nonshared.a, - libc_malloc_debug.so, libcrypt.{a,so}, libdl.{a,so.2}, libg.a, - libm.{a,so}, libmcheck.a, libmemusage.so, libmvec.{a,so}, libnsl.so.1, - libnss_compat.so, libnss_dns.so, libnss_files.so, libnss_hesiod.so, - libpcprofile.so, libpthread.{a,so.0}, libresolv.{a,so}, librt.{a,so.1}, - libthread_db.so, e libutil.{a,so.1} - Diretórios instalados: /usr/include/arpa, /usr/include/bits, - /usr/include/gnu, /usr/include/net, /usr/include/netash, - /usr/include/netatalk, /usr/include/netax25, /usr/include/neteconet, - /usr/include/netinet, /usr/include/netipx, /usr/include/netiucv, - /usr/include/netpacket, /usr/include/netrom, /usr/include/netrose, - /usr/include/nfs, /usr/include/protocols, /usr/include/rpc, - /usr/include/sys, /usr/lib/audit, /usr/lib/gconv, /usr/lib/locale, - /usr/libexec/getconf, /usr/share/i18n, /usr/share/zoneinfo, - /var/cache/nscd, e /var/lib/nss_db - -Descrições Curtas - - gencat - - Gera catálogos de mensagem - - getconf - - Exibe os valores de configuração de sistema para variáveis específicas - do sistema de arquivos - - getent - - Obtém entradas a partir de uma base de dados administrativa - - iconv - - Realiza conversão de conjuntos de caracteres - - iconvconfig - - Cria arquivos de configuração de módulos de carregamento rápido de - iconv - - ldconfig - - Configura as ligações de tempo de execução do vinculador dinâmico - - ldd - - Reporta quis bibliotecas compartilhadas são exigidas por cada dado - aplicativo ou biblioteca compartilhada - - lddlibc4 - - Auxilia ldd com arquivos objeto. Isso não existe em arquiteturas mais - novas como x86_64 - - locale - - Imprime várias informações sobre o locale atual - - localedef - - Compila especificações de locale - - makedb - - Cria um banco de dados simples a partir de uma entrada textual - - mtrace - - Lê e interpreta um arquivo de rastreamento de memória e exibe um resumo - em formato legível por humanos - - nscd - - Um daemon que fornece um cache para as solicitações de serviço de nomes - mais comuns - - pcprofiledump - - Despeja informação gerada pelos perfis do PC - - pldd - - Lista objetos dinâmicos compartilhados usados por processos em execução - - sln - - Um aplicativo ln vinculado estaticamente - - sotruss - - Rastreia chamadas de procedimentos de bibliotecas compartilhadas de um - comando especificado - - sprof - - Lê e exibe dados de perfil de objetos compartilhados - - tzselect - - Pergunta ao usuário sobre a localização do sistema e reporta a - correspondente descrição de fuso horário - - xtrace - - Rastreia a execução de um aplicativo exibindo a função atualmente - executada - - zdump - - O despejador de fuso horário - - zic - - O compilador de fuso horário - - ld-*.so - - O aplicativo ajudador para executáveis de bibliotecas compartilhadas - - libBrokenLocale - - Usado internamente por Glibc como um hack grosseiro para executar - aplicativos quebrados (por exemplo, alguns aplicativos Motif). Veja - comentários em glibc-2.35/locale/broken_cur_max.c para mais informação - - libanl - - Uma biblioteca assíncrona de pesquisa de nomes - - libc - - A biblioteca C principal - - libc_malloc_debug - - Liga verificação de alocação de memória quando pré-carregada - - libcrypt - - A biblioteca de criptografia - - libdl - - Biblioteca fictícia que não contém funções. Anteriormente era a - biblioteca de interface do vinculador dinâmico, cujas funções agora - estão em libc - - libg - - Biblioteca fictícia que não contém funções. Anteriormente era uma - biblioteca de tempo de execução para g++ - - libm - - A biblioteca matemática - - libmvec - - A biblioteca de vetor matemático, vinculada conforme necessária quando - libm for usada - - libmcheck - - Liga verificação de alocação de memória quando quando vinculada para - - libmemusage - - Usado por memusage para ajudar a coletar informação sobre o uso de - memória de um aplicativo - - libnsl - - A biblioteca de serviços de rede, agora obsoleta - - libnss_* - - Os módulos de Name Service Switch, contendo funções para resolução de - nomes de hosts, nomes de usuárias(os), nomes de grupos, pseudônimos, - serviços, protocolos, etc. Carregados por libc conforme a configuração - em /etc/nsswitch.conf - - libpcprofile - - Pode ser pré-carregada para PC perfilar um executável - - libpthread - - Biblioteca fictícia que não contém funções. Anteriormente continha - funções fornecendo a maior parte das interfaces especificadas pela - Extensão POSIX.1b de Tempo Real, agora as funções estão em libc - - libresolv - - Contém funções para criação, envio e interpretação de pacotes para os - servidores de nomes de domínio de Internet - - librt - - Contém funções fornecendo a maior parte das interfaces especificadas - pela Extensão POSIX.1b de Tempo Real - - libthread_db - - Contém funções úteis para construir depuradores para aplicativos de - múltiplas camadas - - libutil - - Biblioteca fictícia que não contém funções. Anteriormente continha - código para funções “standard†usadas em muitos utilitários Unix. Essas - funções agora estão em libc - -8.6. Zlib-1.2.11 - - O pacote Zlib contém rotinas de compressão e descompressão usadas por - alguns aplicativos. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 5,0 MB - -8.6.1. Instalação de Zlib - - Prepare Zlib para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - - Remova uma biblioteca estática inútil: -rm -fv /usr/lib/libz.a - -8.6.2. Conteúdo de Zlib - - Bibliotecas instaladas: libz.so - -Descrições Curtas - - libz - - Contém funções de compressão e descompressão usadas por alguns - aplicativos - -8.7. Bzip2-1.0.8 - - O pacote Bzip2 contém aplicativos para comprimir e descomprimir - arquivos. Comprimir arquivos de texto com bzip2 gera uma muito melhor - percentagem de compressão que com o tradicional gzip. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 7,2 MB - -8.7.1. Instalação de Bzip2 - - Aplique um patch que instalará a documentação para esse pacote: -patch -Np1 -i ../bzip2-1.0.8-install_docs-1.patch - - O seguinte comando garante que a instalação de links simbólicos sejam - relativos: -sed -i 's@\(ln -s -f \)$(PREFIX)/bin/@\1@' Makefile - - Garanta que as páginas de manual sejam instaladas na localização - correta: -sed -i "s@(PREFIX)/man@(PREFIX)/share/man@g" Makefile - - Prepare Bzip2 para compilação com: -make -f Makefile-libbz2_so -make clean - - O significado do parâmetro de make: - - -f Makefile-libbz2_so - Isso causará Bzip2 ser construído usando um arquivo Makefile - diferente, nesse caso o arquivo Makefile-libbz2_so, o qual cria - uma biblioteca dinâmica libbz2.so e vincula os utilitários de - Bzip2 a ela. - - Compile e teste o pacote: -make - - Instale os aplicativos: -make PREFIX=/usr install - - Instale a biblioteca compartilhada: -cp -av libbz2.so.* /usr/lib -ln -sv libbz2.so.1.0.8 /usr/lib/libbz2.so - - Instale o binário compartilhado bzip2 no diretório /usr/bin, e - substitua duas cópias de bzip2 com links simbólicos: -cp -v bzip2-shared /usr/bin/bzip2 -for i in /usr/bin/{bzcat,bunzip2}; do - ln -sfv bzip2 $i -done - - Remova uma biblioteca estática inútil: -rm -fv /usr/lib/libbz2.a - -8.7.2. Conteúdo de Bzip2 - - Aplicativos instalados: bunzip2 (link para bzip2), bzcat (link para - bzip2), bzcmp (link para bzdiff), bzdiff, bzegrep (link para bzgrep), - bzfgrep (link para bzgrep), bzgrep, bzip2, bzip2recover, bzless (link - para bzmore), e bzmore - Bibliotecas instaladas: libbz2.so - Diretórios instalados: /usr/share/doc/bzip2-1.0.8 - -Descrições Curtas - - bunzip2 - - Descomprime arquivos compactados com bzip - - bzcat - - Descomprime para a saída padrão - - bzcmp - - Executa cmp em arquivos compactados com bzip - - bzdiff - - Executa diff em arquivos compactados com bzip - - bzegrep - - Executa egrep em arquivos compactados com bzip - - bzfgrep - - Executa fgrep em arquivos compactados com bzip - - bzgrep - - Executa grep em arquivos compactados com bzip - - bzip2 - - Comprime arquivos usando o algoritmo de compressão de texto de - classificação de blocos Burrows-Wheeler com codificação Huffman; a taxa - de compressão é melhor que aquela obtida por compressores mais - convencionais usando algoritmos “Lempel-Zivâ€, como gzip - - bzip2recover - - Tenta recuperar dados a partir de arquivos danificados comprimidos com - bzip - - bzless - - Executa less em arquivos compactados com bzip - - bzmore - - Executa more em arquivos compactados com bzip - - libbz2 - - A biblioteca que implementa compressão de dados de classificação de - blocos sem perdas, usando o algoritmo Burrows-Wheeler - -8.8. Xz-5.2.5 - - O pacote Xz contém aplicativos para compressão e descompressão de - arquivos. Ele fornece capacidades para os formatos de compressão lzma e - o mais novo xz. Comprimir arquivos de texto com xz gera uma melhor - percentagem de compressão que os tradicionais comandos gzip ou bzip2. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 15 MB - -8.8.1. Instalação de Xz - - Prepare Xz para compilação com: -./configure --prefix=/usr \ - --disable-static \ - --docdir=/usr/share/doc/xz-5.2.5 - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.8.2. Conteúdo de Xz - - Aplicativos instalados: lzcat (link para xz), lzcmp (link para xzdiff), - lzdiff (link para xzdiff), lzegrep (link para xzgrep), lzfgrep (link - para xzgrep), lzgrep (link para xzgrep), lzless (link para xzless), - lzma (link para xz), lzmadec, lzmainfo, lzmore (link para xzmore), - unlzma (link para xz), unxz (link para xz), xz, xzcat (link para xz), - xzcmp (link para xzdiff), xzdec, xzdiff, xzegrep (link para xzgrep), - xzfgrep (link para xzgrep), xzgrep, xzless, e xzmore - Bibliotecas instaladas: liblzma.so - Diretórios instalados: /usr/include/lzma e /usr/share/doc/xz-5.2.5 - -Descrições Curtas - - lzcat - - Descomprime para a saída padrão - - lzcmp - - Executa cmp em arquivos comprimidos LZMA - - lzdiff - - Executa diff em arquivos comprimidos LZMA - - lzegrep - - Executa egrep em arquivos comprimidos LZMA - - lzfgrep - - Executa fgrep em arquivos comprimidos LZMA - - lzgrep - - Executa grep em arquivos comprimidos LZMA - - lzless - - Executa less em arquivos comprimidos LZMA - - lzma - - Comprime ou descomprime arquivos usando o formato LZMA - - lzmadec - - Um decodificador pequeno e rápido para arquivos comprimidos LZMA - - lzmainfo - - Exibe informação armazenada no cabeçalho de arquivo comprimido com LZMA - - lzmore - - Executa more em arquivos comprimidos LZMA - - unlzma - - Descomprime arquivos usando o formato LZMA - - unxz - - Descomprime arquivos usando o formato XZ - - xz - - Comprime ou descomprime arquivos usando o formato XZ - - xzcat - - Descomprime para a saída padrão - - xzcmp - - Executa cmp em arquivos comprimidos XZ - - xzdec - - Um decodificador pequeno e rápido para arquivos comprimidos XZ - - xzdiff - - Executa diff em arquivos comprimidos XZ - - xzegrep - - Executa egrep em arquivos comprimidos XZ - - xzfgrep - - Executa fgrep em arquivos comprimidos XZ - - xzgrep - - Executa grep em arquivos comprimidos XZ - - xzless - - Executa less em arquivos comprimidos XZ - - xzmore - - Executa more em arquivos comprimidos XZ - - liblzma - - A biblioteca que implementa compressão de dados de classificação de - blocos, sem perdas, usando o algoritmo de cadeia Lempel-Ziv-Markov - -8.9. Zstd-1.5.2 - - Zstandard é um algoritmo de tempo real de compressão, fornecendo taxas - altas de compressão. Ele oferece um intervalo muito amplo de - combinações de compressão/velocidade, enquanto é apoiado por um - decodificador muito rápido. - Tempo aproximado de construção: 1,1 UPC - Espaço em disco exigido: 55 MB - -8.9.1. Instalação de Zstd - - Compile o pacote: -make - -Nota - - Na saída de teste existem muitos lugares que indicam 'failed'. Essas - são esperadas e apenas 'FAIL' é uma falha atual de teste. Não deveriam - existir falhas de teste. - - Para testar os resultados, execute: -make check - - Instale o pacote: -make prefix=/usr install - - Remova a biblioteca estática: -rm -v /usr/lib/libzstd.a - -8.9.2. Conteúdo de Zstd - - Aplicativos instalados: zstd, zstdcat (link para zstd), zstdgrep, - zstdless, zstdmt (link para zstd), e unzstd (link para zstd) - Bibliotecas instaladas: libzstd.so - -Descrições Curtas - - zstd - - Comprime ou descomprime arquivos usando o formato ZSTD - - zstdgrep - - Executa grep em arquivos comprimidos ZSTD - - zstdless - - Executa less em arquivos comprimidos ZSTD - - libzstd - - A biblioteca que implementa compressão de dados sem perdas, usando o - algoritmo ZSTD - -8.10. File-5.41 - - O pacote File contém um utilitário para determinar o tipo de um dado - arquivo ou arquivos. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 15 MB - -8.10.1. Instalação de File - - Prepare File para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.10.2. Conteúdo de File - - Aplicativos instalados: file - Bibliotecas instaladas: libmagic.so - -Descrições Curtas - - file - - Tenta classificar cada arquivo dado; ele faz isso realizando vários - testes—testes de sistema de arquivos, testes de números mágicos, e - testes de idioma - - libmagic - - Contém rotinas para reconhecimento de números mágicos, usado pelo - aplicativo file - -8.11. Readline-8.1.2 - - O pacote Readline é um conjunto de bibliotecas que oferecem edição de - linha de comando e capacidades de histórico. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 15 MB - -8.11.1. Instalação de Readline - - Reinstalar Readline causará as bibliotecas antigas serem movidas para - .old. Mesmo que isso normalmente não seja um problema, em - alguns casos isso pode deflagrar um defeito de vinculação em ldconfig. - Isso pode ser evitado executando os seguintes dois seds: -sed -i '/MV.*old/d' Makefile.in -sed -i '/{OLDSUFF}/c:' support/shlib-install - - Prepare Readline para compilação: -./configure --prefix=/usr \ - --disable-static \ - --with-curses \ - --docdir=/usr/share/doc/readline-8.1.2 - - O significado da opção de configure: - - --with-curses - Essa opção diz a Readline que ela pode encontrar as funções de - biblioteca de termcap na biblioteca curses, em vez de uma - biblioteca termcap separada. Ela permite a geração de um arquivo - readline.pc correto. - - Compile o pacote: -make SHLIB_LIBS="-lncursesw" - - O significado da opção de make: - - SHLIB_LIBS="-lncursesw" - Essa opção força Readline a vincular com a biblioteca - libncursesw. - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -make SHLIB_LIBS="-lncursesw" install - - Se desejado, instale a documentação: -install -v -m644 doc/*.{ps,pdf,html,dvi} /usr/share/doc/readline-8.1.2 - -8.11.2. Conteúdo de Readline - - Bibliotecas instaladas: libhistory.so e libreadline.so - Diretórios instalados: /usr/include/readline e - /usr/share/doc/readline-8.1.2 - -Descrições Curtas - - libhistory - - Fornece uma consistente interface de usuária(o) para recordar linhas de - histórico - - libreadline - - Fornece um conjunto de comandos para manipular texto digitado em uma - sessão interativa de um aplicativo - -8.12. M4-1.4.19 - - O pacote M4 contém um processador de macro. - Tempo aproximado de construção: 0,7 UPC - Espaço em disco exigido: 49 MB - -8.12.1. Instalação de M4 - - Prepare M4 para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.12.2. Conteúdo de M4 - - Aplicativo instalado: m4 - -Descrições Curtas - - m4 - - Copia os arquivos dados enquanto expande as macros que eles contém. - Essas macros são ou nativas ou definidas pela(o) usuária(o) e podem - receber qualquer número de argumentos. Além de executar expansão de - macro, m4 tem funções nativas para incluir arquivos nomeados, executar - comandos Unix, realizar aritmética de inteiros, manipular texto, - recursão, etc. O aplicativo m4 pode ser usado ou como um front-end para - um compilador ou como um processador de macro independente - -8.13. Bc-5.2.2 - - O pacote Bc contém uma linguagem de processamento numérica de precisão - arbitrária. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 7,1 MB - -8.13.1. Instalação de Bc - - Prepare Bc para compilação: -CC=gcc ./configure --prefix=/usr -G -O3 - - O significado das opções de configure: - - CC=gcc - Esse parâmetro especifica o compilador a usar. - - -O3 - Especifica a optimização a usar. - - -G - Omite partes da suíte de teste que não funcionariam sem um GNU - bc presente. - - Compile o pacote: -make - - Para testar bc, execute: -make test - - Instale o pacote: -make install - -8.13.2. Conteúdo de Bc - - Aplicativos instalados: bc e dc - -Descrições Curtas - - bc - - Uma calculadora de linha de comando - - dc - - Uma calculadora de linha de comando de entrada polonesa - reversa - -8.14. Flex-2.6.4 - - O pacote Flex contém um utilitário para gerar aplicativos que - reconhecem padrões em texto. - Tempo aproximado de construção: 0,4 UPC - Espaço em disco exigido: 32 MB - -8.14.1. Instalação de Flex - - Prepare Flex para compilação: -./configure --prefix=/usr \ - --docdir=/usr/share/doc/flex-2.6.4 \ - --disable-static - - Compile o pacote: -make - - Para testar os resultados (cerca de 0,5 UPC), execute: -make check - - Instale o pacote: -make install - - Uns poucos aplicativos não sabem acerca de flex ainda e tentam executar - seu predecessor, lex. Para suportar esses aplicativos, crie um link - simbólico chamado lex que executa flex em modo de emulação lex: -ln -sv flex /usr/bin/lex - -8.14.2. Conteúdo de Flex - - Aplicativos instalados: flex, flex++ (link para flex), e lex (link para - flex) - Bibliotecas instaladas: libfl.so - Diretórios instalados: /usr/share/doc/flex-2.6.4 - -Descrições Curtas - - flex - - Uma ferramenta para gerar aplicativos que reconhecem padrões em texto; - ele permite, para a versatilidade, especificar as regras para encontrar - padrões, erradicando a necessidade de desenvolver um aplicativo - especializado - - flex++ - - Uma extensão de flex, é usada para gerar código e classes C++. É um - link simbólico para flex - - lex - - Um link simbólico que executa flex em modo de emulação lex - - libfl - - A biblioteca flex - -8.15. Tcl-8.6.12 - - O pacote Tcl contém a Tool Command Language, uma linguagem de script - robusta de propósito geral. O pacote Expect é escrito na linguagem Tcl. - Tempo aproximado de construção: 3,4 UPC - Espaço em disco exigido: 87 MB - -8.15.1. Instalação de Tcl - - Esse pacote e os próximos dois (Expect e DejaGNU) são instalados para - suportar a execução das suítes de teste para binutils e GCC e outros - pacotes. Instalar três pacotes para propósitos de teste talvez pareça - excessivo, mas é muito assegurador, se não essencial, saber que as - ferramentas mais importantes estão funcionando adequadamente. - - Primeiro, desempacote a documentação executando o seguinte comando: -tar -xf ../tcl8.6.12-html.tar.gz --strip-components=1 - - Prepare Tcl para compilação: -SRCDIR=$(pwd) -cd unix -./configure --prefix=/usr \ - --mandir=/usr/share/man \ - $([ "$(uname -m)" = x86_64 ] && echo --enable-64bit) - - O significado das opções de configure: - - $([ "$(uname -m)" = x86_64 ] && echo --enable-64bit) - A construção $() é substituída pela saída do - comando de shell. Aqui essa saída é vazia se executada em uma - máquina de 32 bits, e é --enable-64bit se executada em uma - máquina de 64 bits. - - Construa o pacote: -make - -sed -e "s|$SRCDIR/unix|/usr/lib|" \ - -e "s|$SRCDIR|/usr/include|" \ - -i tclConfig.sh - -sed -e "s|$SRCDIR/unix/pkgs/tdbc1.1.3|/usr/lib/tdbc1.1.3|" \ - -e "s|$SRCDIR/pkgs/tdbc1.1.3/generic|/usr/include|" \ - -e "s|$SRCDIR/pkgs/tdbc1.1.3/library|/usr/lib/tcl8.6|" \ - -e "s|$SRCDIR/pkgs/tdbc1.1.3|/usr/include|" \ - -i pkgs/tdbc1.1.3/tdbcConfig.sh - -sed -e "s|$SRCDIR/unix/pkgs/itcl4.2.2|/usr/lib/itcl4.2.2|" \ - -e "s|$SRCDIR/pkgs/itcl4.2.2/generic|/usr/include|" \ - -e "s|$SRCDIR/pkgs/itcl4.2.2|/usr/include|" \ - -i pkgs/itcl4.2.2/itclConfig.sh - -unset SRCDIR - - As várias instruções “sed†após o comando “make†removem referências ao - diretório de construção dos arquivos de configuração e as substituem - com o diretório de instalação. Isso não é obrigatório para o restante - de LFS, porém talvez seja necessário caso um pacote construído - posteriormente use Tcl. - - Para testar os resultados, execute: -make test - - Instale o pacote: -make install - - Torne as bibliotecas instaladas graváveis de modo que símbolos de - depuração possam ser removidos posteriormente: -chmod -v u+w /usr/lib/libtcl8.6.so - - Instale os cabeçalhos do Tcl. O próximo pacote, Expect, exige elas. -make install-private-headers - - Agora faça um necessário link simbólico: -ln -sfv tclsh8.6 /usr/bin/tclsh - - Renomeie uma página de manual que conflita com uma página de manual de - Perl: -mv /usr/share/man/man3/{Thread,Tcl_Thread}.3 - - Se você transferiu a documentação opcional, então instale ela - executando os seguintes comandos: -mkdir -v -p /usr/share/doc/tcl-8.6.12 -cp -v -r ../html/* /usr/share/doc/tcl-8.6.12 - -8.15.2. Conteúdo de Tcl - - Aplicativos instalados: tclsh (link to tclsh8.6) e tclsh8.6 - Bibliotecas instaladas: libtcl8.6.so e libtclstub8.6.a - -Descrições Curtas - - tclsh8.6 - - O shell de comando de Tcl - - tclsh - - Um link para tclsh8.6 - - libtcl8.6.so - - A biblioteca Tcl - - libtclstub8.6.a - - A biblioteca Stub de Tcl - -8.16. Expect-5.45.4 - - O pacote Expect contém ferramentas para automatizar, via diálogos com - script, aplicativos interativos tais como telnet, ftp, passwd, fsck, - rlogin, e tip. Expect também é útil para testar esses mesmos - aplicativos bem como facilitar todos os tipos de tarefas que são - proibitivamente difíceis com qualquer outra coisa. A estrutura - subjacente de DejaGnu é escrita em Expect. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 3,9 MB - -8.16.1. Instalação de Expect - - Prepare Expect para compilação: -./configure --prefix=/usr \ - --with-tcl=/usr/lib \ - --enable-shared \ - --mandir=/usr/share/man \ - --with-tclinclude=/usr/include - - O significado das opções de configure: - - --with-tcl=/usr/lib - Esse parâmetro é necessário para dizer a configure onde o script - tclConfig.sh está localizado. - - --with-tclinclude=/usr/include - Isso explicitamente diz a Expect onde encontrar os cabeçalhos - internos de Tcl. - - Construa o pacote: -make - - Para testar os resultados, execute: -make test - - Instale o pacote: -make install -ln -svf expect5.45.4/libexpect5.45.4.so /usr/lib - -8.16.2. Conteúdo de Expect - - Aplicativo instalado: expect - Biblioteca instalada: libexpect5.45.4.so - -Descrições Curtas - - expect - - Comunica-se com outros aplicativos interativos de acordo com um script - - libexpect-5.45.4.so - - Contém funções que permitem a Expect ser usado como uma extensão Tcl ou - ser usado diretamente a partir de C ou C++ (sem Tcl) - -8.17. DejaGNU-1.6.3 - - O pacote DejaGnu contém uma estrutura subjacente para executar suítes - de teste em ferramentas GNU. Ele é escrito em expect, a qual usa ela - própria Tcl (Tool Command Language). - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 6,9 MB - -8.17.1. Instalação de DejaGNU - - A(O) desenvolvedora(r) recomenda construir DejaGNU em um diretório - dedicado à construção: -mkdir -v build -cd build - - Prepare DejaGNU para compilação: -../configure --prefix=/usr -makeinfo --html --no-split -o doc/dejagnu.html ../doc/dejagnu.texi -makeinfo --plaintext -o doc/dejagnu.txt ../doc/dejagnu.texi - - Construa e instale o pacote: -make install -install -v -dm755 /usr/share/doc/dejagnu-1.6.3 -install -v -m644 doc/dejagnu.{html,txt} /usr/share/doc/dejagnu-1.6.3 - - Para testar os resultados, execute: -make check - -8.17.2. Conteúdo de DejaGNU - - Aplicativos instalados: dejagnu e runtest - -Descrições Curtas - - dejagnu - - Iniciador de comando auxiliar DejaGNU - - runtest - - Um script encapsulador que localiza o shell expect adequado e, em - seguida, executa o DejaGNU - -8.18. Binutils-2.38 - - O pacote Binutils contém um vinculador, um montador, e outras - ferramentas para manusear arquivos objeto. - Tempo aproximado de construção: 6,1 UPC - Espaço em disco exigido: 4,6 GB - -8.18.1. Instalação de Binutils - - Verifique se os Pseudo Terminais (PTYs) estão funcionando adequadamente - dentro do ambiente chroot executando um teste simples: -expect -c "spawn ls" - - Esse comando deveria retornar o seguinte: -spawn ls - - Se, ao invés, a saída incluir a mensagem abaixo, então o ambiente não - está configurado para operação adequada de PTY. Esse problema precisa - ser resolvido antes de executar as suítes de teste para Binutils e GCC: -The system has no more ptys. -Ask your system administrator to create more. - - A(O) desenvolvedora(r) fez um conjunto curto de comandos para fixar um - problema quando do uso de binutils para construir alguns pacotes BLFS - com Link Time Optimization (LTO) habilitado. Aplique ele agora: -patch -Np1 -i ../binutils-2.38-lto_fix-1.patch - - Agora, faça um conserto identificado pela(o) desenvolvedora(r) que - afeta a construção alguns pacotes: -sed -e '/R_386_TLS_LE /i \ || (TYPE) == R_386_TLS_IE \\' \ - -i ./bfd/elfxx-x86.h - - A documentação de Binutils recomenda construir Binutils em um diretório - dedicado à construção: -mkdir -v build -cd build - - Prepare Binutils para compilação: -../configure --prefix=/usr \ - --enable-gold \ - --enable-ld=default \ - --enable-plugins \ - --enable-shared \ - --disable-werror \ - --enable-64-bit-bfd \ - --with-system-zlib - - O significado dos parâmetros de configure: - - --enable-gold - Constrói o vinculador gold e instala ele como ld.gold - (juntamente com o vinculador padrão). - - --enable-ld=default - Constrói o vinculador bfd original e instala ele como ambos ld - (o vinculador padrão) e ld.bfd. - - --enable-plugins - Habilita suporte de plugin para o vinculador. - - --enable-64-bit-bfd - Habilita suporte de 64 bits (em anfitriões com tamanhos de - palavra mais estreitos). Talvez não seja necessário em sistemas - de 64 bits, porém não causa dano. - - --with-system-zlib - Usa a biblioteca zlib instalada em vez de construir a versão - incluída. - - Compile o pacote: -make tooldir=/usr - - O significado do parâmetro de make: - - tooldir=/usr - Normalmente, o tooldir (o diretório onde os executáveis estarão - ultimamente localizados) é configurado para - $(exec_prefix)/$(target_alias). Por exemplo, máquinas x86_64 - expandiriam isso para /usr/x86_64-pc-linux-gnu. Por causa que - este é um sistema personalizado, esse diretório alvo específico - em /usr não é exigido. $(exec_prefix)/$(target_alias) seria - usado se o sistema fosse usado para compilar cruzadamente (por - exemplo, compilar um pacote em uma máquina Intel que gera código - que pode ser executado em máquinas PowerPC). - -Importante - - A suíte de teste para Binutils nesta seção é considerada crítica. Não - pule sob quaisquer circunstâncias. - - Teste os resultados: -make -k check - - Instale o pacote: -make tooldir=/usr install - - Remova bibliotecas estáticas inúteis: -rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes}.a - -8.18.2. Conteúdo de Binutils - - Aplicativos instalados: addr2line, ar, as, c++filt, dwp, elfedit, - gprof, ld, ld.bfd, ld.gold, nm, objcopy, objdump, ranlib, readelf, - size, strings, e strip - Bibliotecas instaladas: libbfd.so, libctf.so, libctf-nobfd.so, e - libopcodes.so - Diretório instalado: /usr/lib/ldscripts - -Descrições Curtas - - addr2line - - Traduz endereços de aplicativos para nomes de arquivo e números de - linha; dado um endereço e o nome de um executável, ele usa a informação - de depuração no executável para determinar qual arquivo fonte e número - de linha estão associados ao endereço - - ar - - Cria, modifica e extrai a partir de arquivamentos - - as - - Um montador que monta a saída de gcc para dentro de arquivos objeto - - c++filt - - Usado pelo vinculador para desmembrar símbolos C++ e Java e para - impedir que funções sobrecarregadas entrem em conflito - - dwp - - O utilitário de empacotamento DWARF - - elfedit - - Atualiza o cabeçalho ELF de arquivos ELF - - gprof - - Exibe dados do perfil de gráfico de chamada - - ld - - Um vinculador que combina um número de objetos e arquivos de - arquivamento em um arquivo, realocando seus dados e vinculando - referências de símbolos - - ld.gold - - Uma versão reduzida de ld que suporta apenas o formato de arquivo de - objeto elf - - ld.bfd - - Hard link para ld - - nm - - Lista os símbolos que ocorrem em um dado arquivo de objeto - - objcopy - - Traduz um tipo de arquivo de objeto em outro - - objdump - - Exibe informação sobre o dado arquivo de objeto, com opções controlando - a informação particular a ser exibida; a informação mostrada é útil - para programadores que estão trabalhando nas ferramentas de compilação - - ranlib - - Gera um índice do conteúdo de um arquivamento e o armazena no - arquivamento; o índice lista todos os símbolos definidos pelos membros - do arquivamento que são arquivos de objeto realocáveis - - readelf - - Exibe informação sobre binários de tipo ELF - - size - - Lista os tamanhos de seção e o tamanho total para os arquivos de objeto - dados - - strings - - Exibe, para cada arquivo dado, as sequências de caracteres imprimíveis - que são de, no mínimo, o tamanho especificado (padronizado para - quatro); para arquivos de objeto, ele imprime, por padrão, apenas as - sequências de caracteres a partir das seções de inicialização e - carregamento enquanto que para outros tipos de arquivos, ele escaneia o - arquivo inteiro - - strip - - Descarta símbolos de arquivos de objeto - - libbfd - - A biblioteca de Descritor de Arquivo Binário - - libctf - - A biblioteca de suporte de depuração Compat ANSI-C Type Format - - libctf-nobfd - - Uma variante de libctf que não usa funcionalidade de libbfd - - libopcodes - - Uma biblioteca para lidar com opcodes—as versões de “texto legível†de - instruções para o processador; é usado para construir utilitários como - objdump - -8.19. GMP-6.2.1 - - O pacote GMP contém bibliotecas matemáticas. Essas tem funções úteis - para aritmética de precisão arbitrária. - Tempo aproximado de construção: 1,0 UPC - Espaço em disco exigido: 52 MB - -8.19.1. Instalação de GMP - -Nota - - Se você estiver construindo para x86 de 32 bits, mas tem uma CPU capaz - de executar código de 64 bits e você especificou CFLAGS no ambiente, - então o script configure tentará configurar para 64 bits e falhará. - Impeça isso invocando o comando de configure abaixo com -ABI=32 ./configure ... - -Nota - - As configurações padrão de GMP produzem bibliotecas otimizadas para o - processador anfitrião. Se bibliotecas adequadas para processadores - menos capazes que a CPU do anfitrião forem desejadas, então bibliotecas - genéricas podem ser criadas executando o seguinte: -cp -v configfsf.guess config.guess -cp -v configfsf.sub config.sub - - Prepare GMP para compilação: -./configure --prefix=/usr \ - --enable-cxx \ - --disable-static \ - --docdir=/usr/share/doc/gmp-6.2.1 - - O significado das novas opções de configure: - - --enable-cxx - Esse parâmetro habilita suporte a C++ - - --docdir=/usr/share/doc/gmp-6.2.1 - Essa variável especifica o lugar correto para a documentação. - - Compile o pacote e gere a documentação HTML: -make -make html - -Importante - - A suíte de teste para GMP nesta seção é considerada crítica. Não pule - sob quaisquer circunstâncias. - - Teste os resultados: -make check 2>&1 | tee gmp-check-log - -Cuidado - - O código em gmp é altamente otimizado para o processador onde ele é - construído. Ocasionalmente, o código que detecta o processador - identifica errado as capacidades de sistema e existirão erros nos - testes ou outros aplicativos que usam as bibliotecas de gmp com a - mensagem "Illegal instruction". Nesse caso, gmp deveria ser - reconfigurado com a opção --build=x86_64-pc-linux-gnu e reconstruído. - - Certifique-se de que todos os 197 testes na suíte de teste passaram. - Verifique os resultados executando o seguinte comando: -awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log - - Instale o pacote e a documentação dele: -make install -make install-html - -8.19.2. Conteúdo de GMP - - Bibliotecas instaladas: libgmp.so e libgmpxx.so - Diretório instalado: /usr/share/doc/gmp-6.2.1 - -Descrições Curtas - - libgmp - - Contém funções matemáticas de precisão - - libgmpxx - - Contém funções matemáticas de precisão C++ - -8.20. MPFR-4.1.0 - - O pacote MPFR contém funções para matemática de precisão múltipla. - Tempo aproximado de construção: 0,8 UPC - Espaço em disco exigido: 38 MB - -8.20.1. Instalação de MPFR - - Prepare MPFR para compilação: -./configure --prefix=/usr \ - --disable-static \ - --enable-thread-safe \ - --docdir=/usr/share/doc/mpfr-4.1.0 - - Compile o pacote e gere a documentação HTML: -make -make html - -Importante - - A suíte de teste para MPFR nesta seção é considerada crítica. Não pule - sob quaisquer circunstâncias. - - Teste os resultados e certifique-se de que todos os testes passaram: -make check - - Instale o pacote e a documentação dele: -make install -make install-html - -8.20.2. Conteúdo de MPFR - - Biblioteca instalada: libmpfr.so - Diretório instalado: /usr/share/doc/mpfr-4.1.0 - -Descrições Curtas - - libmpfr - - Contém funções matemáticas de precisão múltipla - -8.21. MPC-1.2.1 - - O pacote MPC contém uma biblioteca para a aritmética de números - complexos com precisão arbitrariamente alta e arredondamento correto de - resultado. - Tempo aproximado de construção: 0,3 UPC - Espaço em disco exigido: 21 MB - -8.21.1. Instalação de MPC - - Prepare MPC para compilação: -./configure --prefix=/usr \ - --disable-static \ - --docdir=/usr/share/doc/mpc-1.2.1 - - Compile o pacote e gere a documentação HTML: -make -make html - - Para testar os resultados, execute: -make check - - Instale o pacote e a documentação dele: -make install -make install-html - -8.21.2. Conteúdo de MPC - - Biblioteca instalada: libmpc.so - Diretório instalado: /usr/share/doc/mpc-1.2.1 - -Descrições Curtas - - libmpc - - Contém funções matemáticas complexas - -8.22. Attr-2.5.1 - - O pacote attr contém utilitários para administrar os atributos - estendidos sobre objetos de sistema de arquivos. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 4,1 MB - -8.22.1. Instalação de Attr - - Prepare Attr para compilação: -./configure --prefix=/usr \ - --disable-static \ - --sysconfdir=/etc \ - --docdir=/usr/share/doc/attr-2.5.1 - - Compile o pacote: -make - - Os testes precisam ser executados sobre um sistema de arquivos que - suporte atributos estendidos, tais como os sistemas de arquivos ext2, - ext3 ou ext4. Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.22.2. Conteúdo de Attr - - Aplicativos instalados: attr, getfattr, e setfattr - Biblioteca instalada: libattr.so - Diretórios instalados: /usr/include/attr e /usr/share/doc/attr-2.5.1 - -Descrições Curtas - - attr - - Estende atributos sobre objetos de sistemas de arquivos - - getfattr - - Obtém os atributos estendidos de objetos de sistemas de arquivos - - setfattr - - Configura os atributos estendidos de objetos de sistemas de arquivos - - libattr - - Contém as funções de biblioteca para manipular atributos estendidos - -8.23. Acl-2.3.1 - - O pacote Acl contém utilitários para administrar Listas de Controle de - Acesso, as quais são usadas para definir direitos de acesso - discricionários mais refinados para arquivos e diretórios. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 6,1 MB - -8.23.1. Instalação de Acl - - Prepare Acl para compilação: -./configure --prefix=/usr \ - --disable-static \ - --docdir=/usr/share/doc/acl-2.3.1 - - Compile o pacote: -make - - Os testes de Acl precisam ser executados sobre um sistema de arquivos - que suporte controles de acesso, após Coreutils ter sido construído com - as bibliotecas de Acl. Se desejado, retorne a esse pacote e execute - make check após Coreutils ter sido construído posteriormente neste - capítulo. - - Instale o pacote: -make install - -8.23.2. Conteúdo de Acl - - Aplicativos instalados: chacl, getfacl, e setfacl - Biblioteca instalada: libacl.so - Diretórios instalados: /usr/include/acl e /usr/share/doc/acl-2.3.1 - -Descrições Curtas - - chacl - - Muda a lista de controle de acesso de um arquivo ou diretório - - getfacl - - Obtém listas de controle de acesso de arquivo - - setfacl - - Configura listas de controle de acesso de arquivo - - libacl - - Contém as funções de biblioteca para manipular Listas de Controle de - Acesso - -8.24. Libcap-2.63 - - O pacote Libcap implementa as interfaces de espaço de usuária(o) para - as capacidades POSIX 1003.1e disponíveis em kernels Linux. Essas - capacidades são um particionamento de todo o poderoso privilégio de - root em um conjunto de privilégios distintos. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 2,7 MB - -8.24.1. Instalação de Libcap - - Impeça bibliotecas estáticas de serem instaladas: -sed -i '/install -m.*STA/d' libcap/Makefile - - Compile o pacote: -make prefix=/usr lib=lib - - O significado da opção de make: - - lib=lib - Esse parâmetro configura o diretório de biblioteca para /usr/lib - em vez de /usr/lib64 em x86_64. Ele não tem efeito em x86. - - Para testar os resultados, execute: -make test - - Instale o pacote: -make prefix=/usr lib=lib install - -8.24.2. Conteúdo de Libcap - - Aplicativos instalados: capsh, getcap, getpcaps, e setcap - Bibliotecas instaladas: libcap.so e libpsx.so - -Descrições Curtas - - capsh - - Um encapsulador de shell para explorar e restringir suporte de - capacidade - - getcap - - Examina capacidades de arquivo - - getpcaps - - Exibe as capacidades sobre o(s) processo(s) consultado(s) - - setcap - - Configura capacidades de arquivo - - libcap - - Contém as funções de biblioteca para manipular capacidades POSIX - 1003.1e - - libpsx - - Contém funções para suportar semântica POSIX para chamadas de sistema - associadas com a biblioteca pthread - -8.25. Shadow-4.11.1 - - O pacote Shadow contém aplicativos para manipular senhas de uma maneira - segura. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 49 MB - -8.25.1. Instalação de Shadow - -Nota - - Se você gostaria de reforçar o uso de senhas fortes, então recorra a - [599]https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/cracklib.h - tml para instalar CrackLib antes de construir Shadow. Então adicione - --with-libcrack ao comando configure abaixo. - - Desabilite a instalação do aplicativo groups e suas páginas de manual, - uma vez que Coreutils fornece uma versão melhor. Também, impeça a - instalação de páginas de manual que já foram instaladas em - [600]Seção 8.3, “Man-pages-5.13â€: -sed -i 's/groups$(EXEEXT) //' src/Makefile.in -find man -name Makefile.in -exec sed -i 's/groups\.1 / /' {} \; -find man -name Makefile.in -exec sed -i 's/getspnam\.3 / /' {} \; -find man -name Makefile.in -exec sed -i 's/passwd\.5 / /' {} \; - - Em vez de usar o método padrão crypt, use o método mais seguro SHA-512 - de encriptação de senha, o qual também permite senhas maiores que oito - (08) caracteres. É também necessário mudar a localização obsoleta - /var/spool/mail para caixas de correio de usuária(o) que Shadow usa por - padrão pela localização /var/mail usada atualmente. E, livre-se de /bin - e /sbin a partir de PATH, uma vez que eles são simples links simbólicos - para seus homônimos em /usr. - -Nota - - Se /bin e (ou) /sbin forem preferidos para serem deixados em PATH por - alguma razão, então modifique PATH em .bashrc após LFS ser construído. -sed -e 's:#ENCRYPT_METHOD DES:ENCRYPT_METHOD SHA512:' \ - -e 's:/var/spool/mail:/var/mail:' \ - -e '/PATH=/{s@/sbin:@@;s@/bin:@@}' \ - -i etc/login.defs - -Nota - - Se você escolher construir Shadow com suporte CrackLib, então execute o - seguinte: -sed -i 's:DICTPATH.*:DICTPATH\t/lib/cracklib/pw_dict:' etc/login.defs - - Prepare Shadow para compilação: -touch /usr/bin/passwd -./configure --sysconfdir=/etc \ - --disable-static \ - --with-group-name-max-length=32 - - O significado da opção de configure: - - touch /usr/bin/passwd - O arquivo /usr/bin/passwd precisa existir, pois a localização - dele é codificada rigidamente em alguns aplicativos, e se ele - não existir, então a localização padrão não é correta. - - --with-group-name-max-length=32 - O nome de usuária(o) máximo é trinta e dois (32) caracteres. - Torne o nome de grupo máximo o mesmo. - - Compile o pacote: -make - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -make exec_prefix=/usr install -make -C man install-man - -8.25.2. Configurando Shadow - - Esse pacote contém utilitários para adicionar, modificar, e deletar - usuárias(os) e grupos; configura e modifica suas senhas; e realiza - outras tarefas administrativas. Para uma explanação completa do que - password shadowing significa, veja o arquivo doc/HOWTO dentro da árvore - desempacotada de fonte. Se usar suporte Shadow, então tenha na mente - que aplicativos que necessitem verificar senhas (gerenciadores de tela, - aplicativos de FTP, daemons pop3, etc.) precisam ser conformes com - Shadow. Isto é, eles precisam ser capazes de trabalhar com senhas - ocultas. - - Para habilitar senhas ocultas, execute o seguinte comando: -pwconv - - Para habilitar senhas ocultas de grupo, execute: -grpconv - - A configuração padrão de Shadow para o utilitário useradd tem umas - poucas ressalvas que precisam de alguma explanação. Primeiro, a ação - padrão para o utilitário useradd é a de criar a(o) usuária(o) e um - grupo de mesmo nome que a(o) usuária(o). Por padrão os números de ID de - usuária(o) (UID) e ID de grupo (GID) iniciarão com 1000. Isso significa - que se você não passar parâmetros para useradd, então cada usuária(o) - será uma(m) membro de um grupo único no sistema. Se esse comportamento - for indesejável, então você precisará passar um parâmetro de -g ou -N - para useradd ou mudar a configuração de USERGROUPS_ENAB em - /etc/login.defs. Veja-se useradd(8) para mais informação. - - Segundo, para mudar os parâmetros padrão, o arquivo - /etc/default/useradd precisa ser criado e adaptado para atender às suas - necessidades particulares. Crie ele com: -mkdir -p /etc/default -useradd -D --gid 999 - - Explanações de Parâmetro de /etc/default/useradd - - GROUP=999 - Esse parâmetro configura o início dos números de grupo usado no - arquivo /etc/group. O valor particular 999 vem do parâmetro - --gid acima. Você pode modificá-lo para qualquer coisa que - deseje. Note que useradd nunca reusará um UID ou GID. Se o - número identificado nesse parâmetro for usado, então ele usará o - próximo número disponível. Note também que se você não tiver um - grupo com um ID igual a esse número em seu sistema na primeira - vez que você usar useradd sem o parâmetro -g, então você - receberá uma mensagem exibida no terminal que diz: useradd: - unknown GID 999, apesar de a conta estar criada corretamente. - Esse é o motivo pelo qual nós criamos o grupo users com esse ID - de grupo em [601]Seção 7.6, “Criando Arquivos Essenciais e Links - Simbólicosâ€. - - CREATE_MAIL_SPOOL=yes - Esse parâmetro faz com que useradd crie um arquivo de caixa de - correio para a(o) usuária(o) recém criada(o). useradd tornará a - propriedade de grupo desse arquivo para o grupo mail com - permissões 0660. Se você preferisse que esses arquivos de caixa - de correio não fossem criados por useradd, então execute o - seguinte comando: - -sed -i '/MAIL/s/yes/no/' /etc/default/useradd - -8.25.3. Configurando a senha de root - - Escolha uma senha para a(o) usuária(o) root e configure ela executando: -passwd root - -8.25.4. Conteúdo de Shadow - - Aplicativos instalados: chage, chfn, chgpasswd, chpasswd, chsh, expiry, - faillog, getsubids, gpasswd, groupadd, groupdel, groupmems, groupmod, - grpck, grpconv, grpunconv, lastlog, login, logoutd, newgidmap, newgrp, - newuidmap, newusers, nologin, passwd, pwck, pwconv, pwunconv, sg (link - para newgrp), su, useradd, userdel, usermod, vigr (link para vipw), e - vipw - Biblioteca instalada: libsubid.so - Diretório instalado: /etc/default - -Descrições Curtas - - chage - - Usado para alterar o número de dias máximo entre mudanças obrigatórias - de senha - - chfn - - Usado para alterar um nome completo da(o) usuária(o) e outra informação - - chgpasswd - - Usado para atualizar senhas de grupo em modo de lote - - chpasswd - - Usado para atualizar senhas de usuárias(os) em modo de lote - - chsh - - Usado para alterar um shell de login padrão da(o) usuária(o) - - expiry - - Verifica e reforça a política atual de expiração de senha - - faillog - - É Usado para examinar o registro de falhas de login, configurar um - número máximo de falhas antes que uma conta seja bloqueada, ou zerar a - contagem de falhas - - getsubids - - É usado para listar os intervalos subordinados de id para uma(m) - usuária(o) - - gpasswd - - É usado para adicionar e deletar membros e administradoras(es) para - grupos - - groupadd - - Cria um grupo com o nome dado - - groupdel - - Deleta o grupo com o nome dado - - groupmems - - Permite que uma(m) usuária(o) administre sua própria lista de membros - de grupo sem a exigência de privilégios de superusuária(o) - - groupmod - - É usado para modificar o nome ou GID do grupo dado - - grpck - - Verifica a integridade dos arquivos de grupo /etc/group e /etc/gshadow - - grpconv - - Cria ou atualiza o arquivo de grupo de sombra a partir do arquivo de - grupo normal - - grpunconv - - Atualiza /etc/group a partir de /etc/gshadow e então deleta o último - - lastlog - - Reporta o login mais recente de todas(os) as(os) usuárias(os) ou de - uma(m) usuária(o) dada(o) - - login - - É usado pelo sistema para permitir usuárias(os) logar - - logoutd - - É um daemon usado para reforçar restrições sobre horário de logon e - portas - - newgidmap - - É usado para configurar o mapeamento gid de um espaço de nome de - usuária(o) - - newgrp - - É usado para modificar o GID atual durante uma sessão de login - - newuidmap - - É usado para configurar o mapeamento uid de um espaço de nome de - usuária(o) - - newusers - - É usado para criar ou atualizar uma série inteira de contas de - usuárias(os) - - nologin - - Exibe uma mensagem que uma conta não está disponível; projetado para - ser usado como o shell padrão para contas que foram desabilitadas - - passwd - - É usado para modificar a senha para uma conta de usuária(o) ou grupo - - pwck - - Verifica a integridade dos arquivos de senha /etc/passwd e /etc/shadow - - pwconv - - Cria ou atualiza o arquivo de senha de sombra a partir do arquivo de - senha normal - - pwunconv - - Atualiza /etc/passwd a partir de /etc/shadow e então deleta o último - - sg - - Executa um comando dado enquanto o GID da(o) usuária(o) está - configurado para aquele do grupo dado - - su - - Executa um shell com IDs de usuária(o) e grupo substitutos - - useradd - - Cria uma(m) usuária(o) nova(o) com o nome dado, ou atualiza a - informação padrão de nova(o) usuária(o) - - userdel - - Deleta a conta de usuária(o) dada - - usermod - - É usado para modificar o nome de login da(o) usuária(o) dada(o), - Identificação de Usuária(o) (UID), shell, grupo inicial, diretório - home, etc. - - vigr - - Edita os arquivos /etc/group ou /etc/gshadow - - vipw - - Edita os arquivos /etc/passwd ou /etc/shadow - - libsubid - - Biblioteca para processar intervalos subordinados de id para - usuárias(os) - -8.26. GCC-11.2.0 - - O pacote GCC contém a GNU compiler collection, o qual inclui os - compiladores C e C++. - Tempo aproximado de construção: 153 UPC (com os testes) - Espaço em disco exigido: 4,3 GB - -8.26.1. Instalação de GCC - - Primeiramente, conserte um problema que quebra libasan.a quando da - construção desse pacote com Glibc-2.34 ou posterior: -sed -e '/static.*SIGSTKSZ/d' \ - -e 's/return kAltStackSize/return SIGSTKSZ * 4/' \ - -i libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp - - Se construir em x86_64, então mude o nome de diretório padrão para - bibliotecas de 64 bits para “libâ€: -case $(uname -m) in - x86_64) - sed -e '/m64=/s/lib64/lib/' \ - -i.orig gcc/config/i386/t-linux64 - ;; -esac - - A documentação de GCC recomenda construir GCC em um diretório de - construção dedicado: -mkdir -v build -cd build - - Prepare GCC para compilação: -../configure --prefix=/usr \ - LD=ld \ - --enable-languages=c,c++ \ - --disable-multilib \ - --disable-bootstrap \ - --with-system-zlib - - Note que para outras linguagens de programação, existem alguns - pré-requisitos que ainda não estão disponíveis. Veja-se a [602]página - de GCC do Livro BLFS para instruções sobre como construir todas as - linguagens suportadas do GCC. - - O significado dos novos parâmetros de configure: - - LD=ld - Esse parâmetro induz o script configure a usar o ld instalado - pelo binutils construído anteriormente neste capítulo, em vez da - versão construída cruzadamente a qual de outra maneira seria - usada. - - --with-system-zlib - Essa chave diz a GCC para vincular à cópia instalada de sistema - da biblioteca zlib, em vez de sua própria cópia interna. - - Compile o pacote: -make - -Importante - - Nesta seção, a suíte de teste para GCC é considerada importante, porém - ela toma um tempo longo. Construtoras(es) de primeira vez são - encorajadas(os) a não pular ela. O tempo para executar os testes pode - ser reduzido significantemente adicionando-se -jx ao comando make - abaixo, onde x é o número de núcleos em seu sistema. - - Um conjunto de testes na suíte de teste de GCC é conhecida por esgotar - a pilha padrão, então aumente o tamanho de pilha antes de executar os - testes: -ulimit -s 32768 - - Teste os resultados como uma(m) usuária(o) não privilegiada(o), porém - não pare aos erros: -chown -Rv tester . -su tester -c "PATH=$PATH make -k check" - - Para receber um sumário dos resultados de suíte de teste, execute: -../contrib/test_summary - - Para apenas os sumários, entube a saída por grep -A7 Summ. - - Resultados podem ser comparados com aqueles localizados em - [603]https://www.linuxfromscratch.org/lfs/build-logs/11.1/ e - [604]https://gcc.gnu.org/ml/gcc-testresults/. - - Oito testes relacionados ao analisador são conhecidos por falhar. - - Um teste chamado asan_test.C é conhecido por falhar. - - Em libstdc++, um teste chamado 49745.cc é conhecido por falhar, pois as - dependências de cabeçalho em glibc mudaram. - - Em libstdc++, um teste de numeração de pontuação e seis testes - relacionados a get_time são conhecidos por falhar. Essas são todas por - causa das definições de locale em glibc que mudaram, porém libstdc++ - atualmente não suporta essas mudanças. - - Umas poucas falhas inesperadas não podem ser evitadas sempre. As(Os) - desenvolvedoras(es) de GCC geralmente estão cientes desses problemas, - mas ainda não os resolveram. A menos que os resultados de teste sejam - amplamente diferentes daqueles na URL acima, é seguro continuar. - - Instale o pacote e remova um diretório desnecessário: -make install -rm -rf /usr/lib/gcc/$(gcc -dumpmachine)/11.2.0/include-fixed/bits/ - - O diretório de construção de GCC é de propriedade de tester agora e a - propriedade do diretório de cabeçalho instalado (e o conteúdo dele) - estarão incorretos. Mude a propriedade para usuária(o) e grupo root: -chown -v -R root:root \ - /usr/lib/gcc/*linux-gnu/11.2.0/include{,-fixed} - - Crie um link simbólico exigido por [605]FHS por razões "históricas". -ln -svr /usr/bin/cpp /usr/lib - - Adicione um link simbólico de compatibilidade para habilitar a - construção de aplicativos com Link Time Optimization (LTO): -ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/11.2.0/liblto_plugin.so \ - /usr/lib/bfd-plugins/ - - Agora que nosso conjunto de ferramentas final está no lugar, é - importante certificar-se novamente de que compilação e vinculação - funcionarão como esperado. Nós fazemos isso realizando algumas - verificações de sanidade: -echo 'int main(){}' > dummy.c -cc dummy.c -v -Wl,--verbose &> dummy.log -readelf -l a.out | grep ': /lib' - - Deveriam não existir erros, e a saída do último comando será - (permitindo diferenças específicas de plataforma no nome de vinculador - dinâmico): -[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2] - - Agora tenha certeza de que nós estamos configurados para usar os - arquivos de iniciação corretos: -grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log - - A saída do último comando deveria ser: -/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/crt1.o succeeded -/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/crti.o succeeded -/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/crtn.o succeeded - - Dependendo da arquitetura de sua máquina, o acima talvez difira - levemente. A diferença será o nome do diretório depois de /usr/lib/gcc. - A coisa importante a se olhar aqui é que gcc encontrou todos os três - arquivos crt*.o sob o diretório /usr/lib. - - Verifique que o compilador está procurando pelos arquivos de cabeçalho - corretos: -grep -B4 '^ /usr/include' dummy.log - - Esse comando deveria retornar a seguinte saída: -#include <...> search starts here: - /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include - /usr/local/include - /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include-fixed - /usr/include - - Novamente, o diretório nomeado após seu triplet alvo talvez seja - diferente do que o acima, dependendo da arquitetura de seu sistema. - - Em seguida, verifique que o novo vinculador está sendo usado com os - caminhos de procura corretos: -grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g' - - Referências a caminhos que tem componentes com '-linux-gnu' deveriam - ser ignoradas, porém, do contrário, a saída do último comando deveria - ser: -SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib64") -SEARCH_DIR("/usr/local/lib64") -SEARCH_DIR("/lib64") -SEARCH_DIR("/usr/lib64") -SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib") -SEARCH_DIR("/usr/local/lib") -SEARCH_DIR("/lib") -SEARCH_DIR("/usr/lib"); - - Um sistema de 32 bits talvez veja uns poucos diretórios diferentes. Por - exemplo, aqui está a saída originária de uma máquina i686: -SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32") -SEARCH_DIR("/usr/local/lib32") -SEARCH_DIR("/lib32") -SEARCH_DIR("/usr/lib32") -SEARCH_DIR("/usr/i686-pc-linux-gnu/lib") -SEARCH_DIR("/usr/local/lib") -SEARCH_DIR("/lib") -SEARCH_DIR("/usr/lib"); - - Em seguida, tenha certeza de que nós estamos usando a libc correta: -grep "/lib.*/libc.so.6 " dummy.log - - A saída do último comando deveria ser: -attempt to open /usr/lib/libc.so.6 succeeded - - Tenha certeza de que GCC está usando o vinculador dinâmico correto: -grep found dummy.log - - A saída do último comando deveria ser (permitindo diferenças - específicas de plataforma no nome de vinculador dinâmico): -found ld-linux-x86-64.so.2 at /usr/lib/ld-linux-x86-64.so.2 - - Se a saída não aparecer como mostrado acima ou não for recebida de - jeito nenhum, então alguma coisa está seriamente errada. Investigue e - retrace os passos para encontrar onde está o problema e corrija o - mesmo. Quaisquer problemas precisão ser resolvidos antes de continuar - com o processo. - - Uma vez que tudo esteja funcionando corretamente, limpe os arquivos de - teste: -rm -v dummy.c a.out dummy.log - - Finalmente, mova um arquivo mal colocado: -mkdir -pv /usr/share/gdb/auto-load/usr/lib -mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib - -8.26.2. Conteúdo de GCC - - Aplicativos instalados: c++, cc (link para gcc), cpp, g++, gcc, gcc-ar, - gcc-nm, gcc-ranlib, gcov, gcov-dump, gcov-tool, e lto-dump - Bibliotecas instaladas: libasan.{a,so}, libatomic.{a,so}, libcc1.so, - libgcc.a, libgcc_eh.a, libgcc_s.so, libgcov.a, libgomp.{a,so}, - libitm.{a,so}, liblsan.{a,so}, liblto_plugin.so, libquadmath.{a,so}, - libssp.{a,so}, libssp_nonshared.a, libstdc++.{a,so}, libstdc++fs.a, - libsupc++.a, libtsan.{a,so}, e libubsan.{a,so} - Diretórios instalados: /usr/include/c++, /usr/lib/gcc, - /usr/libexec/gcc, e /usr/share/gcc-11.2.0 - -Descrições Curtas - - c++ - - O compilador C++ - - cc - - O compilador C - - cpp - - O preprocessador C; é usado pelo compilador para expandir as - declarações #include, #define e similares nos arquivos fonte - - g++ - - O compilador C++ - - gcc - - O compilador C - - gcc-ar - - Um encapsulador em torno de ar que adiciona um plugin à linha de - comando. Esse aplicativo é usado apenas para adicionar "link time - optimization" e não é útil com as opções de construção padrão - - gcc-nm - - Um encapsulador em torno de nm que adiciona um plugin à linha de - comando. Esse aplicativo é usado apenas para adicionar "link time - optimization" e não é útil com as opções de construção padrão - - gcc-ranlib - - Um encapsulador em torno de ranlib que adiciona um plugin à linha de - comando. Esse aplicativo é usado apenas para adicionar "link time - optimization" e não é útil com as opções de construção padrão - - gcov - - Uma ferramenta de teste de cobertura; usada para analisar aplicativos - para determinar onde as otimizações terão mais efeito - - gcov-dump - - Ferramenta de despejo de perfil offline gcda e gcno - - gcov-tool - - Ferramenta de processamento de perfil offline gcda - - lto-dump - - Ferramenta para despejar arquivos objeto produzidos por GCC com LTO - habilitado - - libasan - - A biblioteca de tempo de execução do Address Sanitizer - - libatomic - - Biblioteca de tempo de execução atômica interna do GCC - - libcc1 - - A biblioteca de pré-processamento C - - libgcc - - Contém suporte de tempo de execução para gcc - - libgcov - - Essa biblioteca é vinculada a um aplicativo quando GCC for instruído a - habilitar criação de perfil - - libgomp - - Implementação GNU da API OpenMP para programação paralela de memória - compartilhada multiplataforma em C/C++ e Fortran - - libitm - - A biblioteca de memória transacional GNU - - liblsan - - A biblioteca de tempo de execução do Leak Sanitizer - - liblto_plugin - - Plugin LTO do GCC permite ao binutils processar arquivos objeto - produzidos por GCC com LTO habilitado - - libquadmath - - API da Biblioteca Matemática de Precisão Quádrupla GCC - - libssp - - Contém rotinas que suportam a funcionalidade de proteção contra - esmagamento de pilha do GCC - - libstdc++ - - A biblioteca C++ padrão - - libstdc++fs - - Biblioteca de Sistema de Arquivos ISO/IEC TS 18822:2015 - - libsupc++ - - Fornece rotinas de suporte para a linguagem de programação C++ - - libtsan - - A biblioteca de tempo de execução do Thread Sanitizer - - libubsan - - A biblioteca de tempo de execução do Undefined Behavior Sanitizer - -8.27. Pkg-config-0.29.2 - - O pacote pkg-config contém uma ferramenta para passar o caminho include - e (ou) caminhos de biblioteca para ferramentas de construção durante as - fases configure e make de instalações de pacote. - Tempo aproximado de construção: 0,3 UPC - Espaço em disco exigido: 29 MB - -8.27.1. Instalação de Pkg-config - - Prepare Pkg-config para compilação: -./configure --prefix=/usr \ - --with-internal-glib \ - --disable-host-tool \ - --docdir=/usr/share/doc/pkg-config-0.29.2 - - O significado das novas opções de configure: - - --with-internal-glib - Isso permitirá que pkg-config use a versão interna dele de Glib, - pois uma versão externa não está disponível em LFS. - - --disable-host-tool - Essa opção desabilita a criação de um indesejado hard link para - o aplicativo pkg-config. - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.27.2. Conteúdo de Pkg-config - - Aplicativo instalado: pkg-config - Diretório instalado: /usr/share/doc/pkg-config-0.29.2 - -Descrições Curtas - - pkg-config - - Retorna meta informação para a biblioteca ou pacote especificada - -8.28. Ncurses-6.3 - - O pacote Ncurses contém bibliotecas para manipulação de telas de - caracteres independente de terminal. - Tempo aproximado de construção: 0,4 UPC - Espaço em disco exigido: 45 MB - -8.28.1. Instalação de Ncurses - - Prepare Ncurses para compilação: -./configure --prefix=/usr \ - --mandir=/usr/share/man \ - --with-shared \ - --without-debug \ - --without-normal \ - --enable-pc-files \ - --enable-widec \ - --with-pkg-config-libdir=/usr/lib/pkgconfig - - O significado das novas opções de configure: - - --enable-widec - Essa chave faz com que bibliotecas de caracteres largos (por - exemplo, libncursesw.so.6.3) sejam construídas em vez de - bibliotecas normais (por exemplo, libncurses.so.6.3). Essas - bibliotecas de caracteres largos são utilizáveis tanto em - locales de múltiplos bytes quanto em tradicionais de oito (08) - bits, enquanto bibliotecas normais funcionam adequadamente só em - locales de oito (08) bits. Bibliotecas de caracteres largos e - bibliotecas normais são compatíveis em fonte, mas não são - compatíveis em binário. - - --enable-pc-files - Essa chave gera e instala arquivos .pc para pkg-config. - - --without-normal - Essa chave desabilita a construção e instalação da maioria das - bibliotecas estáticas. - - Compile o pacote: -make - - Esse pacote tem uma suíte de teste, entretanto ela só pode ser - executada após o pacote ter sido instalado. Os testes residem no - diretório test/. Veja-se o arquivo README naquele diretório para - maiores detalhes. - - A instalação desse pacote sobrescreverá libncursesw.so.6.3 no local. - Isso talvez quebre o processo de shell que está usando código e dados a - partir do arquivo de biblioteca. Instale o pacote com DESTDIR, e - substitua o arquivo de biblioteca corretamente usando comando install. - Um arquivamento estático inútil que não é manejado por configure também - é removido: -make DESTDIR=$PWD/dest install -install -vm755 dest/usr/lib/libncursesw.so.6.3 /usr/lib -rm -v dest/usr/lib/{libncursesw.so.6.3,libncurses++w.a} -cp -av dest/* / - - Muitos aplicativos ainda esperam que o vinculador seja capaz de - encontrar bibliotecas Ncurses de caracteres não largos. Ajuste tais - aplicativos para vincularem com bibliotecas de caracteres largos por - meio de links simbólicos e scripts de vinculador: -for lib in ncurses form panel menu ; do - rm -vf /usr/lib/lib${lib}.so - echo "INPUT(-l${lib}w)" > /usr/lib/lib${lib}.so - ln -sfv ${lib}w.pc /usr/lib/pkgconfig/${lib}.pc -done - - Finalmente, certifique-se de que aplicativos antigos que procuram por - -lcurses em tempo de construção ainda sejam construíveis: -rm -vf /usr/lib/libcursesw.so -echo "INPUT(-lncursesw)" > /usr/lib/libcursesw.so -ln -sfv libncurses.so /usr/lib/libcurses.so - - Se desejado, então instale a documentação do Ncurses: -mkdir -pv /usr/share/doc/ncurses-6.3 -cp -v -R doc/* /usr/share/doc/ncurses-6.3 - -Nota - - As instruções acima não criam bibliotecas Ncurses de caracteres não - largos, uma vez que nenhum pacote instalado por compilação a partir de - fontes se vincularia a elas em tempo de execução. Entretanto, os únicos - aplicativos somente binário conhecidos que se vinculam à bibliotecas - Ncurses de caracteres não largos exigem versão 5. Se você precisa ter - tais bibliotecas, por causa de algum aplicativo somente binário ou para - estar conforme com LSB, então construa o pacote novamente com os - seguintes comandos: -make distclean -./configure --prefix=/usr \ - --with-shared \ - --without-normal \ - --without-debug \ - --without-cxx-binding \ - --with-abi-version=5 -make sources libs -cp -av lib/lib*.so.5* /usr/lib - -8.28.2. Conteúdo de Ncurses - - Aplicativos instalados: captoinfo (link para tic), clear, infocmp, - infotocap (link para tic), ncursesw6-config, reset (link para tset), - tabs, tic, toe, tput, e tset - Bibliotecas instaladas: libcursesw.so (link simbólico e script de - vinculador para libncursesw.so), libformw.so, libmenuw.so, - libncursesw.so, libpanelw.so, e homônimos delas de caractere não largo - sem "w" nos nomes de biblioteca. - Diretórios instalados: /usr/share/tabset, /usr/share/terminfo, e - /usr/share/doc/ncurses-6.3 - -Descrições Curtas - - captoinfo - - Converte uma descrição termcap em uma descrição terminfo - - clear - - Limpa a tela, se possível - - infocmp - - Compara ou imprime descrições terminfo - - infotocap - - Converte uma descrição terminfo em uma descrição termcap - - ncursesw6-config - - Fornece informação de configuração para ncurses - - reset - - Reinicializa um terminal para valores padrão dele - - tabs - - Limpa e configura paradas de tabulação em um terminal - - tic - - O compilador de descrição de entrada terminfo que traduz um arquivo - terminfo do formato fonte para o formato binário necessário para as - rotinas de biblioteca ncurses [Um arquivo terminfo contém informação - sobre as capacidades de um certo terminal]. - - toe - - Lista todos os tipos de terminal disponíveis, dando o nome primário e - descrição para cada - - tput - - Torna os valores de capacidades dependentes de terminal disponíveis - para o shell; também pode ser usado para reconfigurar ou inicializar um - terminal ou reportar o nome longo dele - - tset - - Pode ser usado para inicializar terminais - - libcursesw - - Um link para libncursesw - - libncursesw - - Contém funções para exibir texto em muitas formas complexas em uma tela - de terminal; um bom exemplo do uso dessas funções é o menu exibido - durante o make menuconfig do kernel - - libformw - - Contém funções para implementar formulários - - libmenuw - - Contém funções para implementar menus - - libpanelw - - Contém funções para implementar painéis - -8.29. Sed-4.8 - - O pacote Sed contém um editor de fluxo. - Tempo aproximado de construção: 0,4 UPC - Espaço em disco exigido: 31 MB - -8.29.1. Instalação de Sed - - Prepare Sed para compilação: -./configure --prefix=/usr - - Compile o pacote e gere a documentação HTML: -make -make html - - Para testar os resultados, execute: -chown -Rv tester . -su tester -c "PATH=$PATH make check" - - Instale o pacote e documentação dele: -make install -install -d -m755 /usr/share/doc/sed-4.8 -install -m644 doc/sed.html /usr/share/doc/sed-4.8 - -8.29.2. Conteúdo do Sed - - Aplicativo instalado: sed - Diretório instalado: /usr/share/doc/sed-4.8 - -Descrições Curtas - - sed - - Filtra e transforma arquivos de texto em uma passagem única - -8.30. Psmisc-23.4 - - O pacote Psmisc contém aplicativos para mostrar informação sobre - processos em execução. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 5,6 MB - -8.30.1. Instalação do Psmisc - - Prepare Psmisc para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -make install - -8.30.2. Conteúdo do Psmisc - - Aplicativos instalados: fuser, killall, peekfd, prtstat, pslog, pstree, - e pstree.x11 (link para pstree) - -Descrições Curtas - - fuser - - Reporta os IDs de Processos (PIDs) de processos que usam os arquivos ou - sistemas de arquivos dados - - killall - - Mata processos pelo nome; envia um sinal para todos os processos - executando quaisquer dos comandos dados - - peekfd - - Dê uma olhada nos descritores de arquivo de um processo em execução, - dado seu PID - - prtstat - - Imprime informação sobre um processo - - pslog - - Reporta o caminho atual de registros de um processo - - pstree - - Exibe processos em execução como uma árvore - - pstree.x11 - - O mesmo que pstree, exceto que ele espera por confirmação antes de sair - -8.31. Gettext-0.21 - - O pacote Gettext contém utilitários para internacionalização e - localização. Eles permitem que aplicativos sejam compilados com Suporte - ao Idioma Nativo (Native Language Support - NLS), habilitando-os a - emitir mensagens no idioma nativo da(o) usuária(o). - Tempo aproximado de construção: 2,7 UPC - Espaço em disco exigido: 233 MB - -8.31.1. Instalação do Gettext - - Prepare Gettext para compilação: -./configure --prefix=/usr \ - --disable-static \ - --docdir=/usr/share/doc/gettext-0.21 - - Compile o pacote: -make - - Para testar os resultados (isso toma um tempo longo, em torno de 3 - UPCs), execute: -make check - - Instale o pacote: -make install -chmod -v 0755 /usr/lib/preloadable_libintl.so - -8.31.2. Conteúdo do Gettext - - Aplicativos instalados: autopoint, envsubst, gettext, gettext.sh, - gettextize, msgattrib, msgcat, msgcmp, msgcomm, msgconv, msgen, - msgexec, msgfilter, msgfmt, msggrep, msginit, msgmerge, msgunfmt, - msguniq, ngettext, recode-sr-latin, e xgettext - Bibliotecas instaladas: libasprintf.so, libgettextlib.so, - libgettextpo.so, libgettextsrc.so, libtextstyle.so, e - preloadable_libintl.so - Diretórios instalados: /usr/lib/gettext, /usr/share/doc/gettext-0.21, - /usr/share/gettext, e /usr/share/gettext-0.19.8 - -Descrições Curtas - - autopoint - - Copia arquivos de infraestrutura padrão do Gettext para um pacote fonte - - envsubst - - Substitui variáveis de ambiente em sequências de caracteres de formato - de shell - - gettext - - Traduz uma mensagem de idioma natural para o idioma da(o) usuária(o) - procurando a tradução em um catálogo de mensagens - - gettext.sh - - Primariamente serve como uma biblioteca de função de shell para gettext - - gettextize - - Copia todos os arquivos Gettext padrão para o diretório de nível - superior fornecido de um pacote para começar a internacionalizá-lo - - msgattrib - - Filtra as mensagens de um catálogo de tradução de acordo com os - atributos delas e manipula os atributos - - msgcat - - Concatena e funde os arquivos .po fornecidos - - msgcmp - - Compara dois arquivos .po para verificar se ambos contém o mesmo - conjunto de sequências de caracteres de msgid - - msgcomm - - Encontra as mensagens que são comuns aos arquivos .po fornecidos - - msgconv - - Converte um catálogo de tradução para uma codificação de caracteres - diferente - - msgen - - Cria um catálogo de tradução em inglês - - msgexec - - Aplica um comando a todas as traduções de um catálogo de tradução - - msgfilter - - Aplica um filtro a todas as traduções de um catálogo de tradução - - msgfmt - - Gera um catálogo de mensagem binária a partir de um catálogo de - tradução - - msggrep - - Extrai todas as mensagens de um catálogo de tradução que correspondem a - um determinado padrão ou pertencem a alguns arquivos fonte fornecidos - - msginit - - Cria um novo arquivo .po, inicializando a meta informação com valores - oriundos do ambiente da(o) usuária(o) - - msgmerge - - Combina duas traduções cruas em um arquivo único - - msgunfmt - - Descompila um catálogo de mensagem binário em um texto de tradução cru - - msguniq - - Unifica traduções duplicadas em um catálogo de tradução - - ngettext - - Exibe traduções no idioma nativo de uma mensagem textual cuja forma - gramatical depende de um número - - recode-sr-latin - - Recodifica texto sérvio do cirílico para alfabeto latino - - xgettext - - Extrai as linhas de mensagem traduzíveis dos arquivos fonte fornecidos - para fazer o primeiro modelo de tradução - - libasprintf - - define a classe autosprintf, que torna as rotinas de saída formatada em - C utilizáveis em aplicativos C++, para uso com as sequências de - caracteres e os fluxos - - libgettextlib - - uma biblioteca privada contendo rotinas comuns usadas pelos vários - aplicativos Gettext; elas não são destinadas para uso geral - - libgettextpo - - Usado para escrever aplicativos especializados que processam arquivos - .po; essa biblioteca é usada quando os aplicativos padrão fornecidos - com Gettext (tais como msgcomm, msgcmp, msgattrib, e msgen) não são - suficientes - - libgettextsrc - - Uma biblioteca privada contendo rotinas comuns usadas pelos vários - aplicativos Gettext; elas não são destinadas para uso geral - - libtextstyle - - Biblioteca de estilo de texto - - preloadable_libintl - - Uma biblioteca, destinada a ser usada por LD_PRELOAD que auxilia - libintl no registro de mensagens não traduzidas - -8.32. Bison-3.8.2 - - O pacote Bison contém um gerador de analisador. - Tempo aproximado de construção: 6,3 UPC - Espaço em disco exigido: 53 MB - -8.32.1. Instalação do Bison - - Prepare Bison para compilação: -./configure --prefix=/usr --docdir=/usr/share/doc/bison-3.8.2 - - Compile o pacote: -make - - Para testar os resultados (cerca de 5,5 UPCs), execute: -make check - - Instale o pacote: -make install - -8.32.2. Conteúdo do Bison - - Aplicativos instalados: bison e yacc - Biblioteca instalada: liby.a - Diretório instalado: /usr/share/bison - -Descrições Curtas - - bison - - Gera, a partir de uma série de regras, um aplicativo para analisar a - estrutura de arquivos de texto; Bison é uma substituição ao Yacc (Yet - Another Compiler Compiler) - - yacc - - Um encapsulador para bison, destinado a aplicativos que ainda chamam - yacc em vez de bison; ele chama bison com a opção -y - - liby - - A biblioteca Yacc contendo implementações de funções compatíveis com - Yacc yyerror e main; essa biblioteca normalmente não é muito útil, mas - POSIX a exige - -8.33. Grep-3.7 - - O pacote Grep contém aplicativos para procura ao longo do conteúdo de - arquivos. - Tempo aproximado de construção: 0,9 UPC - Espaço em disco exigido: 36 MB - -8.33.1. Instalação do Grep - - Prepare Grep para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.33.2. Conteúdo do Grep - - Aplicativos instalados: egrep, fgrep, e grep - -Descrições Curtas - - egrep - - Imprime linhas que correspondem a uma expressão regular estendida - - fgrep - - Imprime linhas que correspondem a uma lista de sequências de caracteres - fixas - - grep - - Imprime linhas que correspondem a expressão regular básica - -8.34. Bash-5.1.16 - - O pacote Bash contém o Bourne-Again SHell. - Tempo aproximado de construção: 1,5 UPC - Espaço em disco exigido: 50 MB - -8.34.1. Instalação do Bash - - Prepare Bash para compilação: -./configure --prefix=/usr \ - --docdir=/usr/share/doc/bash-5.1.16 \ - --without-bash-malloc \ - --with-installed-readline - - O significado da nova opção de configure: - - --with-installed-readline - Essa opção diz a Bash para usar a biblioteca readline que já - está instalada no sistema em vez de usar sua própria versão de - readline. - - Compile o pacote: -make - - Pule para “Instale o pacote†se não executar a suíte de teste. - - Para preparar os testes, garanta que a(o) usuária(o) tester pode - escrever na árvore de fontes: -chown -Rv tester . - - A suíte de teste do pacote é desenhada para ser executada como uma(m) - usuária(o) não root que é proprietária(o) do terminal conectado à - entrada padrão. Para satisfazer a exigência, crie um novo pseudo - terminal usando Expect e execute os testes como a(o) usuária (o) - tester: -su -s /usr/bin/expect tester << EOF -set timeout -1 -spawn make tests -expect eof -lassign [wait] _ _ _ value -exit $value -EOF - - Instale o pacote: -make install - - Execute o aplicativo recém compilado bash (substituindo o que está - sendo executado atualmente): -exec /usr/bin/bash --login - -8.34.2. Conteúdo do Bash - - Aplicativos instalados: bash, bashbug, e sh (link para bash) - Diretórios instalados: /usr/include/bash, /usr/lib/bash, e - /usr/share/doc/bash-5.1.16 - -Descrições Curtas - - bash - - Um interpretador de comandos vastamente utilizado; ele realiza muitos - tipos de expansões e substituições sobre uma dada linha de comando - antes de executá-la, portanto fazendo desse interpretador uma - ferramenta poderosa - - bashbug - - Um script de shell para ajudar a(o) usuária(o) a compor e enviar - relatórios de defeitos formatados padrão concernentes a bash - - sh - - Um link simbólico para o aplicativo bash; quando invocado como sh, bash - tenta imitar o comportamento de inicialização de versões históricas do - sh o mais próximo possível, enquanto também conformando com o padrão - POSIX - -8.35. Libtool-2.4.6 - - O pacote Libtool contém o script de suporte à biblioteca genérica GNU. - Ele esconde a complexidade de usar bibliotecas compartilhadas em uma - interface consistente e portável. - Tempo aproximado de construção: 1,5 UPC - Espaço em disco exigido: 43 MB - -8.35.1. Instalação do Libtool - - Prepare Libtool para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - -Nota - - O tempo de teste para libtool pode ser reduzido significativamente em - um sistema com múltiplos núcleos. Para fazer isso, acrescente - TESTSUITEFLAGS=-j ao final da linha acima. Por exemplo, usar -j4 - pode reduzir o tempo de teste em mais que 60 por cento. - - Cinco testes são conhecidos por falharem dentro do ambiente de - construção LFS devido a uma dependência circular, porém todos os testes - passam se verificados novamente após automake ser instalado. - - Instale o pacote: -make install - - Remova uma biblioteca estática inútil: -rm -fv /usr/lib/libltdl.a - -8.35.2. Conteúdo do Libtool - - Aplicativos instalados: libtool e libtoolize - Biblioteca instalada: libltdl.so - Diretórios instalados: /usr/include/libltdl e /usr/share/libtool - -Descrições Curtas - - libtool - - Fornece serviços generalizados de suporte à construção de bibliotecas - - libtoolize - - Fornece uma maneira padrão de adicionar suporte libtool a um pacote - - libltdl - - Esconde as várias dificuldades do dlopening de bibliotecas - -8.36. GDBM-1.23 - - O pacote GDBM contém o GNU Database Manager. Ele é uma biblioteca de - funções de banco de dados que usa hash extensível e funciona semelhante - ao dbm UNIX padrão. A biblioteca fornece primitivos para armazenar - pares de chave/dados, pesquisar e recuperar os dados por sua chave e - deletar uma chave junto com seus dados. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 13 MB - -8.36.1. Instalação do GDBM - - Prepare GDBM para compilação: -./configure --prefix=/usr \ - --disable-static \ - --enable-libgdbm-compat - - O significado da opção de configure: - - --enable-libgdbm-compat - Essa chave habilita a construção da biblioteca de - compatibilidade libgdbm. Alguns pacotes fora do LFS talvez - exijam as rotinas DBM mais antigas que ela fornece. - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.36.2. Conteúdo do GDBM - - Aplicativos instalados: gdbm_dump, gdbm_load, e gdbmtool - Bibliotecas instaladas: libgdbm.so e libgdbm_compat.so - -Descrições Curtas - - gdbm_dump - - Despeja um banco de dados GDBM para um arquivo - - gdbm_load - - Recria um banco de dados GDBM a partir de um arquivo de despejo - - gdbmtool - - Testa e modifica um banco de dados GDBM - - libgdbm - - Contém funções para manipular um banco de dados com hash - - libgdbm_compat - - Biblioteca de compatibilidade contendo funções DBM mais antigas - -8.37. Gperf-3.1 - - Gperf gera uma função de hash perfeita a partir de um conjunto de - chaves. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 6,0 MB - -8.37.1. Instalação do Gperf - - Prepare Gperf para compilação: -./configure --prefix=/usr --docdir=/usr/share/doc/gperf-3.1 - - Compile o pacote: -make - - Os testes são conhecidos por falharem se executar múltiplos testes - simultâneos (opção -j maior que 1). Para testar os resultados, execute: -make -j1 check - - Instale o pacote: -make install - -8.37.2. Conteúdo do Gperf - - Aplicativo instalado: gperf - Diretório instalado: /usr/share/doc/gperf-3.1 - -Descrições Curtas - - gperf - - Gera um hash perfeito a partir de um conjunto de chaves - -8.38. Expat-2.4.6 - - O pacote Expat contém uma biblioteca C orientada a fluxo para analisar - XML. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 12 MB - -8.38.1. Instalação do Expat - - Prepare Expat para compilação: -./configure --prefix=/usr \ - --disable-static \ - --docdir=/usr/share/doc/expat-2.4.6 - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - - Se desejado, instale a documentação: -install -v -m644 doc/*.{html,css} /usr/share/doc/expat-2.4.6 - -8.38.2. Conteúdo do Expat - - Aplicativo instalado: xmlwf - Biblioteca instalada: libexpat.so - Diretório instalado: /usr/share/doc/expat-2.4.6 - -Descrições Curtas - - xmlwf - - É um utilitário não validador para verificar se documentos XML estão - bem formados ou não - - libexpat - - Contém funções de API para analisar XML - -8.39. Inetutils-2.2 - - O pacote Inetutils contém aplicativos para redes básicas. - Tempo aproximado de construção: 0,3 UPC - Espaço em disco exigido: 30 MB - -8.39.1. Instalação do Inetutils - - Prepare Inetutils para compilação: -./configure --prefix=/usr \ - --bindir=/usr/bin \ - --localstatedir=/var \ - --disable-logger \ - --disable-whois \ - --disable-rcp \ - --disable-rexec \ - --disable-rlogin \ - --disable-rsh \ - --disable-servers - - O significado das opções de configure: - - --disable-logger - Essa opção impede que o Inetutils instale o aplicativo logger, o - qual é usado por scripts para passar mensagens para o System Log - Daemon. Não instale isso, pois o Util-linux instala uma versão - mais recente. - - --disable-whois - Essa opção desabilita a construção do cliente whois do - Inetutils, o qual está desatualizado. Instruções para um cliente - whois melhor estão no livro BLFS. - - --disable-r* - Esses parâmetros desabilitam a construção de aplicativos - obsoletos que não deveriam ser usados devido a problemas de - segurança. As funções fornecidas por esses aplicativos podem ser - fornecidas pelo pacote openssh no livro BLFS. - - --disable-servers - Isso desabilita a instalação dos vários servidores de rede - incluídos como parte do pacote Inetutils. Esses servidores são - considerados inadequados em um sistema LFS básico. Alguns são - inseguros por natureza e só são considerados seguros em redes - confiáveis. Observe que substituições melhores estão disponíveis - para muitos desses servidores. - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - - Mova um aplicativo para o local adequado: -mv -v /usr/{,s}bin/ifconfig - -8.39.2. Conteúdo do Inetutils - - Aplicativos instalados: dnsdomainname, ftp, ifconfig, hostname, ping, - ping6, talk, telnet, tftp, e traceroute - -Descrições Curtas - - dnsdomainname - - Mostra o nome de domínio DNS do sistema - - ftp - - É o aplicativo de protocolo de transferência de arquivos - - hostname - - Relata ou configura o nome do dispositivo - - ifconfig - - Gerencia interfaces de rede - - ping - - Envia pacotes de solicitação de echo e informa quanto tempo as - respostas demoram - - ping6 - - Uma versão do ping para redes IPv6 - - talk - - É usado para conversar com outra(o) usuária(o) - - telnet - - Uma interface para o protocolo TELNET - - tftp - - Um aplicativo de transferência de arquivos trivial - - traceroute - - Rastreia a rota que seus pacotes fazem a partir do dispositivo em que - você está trabalhando para outro dispositivo em uma rede, mostrando - todos os saltos intermediários (gateways) ao longo do caminho - -8.40. Less-590 - - O pacote Less contém um visualizador de arquivos de texto. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 4,2 MB - -8.40.1. Instalação do Less - - Prepare Less para compilação: -./configure --prefix=/usr --sysconfdir=/etc - - O significado das opções de configure: - - --sysconfdir=/etc - Essa opção diz aos aplicativos criados pelo pacote para - procurarem em /etc pelos arquivos de configuração. - - Compile o pacote: -make - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -make install - -8.40.2. Conteúdo do Less - - Aplicativos instalados: less, lessecho e lesskey - -Descrições Curtas - - less - - Um visualizador de arquivos ou paginador; ele exibe o conteúdo do - arquivo dado, permitindo que a(o) usuária(o) role, encontre sequências - de caracteres e pule para marcas - - lessecho - - Necessário para expandir metacaracteres, tais como * e ?, em nomes de - arquivos em sistemas Unix - - lesskey - - Usado para especificar os atalhos de tecla para less - -8.41. Perl-5.34.0 - - O pacote Perl contém o Practical Extraction and Report Language. - Tempo aproximado de construção: 9,3 UPC - Espaço em disco exigido: 226 MB - -8.41.1. Instalação do Perl - - Primeiro, aplique uma correção que conserta um problema destacado por - versões recentes do gdbm: -patch -Np1 -i ../perl-5.34.0-upstream_fixes-1.patch - - Essa versão do Perl agora constrói os módulos Compress::Raw::Zlib e - Compress::Raw::BZip2. Por padrão, Perl usará uma cópia interna dos - fontes para a construção. Execute o seguinte comando de modo que Perl - usará as bibliotecas instaladas no sistema: -export BUILD_ZLIB=False -export BUILD_BZIP2=0 - - Para ter controle completo sobre a maneira como Perl é configurado, - você pode remover as opções “-des†do comando seguinte e escolher - manualmente a maneira como esse pacote é construído. Alternativamente, - use o comando exatamente como está abaixo para usar os padrões que o - Perl detecta automaticamente: -sh Configure -des \ - -Dprefix=/usr \ - -Dvendorprefix=/usr \ - -Dprivlib=/usr/lib/perl5/5.34/core_perl \ - -Darchlib=/usr/lib/perl5/5.34/core_perl \ - -Dsitelib=/usr/lib/perl5/5.34/site_perl \ - -Dsitearch=/usr/lib/perl5/5.34/site_perl \ - -Dvendorlib=/usr/lib/perl5/5.34/vendor_perl \ - -Dvendorarch=/usr/lib/perl5/5.34/vendor_perl \ - -Dman1dir=/usr/share/man/man1 \ - -Dman3dir=/usr/share/man/man3 \ - -Dpager="/usr/bin/less -isR" \ - -Duseshrplib \ - -Dusethreads - - O significado das opções de configure: - - -Dvendorprefix=/usr - Isso garante que perl saiba como dizer aos pacotes onde eles - deveriam instalar módulos perl deles. - - -Dpager="/usr/bin/less -isR" - Isso garante que less seja usado em vez de more. - - -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 - Uma vez que o Groff ainda não está instalado, Configure pensa - que nós não queremos páginas de manual para o Perl. Emitir esses - parâmetros substitui essa decisão. - - -Duseshrplib - Constrói uma libperl compartilhada necessária para alguns - módulos perl. - - -Dusethreads - Constrói perl com suporte para camadas. - - -Dprivlib,-Darchlib,-Dsitelib,... - Essas configurações definem onde o Perl está procurando módulos - instalados. As(Os) editoras(es) de LFS optaram por colocá-los em - uma estrutura de diretórios baseada na versão Major.Minor do - Perl (5.34), a qual permite atualizar o Perl para níveis de - Patch mais recentes (5.34.0) sem a necessidade de reinstalar - todos os módulos novamente. - - Compile o pacote: -make - - Para testar os resultados (aproximadamente 11 UPCs), execute: -make test - - Instale o pacote e limpe: -make install -unset BUILD_ZLIB BUILD_BZIP2 - -8.41.2. Conteúdo do Perl - - Aplicativos instalados: corelist, cpan, enc2xs, encguess, h2ph, h2xs, - instmodsh, json_pp, libnetcfg, perl, perl5.34.0 (hard link para perl), - perlbug, perldoc, perlivp, perlthanks (hard link para perlbug), piconv, - pl2pm, pod2html, pod2man, pod2text, pod2usage, podchecker, podselect, - prove, ptar, ptardiff, ptargrep, shasum, splain, xsubpp e zipdetails - Bibliotecas instaladas: Muitas, as quais não podem ser todas listadas - aqui - Diretório instalado: /usr/lib/perl5 - -Descrições Curtas - - corelist - - Um frontend de linha de comando para Module::CoreList - - cpan - - Interage com o Comprehensive Perl Archive Network (CPAN) a partir da - linha de comando - - enc2xs - - Constrói uma extensão Perl para o módulo Encode a partir tanto de - Mapeamentos de Caracteres Unicode quanto de Arquivos de Codificação Tcl - - encguess - - Advinha o tipo de codificação de um ou vários arquivos - - h2ph - - Converte arquivos de cabeçalho C .h para arquivos de cabeçalho Perl .ph - - h2xs - - Converte arquivos de cabeçalho C .h para extensões Perl - - instmodsh - - Script de shell para examinar módulos Perl instalados, e pode criar um - tarball a partir de um módulo instalado - - json_pp - - Converte dados entre certos formatos de entrada e saída - - libnetcfg - - Pode ser usado para configurar o módulo Perl libnet - - perl - - Combina algumas das melhores características do C, sed, awk e sh em uma - linguagem canivete suíço única - - perl5.34.0 - - Um hard link para perl - - perlbug - - Usado para gerar relatórios de defeitos sobre o Perl, ou módulos que - vem como ele, e enviá-los por correio - - perldoc - - Exibe uma parte da documentação em formato de pod que está incorporada - na árvore de instalação do Perl ou em um script Perl - - perlivp - - O Procedimento de Verificação de Instalação do Perl; pode ser usado - para verificar se o Perl e suas bibliotecas foram instalados - corretamente - - perlthanks - - Usado para gerar mensagens de agradecimento para enviar para as(os) - desenvolvedoras(es) Perl - - piconv - - Uma versão Perl do conversor de codificação de caracteres iconv - - pl2pm - - Uma ferramenta rudimentar para converter arquivos Perl4 .pl para - módulos Perl5 .pm - - pod2html - - Converte arquivos do formato pod para o formato HTML - - pod2man - - Converte dados pod para entrada formatada *roff - - pod2text - - Converte dados pod para texto ASCII formatado - - pod2usage - - Imprime mensagens de uso a partir de documentos pod incorporados em - arquivos - - podchecker - - Verifica a sintaxe de arquivos de documentação no formato pod - - podselect - - Exibe seções selecionadas de documentação pod - - prove - - Ferramenta de linha de comando para executar testes contra o módulo - Test::Harness - - ptar - - Um aplicativo similar ao tar escrito em Perl - - ptardiff - - Um aplicativo Perl que compara um arquivamento extraído com um não - extraído - - ptargrep - - Um aplicativo Perl que aplica correspondência de padrão ao conteúdo de - arquivos em um arquivamento tar - - shasum - - Imprime ou verifica somas de verificação SHA - - splain - - É usado para forçar diagnósticos de aviso detalhados em Perl - - xsubpp - - Converte código Perl XS em código C - - zipdetails - - Exibe detalhes sobre a estrutura interna de um arquivo Zip - -8.42. XML::Parser-2.46 - - O módulo XML::Parser é uma interface Perl para o analisador de XML do - James Clark, Expat. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 2,4 MB - -8.42.1. Instalação do XML::Parser - - Prepare XML::Parser para compilação: -perl Makefile.PL - - Compile o pacote: -make - - Para testar os resultados, execute: -make test - - Instale o pacote: -make install - -8.42.2. Conteúdo do XML::Parser - - Módulo instalado: Expat.so - -Descrições Curtas - - Expat - - Fornece a interface Perl Expat - -8.43. Intltool-0.51.0 - - O Intltool é uma ferramenta de internacionalização usada para extrair - sequências de caracteres traduzíveis a partir de arquivos fonte. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 1,5 MB - -8.43.1. Instalação do Intltool - - Primeiro, conserte um aviso que é causado por perl-5.22 e posteriores: -sed -i 's:\\\${:\\\$\\{:' intltool-update.in - -Nota - - A expressão regular acima parece incomum por causa de todas as contra - barras. O que ela faz é adicionar uma contra barra antes do carácter - abre chave na sequência '\${' resultando em '\$\{'. - - Prepare Intltool para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install -install -v -Dm644 doc/I18N-HOWTO /usr/share/doc/intltool-0.51.0/I18N-HOWTO - -8.43.2. Conteúdo do Intltool - - Aplicativos instalados: intltool-extract, intltool-merge, - intltool-prepare, intltool-update e intltoolize - Diretórios instalados: /usr/share/doc/intltool-0.51.0 e - /usr/share/intltool - -Descrições Curtas - - intltoolize - - Prepara um pacote para usar intltool - - intltool-extract - - Gera arquivos de cabeçalho que podem ser lidos por gettext - - intltool-merge - - Mescla sequência de caracteres traduzidos em vários tipos de arquivos - - intltool-prepare - - Atualiza arquivos pot e mescla eles com arquivos de tradução - - intltool-update - - Atualiza os arquivos de modelo po e mescla eles com as traduções - -8.44. Autoconf-2.71 - - O pacote Autoconf contém aplicativos para produzir scripts de shell que - podem configurar automaticamente código fonte. - Tempo aproximado de construção: menos que 0,1 UPC (cerca de 6,8 UPC com - os testes) - Espaço em disco exigido: 24 MB - -8.44.1. Instalação do Autoconf - - Prepare Autoconf para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - -Nota - - O tempo de teste para autoconf pode ser reduzido significativamente em - um sistema com múltiplos núcleos. Para fazer isso, acrescente - TESTSUITEFLAGS=-j ao final da linha acima. Por exemplo, usar -j4 - pode reduzir o tempo de teste em mais que 60 por cento. - - Instale o pacote: -make install - -8.44.2. Conteúdo do Autoconf - - Aplicativos instalados: autoconf, autoheader, autom4te, autoreconf, - autoscan, autoupdate e ifnames - Diretório instalado: /usr/share/autoconf - -Descrições Curtas - - autoconf - - Produz scripts de shell que configuram automaticamente pacotes de - código fonte de aplicativos para adaptar a vários tipos de sistemas - semelhantes a Unix; os scripts de configuração que ele produz são - independentes—executá-los não exige o aplicativo autoconf - - autoheader - - Uma ferramenta para criar arquivos de modelo de declarações #define de - C para configure usar - - autom4te - - Um encapsulador para o processador de macro M4 - - autoreconf - - Automaticamente executa autoconf, autoheader, aclocal, automake, - gettextize e libtoolize na ordem correta para economizar tempo quando - mudanças são feitas para arquivos de modelo autoconf e automake - - autoscan - - Ajuda a criar um arquivo configure.in para um pacote de aplicativos; - ele examina os arquivos fonte em uma árvore de diretórios, procurando - neles por problemas de portabilidade comuns, e cria um arquivo - configure.scan que serve como um arquivo configure.in preliminar para o - pacote - - autoupdate - - Modifica um arquivo configure.in que ainda chama macros autoconf por - seus nomes antigos para usar os nomes de macro atuais - - ifnames - - Ajuda ao escrever arquivos configure.in para um pacote de aplicativos; - ele imprime os identificadores que o pacote usa em condicionais de - preprocessador C [Se um pacote já foi configurado para ter alguma - portabilidade, então esse aplicativo pode ajudar a determinar o que - configure precisa checar. Ele também pode preencher lacunas em um - arquivo configure.in gerado por autoscan]. - -8.45. Automake-1.16.5 - - O pacote Automake contém aplicativos para gerar Makefiles para uso com - Autoconf. - Tempo aproximado de construção: menos que 0,1 UPC (cerca de 8,3 UPC com - os testes) - Espaço em disco exigido: 115 MB - -8.45.1. Instalação do Automake - - Prepare Automake para compilação: -./configure --prefix=/usr --docdir=/usr/share/doc/automake-1.16.5 - - Compile o pacote: -make - - Usar a opção de make -j4 acelera os testes, mesmo em sistemas com - apenas um processador, devido a atrasos internos em testes individuais. - Para testar os resultados, execute: -make -j4 check - - O teste t/subobj.sh é conhecido por falhar. - - Instale o pacote: -make install - -8.45.2. Conteúdo do Automake - - Aplicativos instalados: aclocal, aclocal-1.16 (hard link com aclocal), - automake e automake-1.16 (hard link com automake) - Diretórios instalados: /usr/share/aclocal-1.16, - /usr/share/automake-1.16 e /usr/share/doc/automake-1.16.5 - -Descrições Curtas - - aclocal - - Gera arquivos aclocal.m4 baseados no conteúdo dos arquivos configure.in - - aclocal-1.16 - - Um hard link para aclocal - - automake - - Uma ferramenta para gerar automaticamente arquivos Makefile.in a partir - de arquivos Makefile.am [Para criar todos os arquivos Makefile.in para - um pacote, execute esse aplicativo no diretório superior. Escaneando o - arquivo configure.in, ele automaticamente encontra cada arquivo - Makefile.am apropriado e gera o arquivo Makefile.in correspondente]. - - automake-1.16 - - Um hard link para automake - -8.46. OpenSSL-3.0.1 - - O pacote OpenSSL contém ferramentas de gerenciamento e bibliotecas - relacionadas à criptografia. Essas são úteis para fornecer funções - criptográficas para outros pacotes, tais como OpenSSH, aplicativos de - correio eletrônico e navegadores de rede (para acessar sítios HTTPS). - Tempo aproximado de construção: 5,4 UPC - Espaço em disco exigido: 474 MB - -8.46.1. Instalação do OpenSSL - - Prepare OpenSSL para compilação: -./config --prefix=/usr \ - --openssldir=/etc/ssl \ - --libdir=lib \ - shared \ - zlib-dynamic - - Compile o pacote: -make - - Para testar os resultados, execute: -make test - - Um teste, 30-test_afalg.t, é conhecido por falhar em algumas - configurações de kernel (dependendo de valores inconsistentes de - configurações CONFIG_CRYPTO_USER_API*). Se ele falhar, então ele pode - seguramente ser ignorado. - - Instale o pacote: -sed -i '/INSTALL_LIBS/s/libcrypto.a libssl.a//' Makefile -make MANSUFFIX=ssl install - - Adicione a versão ao nome de diretório de documentação, para ser - consistente com outros pacotes: -mv -v /usr/share/doc/openssl /usr/share/doc/openssl-3.0.1 - - Se desejado, instale alguma documentação adicional: -cp -vfr doc/* /usr/share/doc/openssl-3.0.1 - -Nota - - Você deveria atualizar OpenSSL quando uma versão nova que conserta - vulnerabilidades for anunciada. Os lançamentos ocorrem em séries, com - uma letra para cada lançamento após o lançamento inicial (por exemplo, - 1.1.1, 1.1.1a, 1.1.1b, etc). Por causa de que LFS instala somente as - bibliotecas compartilhadas, não existe necessidade de recompilar - pacotes que se vinculem a libcrypto.so ou libssl.so quando atualizar na - mesma série. - - Entretanto, quaisquer aplicativos em execução vinculados àquelas - bibliotecas precisam ser parados e reiniciados. Leia-se as entradas - relacionadas em [606]Seção 8.2.1, “Problemas de Atualização†para - detalhes. - -8.46.2. Conteúdo do OpenSSL - - Aplicativos instalados: c_rehash e openssl - Bibliotecas instaladas: libcrypto.so e libssl.so - Diretórios instalados: /etc/ssl, /usr/include/openssl, /usr/lib/engines - e /usr/share/doc/openssl-3.0.1 - -Descrições Curtas - - c_rehash - - é um script Perl que escaneia todos os arquivos em um diretório e - adiciona links simbólicos para os valores de hash deles - - openssl - - é uma ferramenta de linha de comando para usar as várias funções - criptográficas da biblioteca de criptografia do OpenSSL a partir do - shell. Ela pode ser usada para várias funções que estão documentadas em - man 1 openssl - - libcrypto.so - - implementa um intervalo amplo de algoritmos criptográficos usados em - vários padrões da Internet. Os serviços fornecidos por essa biblioteca - são usados pelas implementações OpenSSL do SSL, TLS e S/MIME e eles - também tem sido usados para implementar OpenSSH, OpenPGP e outros - padrões criptográficos - - libssl.so - - implementa o protocolo Transport Layer Security (TLS v1). Ela fornece - uma API rica, documentação sobre a qual pode ser encontrada executando - man 3 ssl - -8.47. Kmod-29 - - O pacote Kmod contém bibliotecas e utilitários para carregar módulos de - kernel - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 12 MB - -8.47.1. Instalação do Kmod - - Prepare Kmod para compilação: -./configure --prefix=/usr \ - --sysconfdir=/etc \ - --with-openssl \ - --with-xz \ - --with-zstd \ - --with-zlib - - O significado das opções de configure: - - --with-openssl - Essa opção habilita Kmod a lidar com assinaturas PKCS7 para - módulos de kernel. - - --with-xz, --with-zlib, e --with-zstd - Essas opções habilitam Kmod a lidar com módulos de kernel - comprimidos. - - Compile o pacote: -make - - A suíte de teste desse pacote exige cabeçalhos de kernel crus (não os - cabeçalhos de kernel “sanitizados†instalados anteriormente), os quais - estão além do escopo do LFS. - - Instale o pacote e crie links simbólicos para compatibilidade com - Module-Init-Tools (o pacote que anteriormente lidava com módulos de - kernel do Linux): -make install - -for target in depmod insmod modinfo modprobe rmmod; do - ln -sfv ../bin/kmod /usr/sbin/$target -done - -ln -sfv kmod /usr/bin/lsmod - -8.47.2. Conteúdo do Kmod - - Aplicativos instalados: depmod (link para kmod), insmod (link para - kmod), kmod, lsmod (link para kmod), modinfo (link para kmod), modprobe - (link para kmod) e rmmod (link para kmod) - Biblioteca instalada: libkmod.so - -Descrições Curtas - - depmod - - Cria um arquivo de dependência baseado nos símbolos que ele encontra no - conjunto existente de módulos; esse arquivo de dependência é usado por - modprobe para carregar automaticamente os módulos exigidos - - insmod - - Instala um módulo carregável no kernel em execução - - kmod - - Carrega e descarrega módulos de kernel - - lsmod - - Lista módulos atualmente carregados - - modinfo - - Examina um arquivo objeto associado com um módulo de kernel e exibe - qualquer informação que ele possa coletar - - modprobe - - Usa um arquivo de dependência, criado por depmod, para carregar - automaticamente módulos relevantes - - rmmod - - Descarrega módulos a partir do kernel em execução - - libkmod - - Essa biblioteca é usada por outros aplicativos para carregar e - descarregar módulos de kernel - -8.48. Libelf oriundo de Elfutils-0.186 - - Libelf é uma biblioteca para lidar com arquivos ELF (Executable and - Linkable Format). - Tempo aproximado de construção: 0,9 UPC - Espaço em disco exigido: 116 MB - -8.48.1. Instalação do Libelf - - Libelf é parte do pacote elfutils-0.186. Use o elfutils-0.186.tar.bz2 - como o tarball fonte. - - Prepare Libelf para compilação: -./configure --prefix=/usr \ - --disable-debuginfod \ - --enable-libdebuginfod=dummy - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale apenas Libelf: -make -C libelf install -install -vm644 config/libelf.pc /usr/lib/pkgconfig -rm /usr/lib/libelf.a - -8.48.2. Conteúdo do Libelf - - Biblioteca instalada: libelf.so (link simbólico) e libelf-0.186.so - Diretório instalado: /usr/include/elfutils - -Descrições Curtas - - libelf - - Contém funções de API para lidar com arquivos objeto ELF - -8.49. Libffi-3.4.2 - - A biblioteca Libffi fornece uma interface de programação portável e de - alto nível para várias convenções de chamada. Isso permite a uma(m) - programadora(r) chamar qualquer função especificada por uma descrição - de interface de chamada em tempo de execução. - Tempo aproximado de construção: 1,9 UPC - Espaço em disco exigido: 10 MB - -8.49.1. Instalação do Libffi - -Nota - - Semelhante a GMP, libffi constrói com otimizações específicas para o - processador em uso. Se construir para outro sistema, então exporte - CFLAGS e CXXFLAGS para especificar uma construção genérica para sua - arquitetura. Se isso não for feito, então todos os aplicativos que se - vincularem a libffi deflagrarão Illegal Operation Errors. - - Prepare libffi para compilação: -./configure --prefix=/usr \ - --disable-static \ - --with-gcc-arch=native \ - --disable-exec-static-tramp - - O significado da opção de configure: - - --with-gcc-arch=native - Garante que GCC otimiza para o sistema atual. Se isso não for - especificado, então o sistema é presumido e o código gerado - talvez não esteja correto para alguns sistemas. Se o código - gerado será copiado de um sistema nativo para um sistema menos - capaz, então use o sistema menos capaz como um parâmetro. Para - detalhes acerca de tipos de sistema alternativos, veja-se - [607]as opções de x86 no manual do GCC. - - --disable-exec-static-tramp - Desabilita o suporte de trampolim estático. Ele é uma nova - característica de segurança em libffi, porém alguns pacotes BLFS - (notadamente GJS e gobject-introspection) não foram adaptados - para ele. - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.49.2. Conteúdo do Libffi - - Biblioteca instalada: libffi.so - -Descrições Curtas - - libffi - - contém as funções da API da interface de função estrangeira - -8.50. Python-3.10.2 - - O pacote Python 3 contém o ambiente Python de desenvolvimento. Ele é - útil para programação orientada a objetos, escrita de scripts, - prototipagem de aplicativos grandes, ou desenvolvimento de aplicações - inteiras. - Tempo aproximado de construção: 4,3 UPC - Espaço em disco exigido: 275 MB - -8.50.1. Instalação do Python 3 - - Prepare Python para compilação: -./configure --prefix=/usr \ - --enable-shared \ - --with-system-expat \ - --with-system-ffi \ - --with-ensurepip=yes \ - --enable-optimizations - - O significado das opções de configure: - - --with-system-expat - Essa chave habilita vinculação contra a versão de sistema do - Expat. - - --with-system-ffi - Essa chave habilita vinculação contra a versão de sistema de - libffi. - - --with-ensurepip=yes - Essa chave habilita construir os aplicativos de empacotamento - pip e setuptools. - - --enable-optimizations - Essa chave habilita otimizações estáveis, porém onerosas. - - Compile o pacote: -make - - Executar os testes neste ponto não é recomendado. Os testes são - conhecidos por travar indefinidamente dentro de um ambiente LFS - parcial. Se desejado, então os testes podem ser reexecutados ao final - deste capítulo ou quando Python 3 for reinstalado em BLFS. Para - executar os testes de qualquer maneira, emita make test. - - Instale o pacote: -make install - - Se desejado, então instale a documentação pré-formatada: -install -v -dm755 /usr/share/doc/python-3.10.2/html - -tar --strip-components=1 \ - --no-same-owner \ - --no-same-permissions \ - -C /usr/share/doc/python-3.10.2/html \ - -xvf ../python-3.10.2-docs-html.tar.bz2 - - O significado dos comandos de instalação de documentação: - - --no-same-owner e --no-same-permissions - Garanta que os arquivos instalados tenham a propriedade e as - permissões corretas. Sem essas opções, usar tar instalará os - arquivos de pacote com os valores da(o) criadora(r) upstream. - -8.50.2. Conteúdo do Python 3 - - Aplicativos instalados: 2to3, idle3, pip3, pydoc3, python3 e - python3-config - Bibliotecas instaladas: libpython3.10.so e libpython3.so - Diretórios instalados: /usr/include/python3.10, /usr/lib/python3 e - /usr/share/doc/python-3.10.2 - -Descrições Curtas - - 2to3 - - é um aplicativo Python que lê código fonte Python 2.x e aplica uma - série de consertos para transformá-lo em código Python 3.x válido - - idle3 - - é um script encapsulador que abre um editor GUI ciente de Python. Para - esse script executar, você precisa ter instalado Tk antes do Python, de - forma que o módulo Tkinter Python seja construído - - pip3 - - O instalador de pacote para Python. Você pode usar pip para instalar - pacotes originários do Python Package Index e outros índices - - pydoc3 - - é a ferramenta de documentação Python - - python3 - - é uma linguagem de programação orientada a objeto, interativa e - interpretada - -8.51. Ninja-1.10.2 - - Ninja é um sistema de construção pequeno com um foco em velocidade. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 64 MB - -Dica - - Esta seção não é estritamente exigida para LFS se não usar systemd. Por - outro lado, ninja associado a meson fazem uma combinação de sistema de - construção poderosa, o qual é esperado que seja usado mais e mais - frequentemente. Ele é exigido por muitos pacotes no [608]livro BLFS. - -8.51.1. Instalação do Ninja - - Quando executado, ninja normalmente executa um número máximo de - processos em paralelo. Por padrão, esse é o número de núcleos no - sistema mais dois. Em alguns casos, isso pode superaquecer uma CPU ou - deixar o sistema sem memória. Se executar a partir da linha de comando, - então passar um parâmetro -jN limitará o número de processos paralelos, - porém alguns pacotes embutem a execução de ninja e não passam um - parâmetro -j. - - Usar o procedimento opcional abaixo permite que uma(m) usuária(o) - limite o número de processos paralelos via uma variável de ambiente, - NINJAJOBS. Por exemplo, configurar: -export NINJAJOBS=4 - - limitará ninja a quatro processos paralelos. - - Se desejado, então adicione a capacidade de usar a variável de ambiente - NINJAJOBS executando: -sed -i '/int Guess/a \ - int j = 0;\ - char* jobs = getenv( "NINJAJOBS" );\ - if ( jobs != NULL ) j = atoi( jobs );\ - if ( j > 0 ) return j;\ -' src/ninja.cc - - Construa Ninja com: -python3 configure.py --bootstrap - - O significado da opção de construção: - - --bootstrap - Esse parâmetro força ninja a reconstruir ele próprio para o - sistema atual. - - Para testar os resultados, execute: -./ninja ninja_test -./ninja_test --gtest_filter=-SubprocessTest.SetWithLots - - Instale o pacote: -install -vm755 ninja /usr/bin/ -install -vDm644 misc/bash-completion /usr/share/bash-completion/completions/ninj -a -install -vDm644 misc/zsh-completion /usr/share/zsh/site-functions/_ninja - -8.51.2. Conteúdo do Ninja - - Aplicativo instalado: ninja - -Descrições Curtas - - ninja - - é o sistema de construção Ninja - -8.52. Meson-0.61.1 - - Meson é um sistema de construção de código fonte aberto destinado para - ser ambos extremamente rápido e tão amigável à(ao) usuária(o) quanto - possível. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 41 MB - -Dica - - Esta seção não é estritamente exigida para LFS se não usar systemd. Por - outro lado, meson/ninja é um sistema de construção poderoso, o qual é - esperado que seja usado mais e mais frequentemente. Ele é exigido por - muitos pacotes no [609]livro BLFS. - -8.52.1. Instalação do Meson - - Compile Meson com o seguinte comando: -python3 setup.py build - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -python3 setup.py install --root=dest -cp -rv dest/* / -install -vDm644 data/shell-completions/bash/meson /usr/share/bash-completion/com -pletions/meson -install -vDm644 data/shell-completions/zsh/_meson /usr/share/zsh/site-functions/ -_meson - - O significado dos parâmetros de install: - - --root=dest - Por padrão, python3 setup.py install instala vários arquivos - (tais como páginas de manual) em Python Eggs. Com um local raiz - especificado, setup.py instala esses arquivos na hierarquia - padrão. Então a hierarquia pode apenas ser copiada para o local - padrão. - -8.52.2. Conteúdo do Meson - - Aplicativo instalado: meson - Diretórios instalados: - /usr/lib/python3.10/site-packages/meson-0.61.1-py3.10.egg-info e - /usr/lib/python3.10/site-packages/mesonbuild - -Descrições Curtas - - meson - - Um sistema de construção de alta produtividade - -8.53. Coreutils-9.0 - - O pacote Coreutils contém utilitários para mostrar e configurar as - características básicas de sistema. - Tempo aproximado de construção: 2,6 UPC - Espaço em disco exigido: 153 MB - -8.53.1. Instalação do Coreutils - - POSIX exige que aplicativos originários do Coreutils reconheçam limites - de carácter corretamente mesmo em locales multibyte. A seguinte - correção conserta essa não-conformidade e outros defeitos relacionados - à internacionalização. -patch -Np1 -i ../coreutils-9.0-i18n-1.patch - -Nota - - No passado, muitos defeitos foram encontrados nessa correção. Quando - reportar novos defeitos para as(os) mantenedoras(es) do Coreutils, por - favor verifique primeiro se eles são reproduzíveis sem essa correção. - - Agora, conserte um problema com valores de retorno de chmod: -patch -Np1 -i ../coreutils-9.0-chmod_fix-1.patch - - Agora prepare Coreutils para compilação: -autoreconf -fiv -FORCE_UNSAFE_CONFIGURE=1 ./configure \ - --prefix=/usr \ - --enable-no-install-program=kill,uptime - - O significado das opções de configure: - - autoreconf - A correção para internacionalização modificou o sistema de - construção do pacote, então os arquivos de configuração tem de - ser regenerados. - - FORCE_UNSAFE_CONFIGURE=1 - Essa variável de ambiente permite que o pacote seja construído - como a(o) usuária(o) root. - - --enable-no-install-program=kill,uptime - O propósito dessa chave é o de impedir que o Coreutils instale - binários que serão instalados por outros pacotes posteriormente. - - Compile o pacote: -make - - Pule para “Instale o pacote†se não executar a suíte de teste. - - Agora a suíte de teste está pronta para ser executada. Primeiro, - execute os testes que são destinados a serem executados como usuária(o) - root: -make NON_ROOT_USERNAME=tester check-root - - Nós vamos executar o resto dos testes como a(o) usuária(o) tester. - Certos testes exigem que a(o) usuária(o) seja um membro de mais que um - grupo. Para que esses testes não sejam pulados, adicione um grupo - temporário e torne a(o) usuária(o) tester parte dele: -echo "dummy:x:102:tester" >> /etc/group - - Conserte algumas das permissões de modo que a(o) usuária(o) não-root - possa compilar e executar os testes: -chown -Rv tester . - - Agora execute os testes: -su tester -c "PATH=$PATH make RUN_EXPENSIVE_TESTS=yes check" - - O teste test-getlogin é conhecido por falhar dentro do ambiente chroot - do LFS. - - Remova o grupo temporário: -sed -i '/dummy/d' /etc/group - - Instale o pacote: -make install - - Mova aplicativos para os locais especificados pelo FHS: -mv -v /usr/bin/chroot /usr/sbin -mv -v /usr/share/man/man1/chroot.1 /usr/share/man/man8/chroot.8 -sed -i 's/"1"/"8"/' /usr/share/man/man8/chroot.8 - -8.53.2. Conteúdo do Coreutils - - Aplicativos instalados: [, b2sum, base32, base64, basename, basenc, - cat, chcon, chgrp, chmod, chown, chroot, cksum, comm, cp, csplit, cut, - date, dd, df, dir, dircolors, dirname, du, echo, env, expand, expr, - factor, false, fmt, fold, groups, head, hostid, id, install, join, - link, ln, logname, ls, md5sum, mkdir, mkfifo, mknod, mktemp, mv, nice, - nl, nohup, nproc, numfmt, od, paste, pathchk, pinky, pr, printenv, - printf, ptx, pwd, readlink, realpath, rm, rmdir, runcon, seq, sha1sum, - sha224sum, sha256sum, sha384sum, sha512sum, shred, shuf, sleep, sort, - split, stat, stdbuf, stty, sum, sync, tac, tail, tee, test, timeout, - touch, tr, true, truncate, tsort, tty, uname, unexpand, uniq, unlink, - users, vdir, wc, who, whoami e yes - Biblioteca instalada: libstdbuf.so (em /usr/libexec/coreutils) - Diretório instalado: /usr/libexec/coreutils - -Descrições Curtas - - [ - - É um comando atual, /usr/bin/[, que é um sinônimo para o comando test - - base32 - - Codifica e decodifica dados de acordo com a especificação base32 (RFC - 4648) - - base64 - - Codifica e decodifica dados de acordo com a especificação base64 (RFC - 4648) - - b2sum - - Imprime ou verifica somas de verificação BLAKE2 (512 bits) - - basename - - Remove qualquer caminho e um dado sufixo de um nome de arquivo - - basenc - - Codifica ou decodifica dados usando vários algoritmos - - cat - - Concatena arquivos para saída padrão - - chcon - - Muda contexto de segurança para arquivos e diretórios - - chgrp - - Muda a propriedade do grupo de arquivos e diretórios - - chmod - - Muda as permissões de cada arquivo para o modo dado; o modo pode ser ou - uma representação simbólica das mudanças a fazer ou um número octal - representando as novas permissões - - chown - - Muda a propriedade da(o) usuária(o) e (ou) grupo de arquivos e dos - diretórios - - chroot - - Executa um comando com o diretório especificado como o diretório / - - cksum - - Imprime a soma de verificação Cyclic Redundancy Check (CRC) e as - contagens de bytes de cada arquivo especificado - - comm - - Compara dois arquivos ordenados, exibindo em três colunas as linhas que - são únicas e as linhas que são comuns - - cp - - Copia arquivos - - csplit - - Divide um dado arquivo em vários novos arquivos, separando-os de acordo - com padrões dados ou números de linha e exibindo a contagem de bytes de - cada novo arquivo - - cut - - Imprime seções de linhas, selecionando as partes de acordo com campos - ou posições dados - - date - - Exibe a hora atual no formato dado, ou configura a data do sistema - - dd - - Copia um arquivo usando o tamanho de bloco e contagem dados, enquanto - opcionalmente realiza conversões sobre ele - - df - - Reporta a quantidade de espaço de disco disponível (e usada) em todos - os sistemas de arquivos montados, ou apenas nos sistemas de arquivos - contendo os arquivos selecionados - - dir - - Lista o conteúdo de cada diretório dado (o mesmo que o comando ls) - - dircolors - - Gera comandos para configurar a variável de ambiente LS_COLOR para - mudar o esquema de cores usado por ls - - dirname - - Remove o sufixo que não é diretório de um nome de arquivo - - du - - Relata a quantidade de espaço de disco usado pelo diretório atual, por - cada diretório dado (incluindo todos subdiretórios) ou por cada um dos - arquivos dados - - echo - - Exibe as sequências de caracteres dadas - - env - - Executa um comando em um ambiente modificado - - expand - - Converte tabulação para espaços - - expr - - Avalia expressões - - factor - - Imprime os fatores primos de todos os números inteiros especificados - - false - - Não faz nada, sem sucesso; sempre sai com um código de status indicando - falha - - fmt - - Reformata os parágrafos nos arquivos dados - - fold - - Quebra as linhas nos arquivos dados - - groups - - Relata relacionamentos de membro de grupo de uma(m) usuária(o) - - head - - Imprime as primeiras dez linhas (ou o número de linhas dado) de cada - arquivo dado - - hostid - - Relata o número identificador (em hexadecimal) do dispositivo - - id - - Relata o efetivo ID de usuária(o), ID de grupo, e os relacionamentos de - membro de grupo da(o) usuária(o) atual ou usuária(o) especificada(o) - - install - - Copia arquivos enquanto configura seus modos de permissão e, se - possível, seus proprietário e grupo - - join - - Junta as linhas que tem idênticos campos de junção a partir de dois - arquivos separados - - link - - Cria um hard link com o nome dado para um arquivo - - ln - - Faz hard links ou soft (simbólico) links entre arquivos - - logname - - Relata o nome de login da(o) usuária(o) atual - - ls - - Lista o conteúdo de cada diretório dado - - md5sum - - Relata ou verifica somas de verificação Message Digest 5 (MD5) - - mkdir - - Cria diretórios com os nomes dados - - mkfifo - - Cria First-In, First-Outs (FIFOs), um "pipe nomeado" na linguagem UNIX, - com os nomes dados - - mknod - - Cria nós de dispositivo com os nomes dados; um nó de dispositivo é um - arquivo especial de caractere, um arquivo especial de bloco ou um FIFO - - mktemp - - Cria arquivos temporários de uma maneira segura; é usado em scripts - - mv - - Move ou renomeia arquivos ou diretórios - - nice - - Executa um aplicativo com prioridade de agendamento modificada - - nl - - Numera as linhas a partir dos arquivos dados - - nohup - - Executa um comando imune a interrupções, com sua saída redirecionada - para um arquivo de registro - - nproc - - Imprime o número de unidades de processamento disponíveis para um - processo - - numfmt - - Converte números para ou de sequências de caracteres legíveis por - humanos - - od - - Despeja arquivos em octal e outros formatos - - paste - - Mescla os arquivos dados, unindo linhas sequencialmente correspondentes - lado a lado, separadas por caracteres de tabulação - - pathchk - - Verifica se nomes de arquivos são válidos ou portáveis - - pinky - - É um cliente de dedo leve; ele relata algumas informações sobre as(os) - usuárias(os) dadas(os) - - pr - - Pagina e coluna arquivos para impressão - - printenv - - Imprime o ambiente - - printf - - Imprime os argumentos dados de acordo com o formato dado, muito - parecido com a função printf do C - - ptx - - Produz um índice permutado a partir do conteúdo dos arquivos dados, com - cada palavra-chave no contexto dela - - pwd - - Relata o nome do diretório de trabalho atual - - readlink - - Relata o valor do link simbólico dado - - realpath - - Imprime o caminho resolvido - - rm - - Remove arquivos ou diretórios - - rmdir - - Remove diretórios se eles estiverem vazios - - runcon - - Executa um comando com contexto de segurança especificado - - seq - - Imprime uma sequência de números dentro de um dado intervalo e com um - dado incremento - - sha1sum - - Imprime ou verifica somas de verificação do Secure Hash Algorithm 1 - (SHA1) 160 bits - - sha224sum - - Imprime ou verifica somas de verificação do Secure Hash Algorithm de - 224 bits - - sha256sum - - Imprime ou verifica somas de verificação do Secure Hash Algorithm de - 256 bits - - sha384sum - - Imprime ou verifica somas de verificação do Secure Hash Algorithm de - 384 bits - - sha512sum - - Imprime ou verifica somas de verificação do Secure Hash Algorithm de - 512 bits - - shred - - Sobrescreve os arquivos dados repetidamente com padrões complexos, - tornando difícil recuperar os dados - - shuf - - Embaralha linhas do texto - - sleep - - Pausa pelo período de tempo dado - - sort - - Ordena as linhas a partir dos arquivos dados - - split - - Divide o arquivo dado em pedaços, por tamanho ou por número de linhas - - stat - - Exibe a situação de arquivo ou sistema de arquivos - - stdbuf - - Executa comandos com operações de buffer alteradas para fluxos padrão - deles - - stty - - Configura ou relata configurações de linha de terminal - - sum - - Imprime soma de verificação e contagens de blocos para cada arquivo - dado - - sync - - Libera buffers do sistema de arquivos; isso força blocos modificados - para o disco e atualiza o super bloco - - tac - - Concatena os arquivos dados em ordem reversa - - tail - - Imprime as últimas dez linhas (ou o número dado de linhas) de cada - arquivo dado - - tee - - Lê a partir da entrada padrão enquanto escreve tanto para saída padrão - quanto para os arquivos dados - - test - - Compara valores e verifica tipos de arquivos - - timeout - - Executa um comando com um limite de tempo - - touch - - Muda marcas temporais de arquivo, definindo os horários de acesso e - modificação dos arquivos dados para o horário atual; arquivos que não - existem são criados com tamanho zero - - tr - - Traduz, comprime e deleta os caracteres dados a partir da entrada - padrão - - true - - Não faz nada, com sucesso; sempre sai com um código de status indicando - sucesso - - truncate - - Comprime ou expande um arquivo para o tamanho especificado - - tsort - - Realiza uma ordenação topológica; ele escreve uma lista completamente - ordenada de acordo com a ordenação parcial em um arquivo dado - - tty - - Relata o nome de arquivo do terminal conectado à entrada padrão - - uname - - Relata informação de sistema - - unexpand - - Converte espaços para tabulação - - uniq - - Descarta todas, exceto uma das sucessivas linhas idênticas - - unlink - - Remove o arquivo dado - - users - - Relata os nomes das(os) usuárias(os) atualmente logados - - vdir - - É o mesmo que ls -l - - wc - - Relata o número de linhas, palavras e bytes para cada arquivo dado, - assim como uma linha de total quando mais que um arquivo for dado - - who - - Relata quem está logado - - whoami - - Relata o nome de usuária(o) associado com o ID de usuária(o) efetivo - atual - - yes - - Repetidamente retorna “y†ou uma sequência de caracteres dada até que - seja terminado - - libstdbuf - - Biblioteca usada por stdbuf - -8.54. Check-0.15.2 - - Check é uma estrutura de teste de unidade para C. - Tempo aproximado de construção: 0,1 UPC (cerca de 3,8 UPC com os - testes) - Espaço em disco exigido: 12 MB - -8.54.1. Instalação do Check - - Prepare Check para compilação: -./configure --prefix=/usr --disable-static - - Construa o pacote: -make - - Compilação agora está completa. Para executar a suíte de teste do - Check, execute o seguinte comando: -make check - - Instale o pacote: -make docdir=/usr/share/doc/check-0.15.2 install - -8.54.2. Conteúdo do Check - - Aplicativo instalado: checkmk - Biblioteca instalada: libcheck.so - -Descrições Curtas - - checkmk - - Script awk para gerar testes de unidade C para uso com a estrutura de - teste de unidade do Check - - libcheck.{a,so} - - Contém funções que permitem que Check seja chamado a partir de um - aplicativo de teste - -8.55. Diffutils-3.8 - - O pacote Diffutils contém aplicativos que mostram as diferenças entre - arquivos ou diretórios. - Tempo aproximado de construção: 0,6 UPC - Espaço em disco exigido: 34 MB - -8.55.1. Instalação do Diffutils - - Prepare Diffutils para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.55.2. Conteúdo do Diffutils - - Aplicativos instalados: cmp, diff, diff3 e sdiff - -Descrições Curtas - - cmp - - Compara dois arquivos e relata se ou em quais bytes eles diferem - - diff - - Compara dois arquivos ou diretórios e relata quais linhas nos arquivos - diferem - - diff3 - - Compara três arquivos linha por linha - - sdiff - - Mescla dois arquivos e interativamente exibe os resultados - -8.56. Gawk-5.1.1 - - O pacote Gawk contém aplicativos para manipular arquivos de texto. - Tempo aproximado de construção: 0,4 UPC - Espaço em disco exigido: 43 MB - -8.56.1. Instalação do Gawk - - Primeiro, garanta que alguns arquivos desnecessários não sejam - instalados: -sed -i 's/extras//' Makefile.in - - Prepare Gawk para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - - Se desejado, então instale a documentação: -mkdir -pv /usr/share/doc/gawk-5.1.1 -cp -v doc/{awkforai.txt,*.{eps,pdf,jpg}} /usr/share/doc/gawk-5.1.1 - -8.56.2. Conteúdo do Gawk - - Aplicativos instalados: awk (link para gawk), gawk e awk-5.1.1 - Bibliotecas instaladas: filefuncs.so, fnmatch.so, fork.so, inplace.so, - intdiv.so, ordchr.so, readdir.so, readfile.so, revoutput.so, - revtwoway.so, rwarray.so e time.so (todas em /usr/lib/gawk) - Diretórios instalados: /usr/lib/gawk, /usr/libexec/awk, /usr/share/awk - e /usr/share/doc/gawk-5.1.1 - -Descrições Curtas - - awk - - Um link para gawk - - gawk - - Um aplicativo para manipular arquivos de texto; é a implementação GNU - do awk - - gawk-5.1.1 - - Um hard link para gawk - -8.57. Findutils-4.9.0 - - O pacote Findutils contém aplicativos para procurar arquivos. Esses - aplicativos são fornecidos para procurar recursivamente dentro de uma - árvore de diretório e para criar, manter e buscar um banco de dados - (geralmente mais rápido que o find recursivo, porém não é confiável se - o banco de dados não for atualizado recentemente). - Tempo aproximado de construção: 0,9 UPC - Espaço em disco exigido: 51 MB - -8.57.1. Instalação do Findutils - - Prepare Findutils para compilação: -case $(uname -m) in - i?86) TIME_T_32_BIT_OK=yes ./configure --prefix=/usr --localstatedir=/var/ -lib/locate ;; - x86_64) ./configure --prefix=/usr --localstatedir=/var/lib/locate ;; -esac - - O significado das opções de configure: - - TIME_32_BIT_OK=yes - Essa configuração é necessária para construir em um sistema de - 32 bits. - - --localstatedir - Essa opção muda o local da base de dados locate para estar em - /var/lib/locate, o qual é conforme com FHS. - - Compile o pacote: -make - - Para testar os resultados, execute: -chown -Rv tester . -su tester -c "PATH=$PATH make check" - - Instale o pacote: -make install - -8.57.2. Conteúdo do Findutils - - Aplicativos instalados: find, locate, updatedb e xargs - Diretório instalado: /var/lib/locate - -Descrições Curtas - - find - - Pesquisa em árvores de diretórios dadas por arquivos correspondendo a - critérios especificados - - locate - - Pesquisa em um banco de dados de nomes de arquivo e relata os nomes que - contém uma sequência de caracteres dada ou correspondem a um padrão - dado - - updatedb - - Atualiza o banco de dados locate; ele escaneia o sistema de arquivos - inteiro (incluindo outros sistemas de arquivos que estejam montados - atualmente, a menos que dito o contrário) e coloca cada nome de arquivo - que ele encontrar no banco de dados - - xargs - - Pode ser usado para aplicar um comando dado a uma lista de arquivos - -8.58. Groff-1.22.4 - - O pacote Groff contém aplicativos para processar e formatar texto. - Tempo aproximado de construção: 0,5 UPC - Espaço em disco exigido: 88 MB - -8.58.1. Instalação do Groff - - Groff espera que a variável de ambiente PAGE contenha o tamanho de - papel padrão. Para usuárias(os) nos Estados Unidos da América do Norte, - PAGE=letter é apropriado. Em outros lugares, PAGE=A4 talvez seja mais - adequado. Embora o tamanho do papel padrão seja configurado durante a - compilação, ele pode ser substituído posteriormente ecoando ou “A4†ou - “letter†para o arquivo /etc/papersize. - - Prepare Groff para compilação: -PAGE= ./configure --prefix=/usr - - Esse pacote não suporta construção paralela. Compile o pacote: -make -j1 - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -make install - -8.58.2. Conteúdo do Groff - - Aplicativos instalados: addftinfo, afmtodit, chem, eqn, eqn2graph, - gdiffmk, glilypond, gperl, gpinyin, grap2graph, grn, grodvi, groff, - groffer, grog, grolbp, grolj4, gropdf, grops, grotty, hpftodit, - indxbib, lkbib, lookbib, mmroff, neqn, nroff, pdfmom, pdfroff, pfbtops, - pic, pic2graph, post-grohtml, preconv, pre-grohtml, refer, roff2dvi, - roff2html, roff2pdf, roff2ps, roff2text, roff2x, soelim, tbl, tfmtodit - e troff - Diretórios instalados: /usr/lib/groff, /usr/share/doc/groff-1.22.4 e - /usr/share/groff - -Descrições Curtas - - addftinfo - - Lê um arquivo de fonte troff e adiciona algumas informações de métrica - de fonte adicionais que são usadas pelo sistema groff - - afmtodit - - Cria um arquivo de fonte para uso com groff e grops - - chem - - Preprocessador Groff para produzir diagramas de estrutura química - - eqn - - Compila descrições de equações embutidas em arquivos de entrada troff - em comandos que são entendidos por troff - - eqn2graph - - Converte uma EQN (equação) troff em uma imagem recortada - - gdiffmk - - Marca diferenças entre arquivos groff/nroff/troff - - glilypond - - Transforma partituras escritas na linguagem lilypond na linguagem groff - - gperl - - Preprocessador para groff, permitindo adição do código perl em arquivos - groff - - gpinyin - - Preprocessador para groff, permitindo adição do idioma semelhante a - Chinês Europeu Pinyin em arquivos groff - - grap2graph - - Converte um diagrama grap em uma imagem de bitmap recortada - - grn - - Um preprocessador groff para arquivos gremlin - - grodvi - - Um controlador para groff que produz formato dvi do TeX - - groff - - Um frontal para o sistema de formatação de documentos groff; - normalmente, ele executa o aplicativo troff e um pós-processador - apropriado para o dispositivo selecionado - - groffer - - Exibe arquivos groff e páginas de manual em terminais X e tty - - grog - - Lê arquivos e advinha quais das opções groff -e, -man, -me, -mm, -ms, - -p, -s e -t são exigidas para imprimir arquivos, e relata o comando - groff incluindo aquelas opções - - grolbp - - É um controlador groff para impressoras Canon CAPSL (impressoras a - laser séries LBP-4 e LBP-8) - - grolj4 - - É um controlador para groff que produz saída no formato PCL5 adequado - para uma impressora HP LaserJet 4 - - gropdf - - Traduz a saída do GNU troff para PDF - - grops - - Traduz a saída do GNU troff para PostScript - - grotty - - Traduz a saída do GNU troff em uma forma adequada para dispositivos - semelhantes a máquina de escrever - - hpftodit - - Cria um arquivo de fonte para uso com groff -Tlj4 a partir de um - arquivo de métrica de fonte rotulada HP - - indxbib - - Cria um índice invertido para os bancos de dados bibliográficos com um - arquivo especificado para uso com refer, lookbib e lkbib - - lkbib - - Pesquisa em bancos de dados bibliográficos por referências que - contenham chaves especificadas e relata quaisquer referências - encontradas - - lookbib - - Imprime um prompt na saída de erro padrão (a não ser que a entrada - padrão não seja um terminal); lê uma linha contendo um conjunto de - palavras chave a partir da entrada padrão; pesquisa em bancos de dados - bibliográficos, em um arquivo especificado, por referências contendo - aquelas palavras chave; imprime quaisquer referências encontradas na - saída padrão; e repete esse processo até o final da entrada - - mmroff - - Um preprocessador simples para groff - - neqn - - Formata equações para saída American Standard Code for Information - Interchange (ASCII) - - nroff - - Um script que emula o comando nroff usando groff - - pdfmom - - É um encapsulador em torno de groff que facilita a produção de - documentos PDF a partir de arquivos formatados com as macros mom - - pdfroff - - Cria documentos pdf usando groff - - pfbtops - - Traduz uma fonte PostScript em formato .pfb para ASCII - - pic - - Compila descrições de imagens embutidas em arquivos de entrada troff ou - TeX em comandos entendidos por TeX ou troff - - pic2graph - - Converte um diagrama PIC em uma imagem recortada - - post-grohtml - - Traduz a saída do GNU troff para HTML - - preconv - - Converte codificação de arquivos de entrada em alguma coisa que o GNU - troff entende - - pre-grohtml - - Traduz a saída do GNU troff para HTML - - refer - - Copia o conteúdo de um arquivo para a saída padrão, exceto aquelas - linhas entre .[ e .] que são interpretadas como citações, e linhas - entre .R1 e .R2 que são interpretadas como comandos para como citações - são para serem processadas - - roff2dvi - - Transforma arquivos roff para o formato DVI - - roff2html - - Transforma arquivos roff para o formato HTML - - roff2pdf - - Transforma arquivos roff em PDFs - - roff2ps - - Transforma arquivos roff em arquivos ps - - roff2text - - Transforma arquivos roff em arquivos de texto - - roff2x - - Transforma arquivos roff em outros formatos - - soelim - - Lê arquivos e substitui linhas da forma .so arquivo pelo conteúdo do - arquivo mencionado - - tbl - - Compila descrições de tabelas embutidas em arquivos de entrada troff em - comandos que são entendidos por troff - - tfmtodit - - Cria um arquivo fonte para uso com groff -Tdvi - - troff - - É altamente compatível com o troff do Unix; ele usualmente deveria ser - invocado usando o comando groff, o qual também executará - preprocessadores e pós-processadores na ordem apropriada e com as - opções apropriadas - -8.59. GRUB-2.06 - - O pacote GRUB contém o GRand Unified Bootloader. - Tempo aproximado de construção: 0,7 UPC - Espaço em disco exigido: 158 MB - -8.59.1. Instalação do GRUB - -Nota - - Se seu sistema tem suporte UEFI e você deseja inicializar LFS com UEFI, - então você pode pular esse pacote em LFS, e instalar GRUB com suporte - UEFI (e as dependências dele) seguindo [610]a página BLFS ao final - deste capítulo. - - Prepare GRUB para compilação: -./configure --prefix=/usr \ - --sysconfdir=/etc \ - --disable-efiemu \ - --disable-werror - - O significado das novas opções de configure: - - --disable-werror - Isso permite que a construção complete com avisos introduzidos - por mais recentes versões do Flex. - - --disable-efiemu - Essa opção minimiza o que é construído desabilitando uma - característica e aplicativos de teste não necessários para o - LFS. - - Compile o pacote: -make - - A suíte de teste para esse pacote não é recomendada. A maioria dos - testes depende de pacotes que não estão disponíveis no limitado - ambiente do LFS. Para executar os testes mesmo assim, execute make - check. - - Instale o pacote: -make install -mv -v /etc/bash_completion.d/grub /usr/share/bash-completion/completions - - Usar GRUB para tornar seu sistema LFS inicializável será discutido em - [611]Seção 10.4, “Usando o GRUB para Configurar o Processo de - Inicializaçãoâ€. - -8.59.2. Conteúdo do GRUB - - Aplicativos instalados: grub-bios-setup, grub-editenv, grub-file, - grub-fstest, grub-glue-efi, grub-install, grub-kbdcomp, grub-macbless, - grub-menulst2cfg, grub-mkconfig, grub-mkimage, grub-mklayout, - grub-mknetdir, grub-mkpasswd-pbkdf2, grub-mkrelpath, grub-mkrescue, - grub-mkstandalone, grub-ofpathname, grub-probe, grub-reboot, - grub-render-label, grub-script-check, grub-set-default, - grub-sparc64-setup e grub-syslinux2cfg - Diretórios instalados: /usr/lib/grub, /etc/grub.d, /usr/share/grub e - /boot/grub (quando grub-install for primeiro executado) - -Descrições Curtas - - grub-bios-setup - - É um aplicativo auxiliar para grub-install - - grub-editenv - - Uma ferramenta para editar o bloco ambiente - - grub-file - - Verifica se FILE é do tipo especificado - - grub-fstest - - Ferramenta para depurar o controlador de sistema de arquivos - - grub-glue-efi - - Processa imagens EFI ia32 e amd64 e cola elas de acordo com formato - Apple - - grub-install - - Instala o GRUB no seu controlador - - grub-kbdcomp - - Script que converte um esquema xkb em um reconhecido por GRUB - - grub-macbless - - Bênção estilo Mac sobre arquivos HFS ou HFS+ - - grub-menulst2cfg - - Converte um menu.lst do GRUB Legacy em um grub.cfg para uso com GRUB 2 - - grub-mkconfig - - Gera um arquivo de configuração grub - - grub-mkimage - - Faz uma imagem inicializável do GRUB - - grub-mklayout - - Gera um arquivo de esquema de teclado do GRUB - - grub-mknetdir - - Prepara um diretório de inicialização de rede GRUB - - grub-mkpasswd-pbkdf2 - - Gera uma senha PBKDF2 encriptada para uso no menu de inicialização - - grub-mkrelpath - - Faz um caminho de sistema relativo à raiz dele - - grub-mkrescue - - Faz uma imagem inicializável do GRUB adequada para um disquete ou - CDROM/DVD - - grub-mkstandalone - - Gera uma imagem independente - - grub-ofpathname - - É um programa auxiliar que imprime o caminho de um dispositivo GRUB - - grub-probe - - Sonda informação de dispositivo para um caminho ou dispositivo dado - - grub-reboot - - Configura a entrada de inicialização padrão para o GRUB para a próxima - inicialização apenas - - grub-render-label - - Renderiza .disk_label da Apple para Macs da Apple - - grub-script-check - - Verifica script de configuração do GRUB para erros de sintaxe - - grub-set-default - - Configura a entrada de inicialização padrão para o GRUB - - grub-sparc64-setup - - É um programa auxiliar para grub-setup - - grub-syslinux2cfg - - Transforma um arquivo de configuração syslinux no formato grub.cfg - -8.60. Gzip-1.11 - - O pacote Gzip contém aplicativos para compressão e descompressão de - arquivos. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 20 MB - -8.60.1. Instalação do Gzip - - Prepare Gzip para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.60.2. Conteúdo do Gzip - - Aplicativos instalados: gunzip, gzexe, gzip, uncompress (hard link com - gunzip), zcat, zcmp, zdiff, zegrep, zfgrep, zforce, zgrep, zless, zmore - e znew - -Descrições Curtas - - gunzip - - Descomprime arquivos gzipados - - gzexe - - Cria arquivos executáveis auto-descomprimíveis - - gzip - - Comprime os arquivos dados usando codificação Lempel-Ziv (LZ77) - - uncompress - - Descomprime arquivos comprimidos - - zcat - - Descomprime os arquivos gzipados dados para a saída padrão - - zcmp - - Executa cmp em arquivos gzipados - - zdiff - - Executa diff em arquivos gzipados - - zegrep - - Executa egrep em arquivos gzipados - - zfgrep - - Executa fgrep em arquivos gzipados - - zforce - - Força uma extensão .gz em todos os arquivos dados que são arquivos - gzipados, de modo que o gzip não comprimirá eles novamente; isso pode - ser útil quando nomes de arquivo foram truncados durante uma - transferência de arquivo - - zgrep - - Executa grep em arquivos gzipados - - zless - - Executa less em arquivos gzipados - - zmore - - Executa more em arquivos gzipados - - znew - - Recomprime arquivos oriundos do formato compress para formato gzip—.Z - para .gz - -8.61. IPRoute2-5.16.0 - - O pacote IPRoute2 contém aplicativos para redes baseadas em IPV4 - básicas e avançadas. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 15 MB - -8.61.1. Instalação do IPRoute2 - - O aplicativo arpd incluído nesse pacote não será construído dado que - ele é dependente do Berkeley DB, o qual não é instalado em LFS. - Entretanto, um diretório para arpd e uma página de manual ainda serão - instalados. Impeça isso executando os comandos abaixo. Se o binário - arpd for necessário, então instruções para compilar o Berkeley DB podem - ser encontradas no Livro BLFS em - [612]https://www.linuxfromscratch.org/blfs/view/11.1/server/db.html. -sed -i /ARPD/d Makefile -rm -fv man/man8/arpd.8 - - Compile o pacote: -make - - Esse pacote não tem uma suíte de teste funcional. - - Instale o pacote: -make SBINDIR=/usr/sbin install - - Se desejado, então instale a documentação: -mkdir -pv /usr/share/doc/iproute2-5.16.0 -cp -v COPYING README* /usr/share/doc/iproute2-5.16.0 - -8.61.2. Conteúdo do IPRoute2 - - Aplicativos instalados: bridge, ctstat (link para lnstat), genl, ifcfg, - ifstat, ip, lnstat, nstat, routef, routel, rtacct, rtmon, rtpr, rtstat - (link para lnstat), ss e tc - Diretórios instalados: /etc/iproute2, /usr/lib/tc e - /usr/share/doc/iproute2-5.16.0 - -Descrições Curtas - - bridge - - Configura pontes de redes - - ctstat - - Utilitário de situação de conexão - - genl - - Frontal utilitário de link de rede genérico - - ifcfg - - Um encapsulador de script de shell para o comando ip [Note que ele - exige os aplicativos arping e rdisk originários do pacote iputils - encontrado em [613]http://www.skbuff.net/iputils/] - - ifstat - - Mostra as estatísticas de interface, incluindo a quantidade de pacotes - transmitidos e recebidos pela interface - - ip - - O executável principal. Ele tem várias funções: - - ip link permite usuárias(os) olharem para o estado de - dispositivos e fazerem mudanças - - ip addr permite usuárias(os) olharem para endereços e propriedades - deles, adicionarem novos endereços e deletarem antigos - - ip neighbor permite usuárias(os) olharem para vínculos de vizinho e - propriedades deles, adicionarem novas entradas de vizinho e deletarem - as antigas - - ip rule permite usuárias(os) olharem para políticas de roteamento e - mudar elas - - ip route permite usuárias(os) olharem para a tabela de roteamento e - mudar regras de tabela de roteamento - - ip tunnel permite usuárias(os) olharem para os tuneis IP e propriedades - deles, e mudar elas - - ip maddr permite usuárias(os) olharem para os endereços multicast e - propriedades deles, e mudar elas - - ip mroute permite usuárias(os) configurarem, mudarem ou deletarem o - roteamento multicast - - ip monitor permite usuárias(os) continuamente monitorarem o estado de - dispositivos, endereços e rotas - - lnstat - - Fornece estatísticas de rede do Linux; ele é uma substituição difundida - e mais completa de características para o antigo aplicativo rtstat - - nstat - - Mostra estatísticas de rede - - routef - - Um componente do ip route. Isso é para esvaziar as tabelas de - roteamento - - routel - - Um componente do ip route. Isso é para listar as tabelas de roteamento - - rtacct - - Exibe o conteúdo de /proc/net/rt_acct - - rtmon - - Utilitário de monitoramento de rota - - rtpr - - Converte a saída de ip -o de volta em um formato legível - - rtstat - - Utilitário de situação de rota - - ss - - Similar ao comando netstat; exibe conexões ativas - - tc - - Executável de Controle de Tráfego; isso é para implementações de - Quality Of Service (QOS) e Class Of Service (COS) - - tc qdisc permite usuárias(os) configurarem a disciplina de - enfileiramento - - tc class permite usuárias(os) configurarem classes baseadas no - agendamento de disciplina de enfileiramento - - tc estimator permite usuárias(os) estimarem o fluxo de rede dentro de - uma rede - - tc filter permite usuárias(os) configurarem a filtragem de pacote - QOS/COS - - tc policy permite usuárias(os) configurarem as políticas de QOS/COS - -8.62. Kbd-2.4.0 - - O pacote Kbd contém arquivos de tabelas de teclas, fontes de console e - utilitários de teclado. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 33 MB - -8.62.1. Instalação do Kbd - - O comportamento das teclas backspace e delete não é consistente ao - longo dos mapas de teclas no pacote Kbd. A seguinte correção conserta - esse problema para mapas de tecla i386: -patch -Np1 -i ../kbd-2.4.0-backspace-1.patch - - Após corrigir, a tecla backspace gera o carácter com código 127 e a - tecla delete gera uma sequência bem conhecida de escape. - - Remova o aplicativo redundante resizecons (ele exige que a defunta - svgalib forneça os arquivos de modo de vídeo - para uso normal setfont - dimensiona o console adequadamente) juntamente com a página de manual - dele. -sed -i '/RESIZECONS_PROGS=/s/yes/no/' configure -sed -i 's/resizecons.8 //' docs/man/man8/Makefile.in - - Prepare Kbd para compilação: -./configure --prefix=/usr --disable-vlock - - O significado da opção de configure: - - --disable-vlock - Essa opção evita que o utilitário vlock seja construído, pois - ele exige a biblioteca PAM, que não está disponível no ambiente - chroot. - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -Nota - - Para alguns idiomas (por exemplo, Bielorrusso) o pacote Kbd não fornece - um mapa de tecla útil onde o regular mapa de tecla “by†supõe a - codificação ISO-8859-5, e o mapa de tecla CP1251 normalmente é usado. - Usuárias(os) de tais idiomas tem que baixar mapas de tecla funcionais - separadamente. - - Se desejado, então instale a documentação: -mkdir -pv /usr/share/doc/kbd-2.4.0 -cp -R -v docs/doc/* /usr/share/doc/kbd-2.4.0 - -8.62.2. Conteúdo do Kbd - - Aplicativos instalados: chvt, deallocvt, dumpkeys, fgconsole, - getkeycodes, kbdinfo, kbd_mode, kbdrate, loadkeys, loadunimap, mapscrn, - openvt, psfaddtable (link para psfxtable), psfgettable (link para - psfxtable), psfstriptable (link para psfxtable), psfxtable, setfont, - setkeycodes, setleds, setmetamode, setvtrgb, showconsolefont, showkey, - unicode_start e unicode_stop - Diretórios instalados: /usr/share/consolefonts, - /usr/share/consoletrans, /usr/share/keymaps, /usr/share/doc/kbd-2.4.0 e - /usr/share/unimaps - -Descrições Curtas - - chvt - - Muda o terminal virtual de primeiro plano - - deallocvt - - Desaloca terminais virtuais não usados - - dumpkeys - - Despeja as tabelas de tradução de teclado - - fgconsole - - Imprime o número do terminal virtual ativo - - getkeycodes - - Imprime a tabela de mapeamento de código de escaneamento para código de - tecla do kernel - - kbdinfo - - Obtém informação sobre a situação de um console - - kbd_mode - - Relata ou configura o modo de teclado - - kbdrate - - Configura as taxas de repetição e atraso de teclado - - loadkeys - - Carrega as tabelas de tradução de teclado - - loadunimap - - Carrega a tabela de mapeamento unicode para fonte do kernel - - mapscrn - - Um aplicativo obsoleto que costumava carregar uma tabela de mapeamento - de caractere de saída definida pela(o) usuária(o) para dentro do - controlador de console; isso é feito agora por setfont - - openvt - - Inicia um aplicativo em um novo terminal virtual (VT) - - psfaddtable - - Adiciona uma tabela de carácter Unicode para uma fonte de console - - psfgettable - - Extrai a tabela de carácter Unicode embutida a partir de uma fonte de - console - - psfstriptable - - Remove a tabela de carácter Unicode embutida a partir de uma fonte de - console - - psfxtable - - Lida com tabelas de carácter Unicode para fontes de console - - setfont - - Muda as fontes Enhanced Graphic Adapter (EGA) e Video Graphics Array - (VGA) no console - - setkeycodes - - Carrega entradas de tabela de mapeamento de código de escaneamento para - código de tecla do kernel; isso é útil se existirem teclas incomuns no - teclado - - setleds - - Configura os sinalizadores de teclado e Light Emitting Diodes (LEDs) - - setmetamode - - Define o manuseio de meta tecla de teclado - - setvtrgb - - Configura o mapa de cor de console em todos os terminais virtuais - - showconsolefont - - Exibe a fonte de tela de console EGA/VGA atual - - showkey - - Relata os códigos de escaneamento, códigos de tecla e códigos ASCII das - teclas pressionadas no teclado - - unicode_start - - Põe o teclado e console em modo UNICODE [Não use esse aplicativo a - menos que seu arquivo de mapa de tecla esteja na codificação - ISO-8859-1. Para outras codificações, esse utilitário produz resultados - incorretos.] - - unicode_stop - - Reverte teclado e console do modo UNICODE - -8.63. Libpipeline-1.5.5 - - O pacote Libpipeline contém uma biblioteca para manipular pipelines de - subprocessos em uma maneira flexível e conveniente. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 9,7 MB - -8.63.1. Instalação do Libpipeline - - Prepare Libpipeline para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.63.2. Conteúdo do Libpipeline - - Biblioteca instalada: libpipeline.so - -Descrições Curtas - - libpipeline - - Essa biblioteca é usada para seguramente construir pipelines entre - subprocessos - -8.64. Make-4.3 - - O pacote Make contém um aplicativo para controlar a geração de - executáveis e outros arquivos não fonte de um pacote a partir de - arquivos fonte. - Tempo aproximado de construção: 0,5 UPC - Espaço em disco exigido: 13 MB - -8.64.1. Instalação do Make - - Prepare Make para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.64.2. Conteúdo do Make - - Aplicativo instalado: make - -Descrições Curtas - - make - - Automaticamente determina quais partes de um pacote precisam ser - (re)compiladas e então emite os comandos relevantes - -8.65. Patch-2.7.6 - - O pacote Patch contém um aplicativo para modificar ou criar arquivos - por aplicação de um arquivo “patch†tipicamente criado pelo aplicativo - diff. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 12 MB - -8.65.1. Instalação do Patch - - Prepare Patch para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.65.2. Conteúdo do Patch - - Aplicativo instalado: patch - -Descrições Curtas - - patch - - Modifica arquivos de acordo com um arquivo de correção (Um arquivo de - correção normalmente é uma listagem de diferenças criada com o - aplicativo diff. Aplicando essas diferenças aos arquivos originais, - patch cria as versões corrigidas.) - -8.66. Tar-1.34 - - O pacote Tar fornece a habilidade para criar arquivamentos tar bem como - realizar vários outros tipos de manipulação de arquivamento. Tar pode - ser usado em arquivamentos previamente criados para extrair arquivos, - para armazenar arquivos adicionais, ou para atualizar ou listar - arquivos que já foram armazenados. - Tempo aproximado de construção: 1,7 UPC - Espaço em disco exigido: 40 MB - -8.66.1. Instalação do Tar - - Prepare Tar para compilação: -FORCE_UNSAFE_CONFIGURE=1 \ -./configure --prefix=/usr - - O significado da opção de configure: - - FORCE_UNSAFE_CONFIGURE=1 - Isso força o teste para mknod ser executado como root. - Geralmente é considerado perigoso executar esse teste como a(o) - usuária(o) root, porém como ele está sendo executado em um - sistema que foi apenas parcialmente construído, substituir ele - está OK. - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Um teste, capabilities: binary store/restore, é conhecido por falhar se - ele for executado (LFS carece de selinux), porém será pulado se o - kernel do anfitrião não suportar atributos estendidos no sistema de - arquivos usado para construir LFS. - - Instale o pacote: -make install -make -C doc install-html docdir=/usr/share/doc/tar-1.34 - -8.66.2. Conteúdo do Tar - - Aplicativo instalado: tar - Diretório instalado: /usr/share/doc/tar-1.34 - -Descrições Curtas - - tar - - Cria, extrai arquivos originários de, e lista o conteúdo de - arquivamentos, também conhecidos como tarballs - -8.67. Texinfo-6.8 - - O pacote Texinfo contém aplicativos para leitura, escrita e conversão - de páginas info. - Tempo aproximado de construção: 0,6 UPC - Espaço em disco exigido: 112 MB - -8.67.1. Instalação do Texinfo - - Prepare Texinfo para compilação: -./configure --prefix=/usr - - Novamente, conserte um problema ao construir o pacote com Glibc-2.34 ou - posterior: -sed -e 's/__attribute_nonnull__/__nonnull/' \ - -i gnulib/lib/malloc/dynarray-skeleton.c - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - - Opcionalmente, instale os componentes pertencentes a uma instalação de - TeX: -make TEXMF=/usr/share/texmf install-tex - - O significado do parâmetro de make: - - TEXMF=/usr/share/texmf - A variável de arquivo make TEXMF mantém o local da raiz da - árvore do TeX se, por exemplo, um pacote do TeX seja instalado - posteriormente. - - O sistema de documentação Info usa um arquivo de texto simples para - manter a lista de entradas de menu dele. O arquivo está localizado em - /usr/share/info/dir. Infelizmente, devido a problemas ocasionais nos - arquivos Make de vários pacotes, ele pode as vezes sair de sincronia - com as páginas info instaladas no sistema. Se o arquivo - /usr/share/info/dir alguma vez precisar ser recriado, então os - seguintes comandos opcionais realizarão a tarefa: -pushd /usr/share/info - rm -v dir - for f in * - do install-info $f dir 2>/dev/null - done -popd - -8.67.2. Conteúdo do Texinfo - - Aplicativos instalados: info, install-info, makeinfo (link para - texi2any), pdftexi2dvi, pod2texi, texi2any, texi2dvi, texi2pdf e - texindex - Bibliotecas instaladas: MiscXS.so, Parsetexi.so e XSParagraph.so (todas - em /usr/lib/texinfo) - Diretórios instalados: /usr/share/texinfo e /usr/lib/texinfo - -Descrições Curtas - - info - - Usado para ler páginas info as quais são similares a páginas de manual, - porém frequentemente vão muito mais fundo que somente explanar todas as - opções de linha de comando disponíveis [Por exemplo, compare man bison - e info bison] - - install-info - - Usado para instalar páginas info; ele atualiza entradas no arquivo de - índice info - - makeinfo - - Traduz os documentos fonte do Texinfo dados para páginas info, texto - simples ou HTML - - pdftexi2dvi - - Usado para formatar o documento do Texinfo dado em um arquivo Portable - Document Format (PDF) - - pod2texi - - Converte Pod para formato Texinfo - - texi2any - - Traduz documentação fonte do Texinfo para vários outros formatos - - texi2dvi - - Usado para formatar o documento do Texinfo dado em um arquivo - independente de dispositivo que pode ser impresso - - texi2pdf - - Usado para formatar o documento do Texinfo dado em um arquivo Portable - Document Format (PDF) - - texindex - - Usado para ordenar arquivos de índice do Texinfo - -8.68. Vim-8.2.4383 - - O pacote Vim contém um editor de texto poderoso. - Tempo aproximado de construção: 2,4 UPC - Espaço em disco exigido: 206 MB - -Alternativas ao Vim - - Se você preferir outro editor—como Emacs, Joe ou Nano—por favor - consulte - [614]https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/editors.ht - ml para instruções de instalação sugeridas. - -8.68.1. Instalação do Vim - - Primeiro, mude o local padrão do arquivo de configuração vimrc para - /etc: -echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h - - Prepare vim para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para preparar os testes, garanta que usuária(o) tester pode escrever na - árvore de fonte: -chown -Rv tester . - - Agora execute os testes como usuária(o) tester: -su tester -c "LANG=en_US.UTF-8 make -j1 test" &> vim-test.log - - A suíte de teste emite muitos dados binários para a tela. Isso pode - causar problemas com as configurações do terminal atual. O problema - pode ser evitado redirecionando a saída para um arquivo de registro - conforme mostrado acima. Um teste bem sucedido resultará nas palavras - "ALL DONE" no arquivo de registro ao completar. - - Instale o pacote: -make install - - Muitas(os) usuárias(os) estão acostumadas(os) a usar vi em vez de vim. - Para permitir a execução do vim quando usuárias(os) habitualmente - digitarem vi, crie um link simbólico para ambos o binário e a página de - manual nos idiomas fornecidos: -ln -sv vim /usr/bin/vi -for L in /usr/share/man/{,*/}man1/vim.1; do - ln -sv vim.1 $(dirname $L)/vi.1 -done - - Por padrão, a documentação do vim é instalada em /usr/share/vim. O - seguinte link simbólico permite que a documentação seja acessada via - /usr/share/doc/vim-8.2.4383, tornando ela consistente com o local da - documentação para outros pacotes: -ln -sv ../vim/vim82/doc /usr/share/doc/vim-8.2.4383 - - Se um X Window System vier a ser instalado no sistema LFS, então talvez - seja necessário recompilar vim após instalar X. O Vim vem com uma - versão GUI do editor que exige o X e algumas bibliotecas adicionais - para ser instalada. Para mais informações sobre esse processo, consulte - a documentação de vim e a página de instalação de vim no livro BLFS em - [615]https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/vim.html. - -8.68.2. Configurando Vim - - Por padrão, vim executa em modo incompatível com vi. Isso talvez seja - novo para usuárias(os) que usaram outros editores no passado. A - configuração “nocompatible†está incluída abaixo para destacar o fato - de que um novo comportamento está sendo usado. Ela também lembra - àquelas(es) que mudariam para o modo “compatible†que esse deveria ser - a primeira configuração no arquivo de configuração. Isso é necessário, - pois ela muda outras configurações, e substituições precisam vir após - essa configuração. Crie um arquivo de configuração vim padrão - executando o seguinte: -cat > /etc/vimrc << "EOF" -" Begin /etc/vimrc - -" Ensure defaults are set before customizing settings, not after -source $VIMRUNTIME/defaults.vim -let skip_defaults_vim=1 - -set nocompatible -set backspace=2 -set mouse= -syntax on -if (&term == "xterm") || (&term == "putty") - set background=dark -endif - -" End /etc/vimrc -EOF - - A configuração set nocompatible faz com que vim se comporte de uma - maneira mais útil (o padrão) que a maneira compatível com vi. Remova o - “no†para manter o comportamento vi antigo. A configuração set - backspace=2 permite retroceder sobre quebras de linha, auto recuos e o - início de uma inserção. O parâmetro syntax on habilita o destaque de - sintaxe do vim. A configuração set mouse= habilita adequada colagem de - texto com o mouse quando trabalhar em chroot ou por meio de uma conexão - remota. Finalmente, a declaração if com a configuração set - background=dark corrige a suposição do vim sobre a cor de segundo plano - de alguns emuladores de terminal. Isso dá ao destaque um esquema de - cores melhor para uso no segundo plano preto desses aplicativos. - - Documentação para outras opções disponíveis pode ser obtida executando - o seguinte comando: -vim -c ':options' - -Nota - - Por padrão, vim instala apenas arquivos de soletrar para o idioma - inglês. Para instalar arquivos de soletrar para seu idioma preferido, - baixe os arquivos *.spl e, opcionalmente, o *.sug para seu idioma e - codificação de caracter a partir de - [616]ftp://ftp.vim.org/pub/vim/runtime/spell/ e salve-os em - /usr/share/vim/vim82/spell/. - - Para usar esses arquivos de soletrar, alguma configuração em /etc/vimrc - é necessária, por exemplo: -set spelllang=en,ru -set spell - - Para mais informação, veja o arquivo README apropriado localizado na - URL acima. - -8.68.3. Conteúdo do Vim - - Aplicativos instalados: ex (link para vim), rview (link para vim), rvim - (link para vim), vi (link para vim), view (link para vim), vim, vimdiff - (link para vim), vimtutor e xxd - Diretório instalado: /usr/share/vim - -Descrições Curtas - - ex - - Inicia vim em modo ex - - rview - - É uma versão restrita do view; nenhum comando de shell pode ser - iniciado e view não pode ser suspenso - - rvim - - É uma versão restrita do vim; nenhum comando de shell pode ser iniciado - e vim não pode ser suspenso - - vi - - Link para vim - - view - - Inicia vim em modo somente leitura - - vim - - É o editor - - vimdiff - - Edita duas ou três versões de um arquivo com vim e exibe diferenças - - vimtutor - - Ensina as teclas básicas e comandos do vim - - xxd - - Cria um despejo hexadecimal do arquivo dado; ele também pode fazer o - reverso, de forma que ele pode ser usado para correção de binário - -8.69. Eudev-3.2.11 - - O pacote Eudev contém aplicativos para criação dinâmica de nós de - dispositivo. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 83 MB - -8.69.1. Instalação do Eudev - - Prepare Eudev para compilação: -./configure --prefix=/usr \ - --bindir=/usr/sbin \ - --sysconfdir=/etc \ - --enable-manpages \ - --disable-static - - Compile o pacote: -make - - Crie alguns diretórios agora que são necessários para testes, porém - também serão usados como uma parte da instalação: -mkdir -pv /usr/lib/udev/rules.d -mkdir -pv /etc/udev/rules.d - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - - Instale algumas regras personalizadas e arquivos de suporte úteis em um - ambiente LFS: -tar -xvf ../udev-lfs-20171102.tar.xz -make -f udev-lfs-20171102/Makefile.lfs install - -8.69.2. Configurando Eudev - - Informação acerca de dispositivos de hardware é mantida nos diretórios - /etc/udev/hwdb.d e /usr/lib/udev/hwdb.d. Eudev precisa que a informação - seja compilada em um banco de dados binário /etc/udev/hwdb.bin. Crie o - banco de dados inicial: -udevadm hwdb --update - - Esse comando precisa ser executado cada vez que a informação de - hardware for atualizada. - -8.69.3. Conteúdo do Eudev - - Aplicativos instalados: udevadm e udevd - Biblioteca instalada: libudev.so - Diretórios instalados: /etc/udev, /usr/lib/udev e - /usr/share/doc/udev-udev-lfs-20171102 - -Descrições Curtas - - udevadm - - Ferramenta de administração udev genérica: controla o daemon udevd, - fornece informação a partir do banco de dados do Udev, monitora - uevents, aguarda que uevents terminem, testa configuração do Udev e - deflagra uevents para um dispositivo dado - - udevd - - Um daemon que ouve uevents no soquete de link de rede, cria - dispositivos e executa os aplicativos externos configurados em resposta - a esses uevents - - libudev - - Uma interface de biblioteca para informação de dispositivo do udev - - /etc/udev - - Contém arquivos de configuração do Udev, permissões de dispositivo e - regras para nomear dispositivo - -8.70. Man-DB-2.10.1 - - O pacote Man-DB contém aplicativos para encontrar e visualizar páginas - de manual. - Tempo aproximado de construção: 0,3 UPC - Espaço em disco exigido: 39 MB - -8.70.1. Instalação do Man-DB - - Prepare Man-DB para compilação: -./configure --prefix=/usr \ - --docdir=/usr/share/doc/man-db-2.10.1 \ - --sysconfdir=/etc \ - --disable-setuid \ - --enable-cache-owner=bin \ - --with-browser=/usr/bin/lynx \ - --with-vgrind=/usr/bin/vgrind \ - --with-grap=/usr/bin/grap \ - --with-systemdtmpfilesdir= \ - --with-systemdsystemunitdir= - - O significado das opções de configure: - - --disable-setuid - Isso desabilita fazer o aplicativo man configurar uid para - usuária(o) man. - - --enable-cache-owner=bin - Isso torna os arquivos de cache de sistema de propriedade da(o) - usuária(o) bin. - - --with-... - Esses três parâmetros são usados para configurar alguns - aplicativos padrão. lynx é um navegador de rede baseado em texto - (veja-se BLFS para instruções de instalação); vgrind converte - fontes de aplicativo para entrada do Groff; e grap é útil para - tipografar gráficos em documentos do Groff. Os aplicativos - vgrind e grap normalmente não são necessários para visualizar - páginas de manual. Eles não são parte do LFS ou BLFS, mas você - deveria ser capaz de instalá-los após terminar o LFS se você - desejar fazer isso. - - --with-systemd... - Esses parâmetros impedem a instalação de diretórios e arquivos - do systemd desnecessários. - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.70.2. Páginas de Manual não inglesas no LFS - - A seguinte tabela mostra o conjunto de caracteres no qual Man-DB supõe - que as páginas de manual instaladas sob /usr/share/man/ estarão - codificadas. Em adição a isto, o Man-DB determina corretamente se - páginas de manual instaladas naquele diretório estão codificadas com - UTF-8. - - Tabela 8.1. Codificação de caracteres esperada das páginas de manual de - 8-bit legadas - Idioma (código) Codificação Idioma (código) Codificação - Dinamarquês (da) ISO-8859-1 Croata (hr) ISO-8859-2 - Alemão (de) ISO-8859-1 Húngaro (hu) ISO-8859-2 - Inglês (en) ISO-8859-1 Japonês (ja) EUC-JP - Espanhol (es) ISO-8859-1 Coreano (ko) EUC-KR - Estoniano (et) ISO-8859-1 Lituano (lt) ISO-8859-13 - Finlandês (fi) ISO-8859-1 Letão (lv) ISO-8859-13 - Francês (fr) ISO-8859-1 Macedônio (mk) ISO-8859-5 - Irlandês (ga) ISO-8859-1 Polonês (pl) ISO-8859-2 - Galego (gl) ISO-8859-1 Romeno (ro) ISO-8859-2 - Indonésio (id) ISO-8859-1 Russo (ru) KOI8-R - Islandês (is) ISO-8859-1 Eslovaco (sk) ISO-8859-2 - Italiano (it) ISO-8859-1 Esloveno (sl) ISO-8859-2 - Bokmal norueguês (nb) ISO-8859-1 Latim sérvio (sr@latin) ISO-8859-2 - Holandês (nl) ISO-8859-1 Sérvio (sr) ISO-8859-5 - Nynorsk norueguês (nn) ISO-8859-1 Turco (tr) ISO-8859-9 - Norueguês (no) ISO-8859-1 Ucraniano (uk) KOI8-U - Português (pt) ISO-8859-1 Vietnamita (vi) TCVN5712-1 - Sueco (sv) ISO-8859-1 Chinês simplificado (zh_CN) GBK - Bielorrusso (be) CP1251 Chinês simplificado, Singapura (zh_SG) GBK - Búlgaro (bg) CP1251 Chinês tradicional, Hong Kong (zh_HK) BIG5HKSCS - Tcheco (cs) ISO-8859-2 Chinês tradicional (zh_TW) BIG5 - Grego (el) ISO-8859-7 - -Nota - - Páginas de manual em idiomas que não estão na lista não são suportadas. - -8.70.3. Conteúdo do Man-DB - - Aplicativos instalados: accessdb, apropos (link para whatis), catman, - lexgrog, man, man-recode, mandb, manpath e whatis - Bibliotecas instaladas: libman.so e libmandb.so (ambas em - /usr/lib/man-db) - Diretórios instalados: /usr/lib/man-db, /usr/libexec/man-db e - /usr/share/doc/man-db-2.10.1 - -Descrições Curtas - - accessdb - - Despeja o conteúdo do banco de dados whatis em formato legível por - humanos - - apropos - - Pesquisa no banco de dados whatis e exibe as descrições curtas dos - comandos de sistema que contém uma sequência de caracteres dada - - catman - - Cria ou atualiza páginas de manual pré-formatadas - - lexgrog - - Exibe informação de sumário em uma linha sobre uma página de manual - dada - - man - - Formata e exibe a página de manual solicitada - - man-recode - - Converte páginas de manual para outra codificação - - mandb - - Cria ou atualiza o banco de dados whatis - - manpath - - Exibe o conteúdo de $MANPATH ou (se $MANPATH não estiver configurada) - um caminho de busca adequado baseado nas configurações em man.conf e no - ambiente da(o) usuária(o) - - whatis - - Pesquisa no banco de dados whatis e exibe as descrições curtas de - comandos do sistema que contém a palavra chave dada como uma palavra - separada - - libman - - Contém suporte em tempo de execução para o man - - libmandb - - Contém suporte em tempo de execução para o man - -8.71. Procps-ng-3.3.17 - - O pacote Procps-ng contém aplicativos para monitorar processos. - -Nota - - Esse pacote extrai para o diretório procps-3.3.17, não o esperado - procps-ng-3.3.17. - Tempo aproximado de construção: 0,4 UPC - Espaço em disco exigido: 19 MB - -8.71.1. Instalação do Procps-ng - - Prepare procps-ng para compilação: -./configure --prefix=/usr \ - --docdir=/usr/share/doc/procps-ng-3.3.17 \ - --disable-static \ - --disable-kill - - O significado da opção de configure: - - --disable-kill - Essa chave desabilita a construção do comando kill que será - instalado pelo pacote util-linux. - - Compile o pacote: -make - - Para executar a suíte de teste, execute: -make check - - Cinco testes relacionados a pkill são conhecidos por falhar devido a um - problema com testes que não foram atualizados. - - Instale o pacote: -make install - -8.71.2. Conteúdo do Procps-ng - - Aplicativos instalados: free, pgrep, pidof, pkill, pmap, ps, pwdx, - slabtop, sysctl, tload, top, uptime, vmstat, w e watch - Biblioteca instalada: libprocps.so - Diretórios instalados: /usr/include/proc e - /usr/share/doc/procps-ng-3.3.17 - -Descrições Curtas - - free - - Relata a quantidade de memória livre e usada (ambas memória física e - swap) no sistema - - pgrep - - Procura por processos baseado nos nomes deles e outros atributos - - pidof - - Relata os PIDs dos aplicativos dados - - pkill - - Sinaliza processos baseado nos nomes deles e outros atributos - - pmap - - Relata o mapeamento de memória do processo dado - - ps - - Lista os processos em execução atualmente - - pwait - - Aguarda que um processo termine antes de executar. - - pwdx - - Relata o diretório de trabalho atual de um processo - - slabtop - - Exibe informações detalhadas de cache de slab do kernel em tempo real - - sysctl - - Modifica parâmetros do kernel em tempo de execução - - tload - - Imprime um gráfico da média de carga de sistema atual - - top - - Exibe uma lista dos processos com maior uso de CPU; ele fornece uma - visão contínua da atividade do processador em tempo real - - uptime - - Relata há quanto tempo o sistema está executando, quantas(os) - usuárias(os) estão logadas(os) e as médias de carga de sistema - - vmstat - - Relata estatísticas de memória virtual, dando informações sobre - processos, memória, paginação, Entrada/Saída (E/S) de bloco, traps e - atividade da CPU - - w - - Mostra quais usuárias(os) estão logadas(os) atualmente, onde e desde - quando - - watch - - Executa um comando dado repetidamente, exibindo a primeira tela cheia - da saída dele; isso permite que uma(m) usuária(o) observe a mudança de - saída ao longo do tempo - - libprocps - - Contém as funções usadas pela maioria dos aplicativos nesse pacote - -8.72. Util-linux-2.37.4 - - O pacote Util-linux contém aplicativos utilitários diversos. Entre eles - estão utilitários para lidar com sistemas de arquivos, consoles, - partições e mensagens. - Tempo aproximado de construção: 1,1 UPC - Espaço em disco exigido: 261 MB - -8.72.1. Instalação do Util-linux - - Prepare Util-linux para compilação: -./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ - --bindir=/usr/bin \ - --libdir=/usr/lib \ - --sbindir=/usr/sbin \ - --docdir=/usr/share/doc/util-linux-2.37.4 \ - --disable-chfn-chsh \ - --disable-login \ - --disable-nologin \ - --disable-su \ - --disable-setpriv \ - --disable-runuser \ - --disable-pylibmount \ - --disable-static \ - --without-python \ - --without-systemd \ - --without-systemdsystemunitdir - - As opções --disable e --without impedem avisos acerca de construir - componentes que exigem pacotes ausentes em LFS ou estão inconsistentes - com aplicativos instalados por outros pacotes. - - Compile o pacote: -make - - Se desejado, execute a suíte de teste como uma(m) usuária(o) não root: - -Atenção - - Executar a suíte de teste como a(o) usuária(o) root pode ser danoso ao - seu sistema. Para executá-lo, a opção CONFIG_SCSI_DEBUG para o kernel - precisa estar disponível no sistema em execução atualmente e precisa - ser construída como um módulo. Construí-lo dentro do kernel impedirá a - inicialização. Para cobertura completa, outros pacotes do BLFS precisam - ser instalados. Se desejado, esse teste pode ser executado após - reiniciar no sistema LFS completo e executar: -bash tests/run.sh --srcdir=$PWD --builddir=$PWD - -Nota - - Existe um teste que falha no ambiente chroot e causa os testes travarem - para sempre. O problema não ocorre do lado de fora do ambiente chroot. - Para contornar o problema, delete o teste: -rm tests/ts/lsns/ioctl_ns - -chown -Rv tester . -su tester -c "make -k check" - - Instale o pacote: -make install - -8.72.2. Conteúdo do Util-linux - - Aplicativos instalados: addpart, agetty, blkdiscard, blkid, blkzone, - blockdev, cal, cfdisk, chcpu, chmem, choom, chrt, col, colcrt, colrm, - column, ctrlaltdel, delpart, dmesg, eject, fallocate, fdisk, fincore, - findfs, findmnt, flock, fsck, fsck.cramfs, fsck.minix, fsfreeze, - fstrim, getopt, hexdump, hwclock, i386, ionice, ipcmk, ipcrm, ipcs, - irqtop, isosize, kill, last, lastb (link para last), ldattach, linux32, - linux64, logger, look, losetup, lsblk, lscpu, lsipc, lsirq, lslocks, - lslogins, lsmem, lsns, mcookie, mesg, mkfs, mkfs.bfs, mkfs.cramfs, - mkfs.minix, mkswap, more, mount, mountpoint, namei, nsenter, partx, - pivot_root, prlimit, readprofile, rename, renice, resizepart, rev, - rfkill, rtcwake, script, scriptlive, scriptreplay, setarch, setsid, - setterm, sfdisk, sulogin, swaplabel, swapoff (link para swapon), - swapon, switch_root, taskset, uclampset, ul, umount, uname26, unshare, - utmpdump, uuidd, uuidgen, uuidparse, wall, wdctl, whereis, wipefs, - x86_64 e zramctl - Bibliotecas instaladas: libblkid.so, libfdisk.so, libmount.so, - libsmartcols.so e libuuid.so - Diretórios instalados: /usr/include/blkid, /usr/include/libfdisk, - /usr/include/libmount, /usr/include/libsmartcols, /usr/include/uuid, - /usr/share/doc/util-linux-2.37.4 e /var/lib/hwclock - -Descrições Curtas - - addpart - - Informa o kernel Linux de novas partições - - agetty - - Abre uma porta tty, solicita um nome de login e então invoca o - aplicativo login - - blkdiscard - - Descarta setores em um dispositivo - - blkid - - Um utilitário de linha de comando para localizar e imprimir atributos - de dispositivo de bloco - - blkzone - - Executa comando de zona no dispositivo de bloco dado - - blockdev - - Permite usuárias(os) chamar ioctls de dispositivo de bloco a partir da - linha de comando - - cal - - Exibe um calendário simples - - cfdisk - - Manipula a tabela de partição do dispositivo dado - - chcpu - - Modifica o estado de CPUs - - chmem - - Configura memória - - choom - - Exibe e ajusta a pontuação de matador de OOM - - chrt - - Manipula atributos de tempo real de um processo - - col - - Filtra feeds de linha reversa - - colcrt - - Filtra saída nroff para terminais que não tem algumas capacidades, tais - como overstriking e half-lines - - colrm - - Filtra as colunas dadas - - column - - Formata um arquivo dado em colunas múltiplas - - ctrlaltdel - - Configura a função da combinação de teclas Ctrl+Alt+Del para uma - reconfiguração hard ou soft - - delpart - - Pede ao kernel Linux para remover uma partição - - dmesg - - Despeja as mensagens de inicialização do kernel - - eject - - Ejeta mídia removível - - fallocate - - Pré-aloca espaço para um arquivo - - fdisk - - Manipula a tabela de partição do dispositivo dado - - fincore - - Conta páginas de conteúdo de arquivo em núcleo - - findfs - - Encontra um sistema de arquivos pelo rótulo ou Universally Unique - Identifier (UUID) - - findmnt - - É uma interface de linha de comando para a biblioteca libmount para - funcionar com mountinfo, fstab e arquivos mtab - - flock - - Adquire uma trava de arquivo e então executa um comando com a trava - mantida - - fsck - - É usado para verificar, e opcionalmente reparar, sistemas de arquivos - - fsck.cramfs - - Realiza uma verificação de consistência no sistema de arquivos Cramfs - no dispositivo dado - - fsck.minix - - Realiza uma verificação de consistência no sistema de arquivos Minix no - dispositivo dado - - fsfreeze - - É um encapsulador muito simples em torno de operações de controlador de - kernel de ioctl de FIFREEZE/FITHAW - - fstrim - - Descarta blocos não usados em um sistema de arquivos montado - - getopt - - Analisa opções na linha de comando dada - - hexdump - - Despeja o arquivo dado em hexadecimal ou em outro formato dado - - hwclock - - Lê ou configura o relógio de hardware do sistema, também chamado de - Real-Time Clock (RTC) ou relógio do Basic Input-Output System (BIOS) - - i386 - - Um link simbólico para setarch - - ionice - - Obtém ou configura a classe de agendamento de io e prioridade para um - aplicativo - - ipcmk - - Cria vários recursos IPC - - ipcrm - - Remove o recurso de Inter-Process Communication (IPC) dado - - ipcs - - Fornece informação de situação de IPC - - irqtop - - Exibe informação de contador de interrupção do kernel em visão estilo - top(1) - - isosize - - Relata o tamanho de um sistema de arquivos iso9660 - - kill - - Envia sinais para processos - - last - - Mostra quais usuárias(os) derradeiramente logaram-se (e deslogaram-se), - pesquisando de volta ao longo do arquivo /var/log/wtmp; ele também - mostra inicializações de sistema, desligamentos e mudanças de nível de - execução - - lastb - - Exibe as tentativas de login falhas, conforme registrado em - /var/log/btmp - - ldattach - - Anexa uma disciplina de linha à uma linha serial - - linux32 - - Um link simbólico para setarch - - linux64 - - Um link simbólico para setarch - - logger - - Adiciona a mensagem dada ao registro do sistema - - look - - Exibe linhas que começam com a sequência de caracteres dada - - losetup - - Configura e controla dispositivos de loop - - lsblk - - Lista informações sobre todos ou dispositivos de bloco selecionados em - um formato semelhante a árvore - - lscpu - - Imprime informação de arquitetura da CPU - - lsipc - - Imprime informação acerca de facilidades de IPC empregadas atualmente - no sistema - - lsirq - - Exibe informação de contador de interrupção do kernel - - lslocks - - Lista travas locais de sistema - - lslogins - - Lista informação acerca de contas de usuárias(os), grupos e sistema - - lsmem - - Lista os intervalos de memória disponível com a situação online deles - - lsns - - Lista espaços de nome - - mcookie - - Gera cookies mágicos (números hexadecimais aleatórios de 128 bits) para - o xauth - - mesg - - Controla se outras(os) usuárias(os) podem enviar mensagens para o - terminal da(o) usuária(o) atual - - mkfs - - Constrói um sistema de arquivos em um dispositivo (geralmente uma - partição de disco rígido) - - mkfs.bfs - - Cria um sistema de arquivos Santa Cruz Operations (SCO) bfs - - mkfs.cramfs - - Cria um sistema de arquivos cramfs - - mkfs.minix - - Cria um sistema de arquivos Minix - - mkswap - - Inicializa dispositivo ou arquivo dado para ser usado como uma área de - troca - - more - - Um filtro para paginar ao longo de texto uma tela de cada vez - - mount - - Anexa o sistema de arquivos no dispositivo dado a um diretório - especificado na árvore do sistema de arquivos - - mountpoint - - Verifica se o diretório é um ponto de montagem - - namei - - Mostra os links simbólicos nos nomes de caminho dados - - nsenter - - Executa um aplicativo com espaços de nome de outros processos - - partx - - Informa ao kernel sobre a presença e numeração de partições no disco - - pivot_root - - Torna o sistema de arquivos dado o novo sistema de arquivos raiz do - processo atual - - prlimit - - Obtém e configura um limite de recursos do processo - - readprofile - - Lê informação de perfil do kernel - - rename - - Renomeia os arquivos dados, substituindo uma sequência de caracteres - dada por outra - - renice - - Altera a prioridade de processos em execução - - resizepart - - Pede ao kernel Linux para redimensionar uma partição - - rev - - Inverte as linhas de um arquivo dado - - rkfill - - Ferramenta para habilitar e desabilitar dispositivos sem fios - - rtcwake - - Usado para entrar em um estado de suspensão do sistema até o horário de - ativação especificado - - script - - Cria um texto datilografado de uma sessão de terminal - - scriptlive - - Reexecuta textos datilografados de sessão usando informação de tempo - - scriptreplay - - Reproduz textos datilografados usando informações de tempo - - setarch - - Muda a arquitetura relatada em um novo ambiente de aplicativo e - configura sinalizadores de personalidade - - setsid - - Executa o aplicativo dado em uma nova sessão - - setterm - - Configura atributos do terminal - - sfdisk - - Um manipulador de tabela de partição de disco - - sulogin - - Permite root se logar; ele normalmente é invocado por init quando o - sistema entra em modo de usuária(o) única(o) - - swaplabel - - Permite modificar o UUID e rótulo da área de troca - - swapoff - - Desabilita dispositivos e arquivos para paginação e troca - - swapon - - Habilita dispositivos e arquivos para paginação e troca e lista os - dispositivos e arquivos atualmente em uso - - switch_root - - Alterna para outro sistema de arquivos como a raiz da árvore de - montagem - - taskset - - Recupera ou configura uma afinidade de CPU do processo - - uclampset - - Manipula os atributos de fixação de utilização do sistema ou um - processo - - ul - - Um filtro para traduzir sublinhados em sequências de escape indicando - sublinhamento para o terminal em uso - - umount - - Desconecta um sistema de arquivos da árvore de arquivos do sistema - - uname26 - - Um link simbólico para setarch - - unshare - - Executa um aplicativo com alguns espaços de nome não compartilhados - oriundos do pai - - utmpdump - - Exibe o conteúdo do arquivo de login dado em um formato mais amigável - para a(o) usuária(o) - - uuidd - - Um daemon usado pela biblioteca UUID para gerar UUIDs baseados em - horário em uma forma segura e garantidamente única - - uuidgen - - Cria novos UUIDs. Cada novo UUID pode razoavelmente ser considerado - único entre todos os UUIDs criados, no sistema local e em outros - sistemas, no passado e no futuro - - uuidparse - - Um utilitário para analisar identificadores únicos - - wall - - Exibe o conteúdo de um arquivo ou, por padrão, a entrada padrão dele, - nos terminais de todas(os) as(os) usuárias(os) logadas(os) atualmente - - wdctl - - Mostra a situação de vigilante de hardware - - whereis - - Relata o local do binário, fonte e página de manual para o comando dado - - wipefs - - Limpa uma assinatura de sistema de arquivos a partir de um dispositivo - - x86_64 - - Um link simbólico para setarch - - zramctl - - Um aplicativo para configurar e controlar dispositivos zram (disco ram - comprimido) - - libblkid - - Contém rotinas para identificação de dispositivo e extração de token - - libfdisk - - Contém rotinas para manipular tabelas de partição - - libmount - - Contém rotinas para montagem e desmontagem de dispositivo de bloco - - libsmartcols - - Contém rotinas para auxiliar a saída de tela em forma de tabela - - libuuid - - Contém rotinas para gerar identificadores únicos para objetos que - talvez sejam acessíveis além do sistema local - -8.73. E2fsprogs-1.46.5 - - O pacote e2fsprogs contém os utilitários para lidar com o sistema de - arquivos ext2. Ele também suporta os sistemas de arquivos de registro - em diário ext3 e ext4. - Tempo aproximado de construção: 4,4 UPC em um disco giratório, 1,3 UPC - em um SSD - Espaço em disco exigido: 93 MB - -8.73.1. Instalação do E2fsprogs - - A documentação do e2fsprogs recomenda que o pacote seja construído em - um subdiretório da árvore do fonte: -mkdir -v build -cd build - - Prepare e2fsprogs para compilação: -../configure --prefix=/usr \ - --sysconfdir=/etc \ - --enable-elf-shlibs \ - --disable-libblkid \ - --disable-libuuid \ - --disable-uuidd \ - --disable-fsck - - O significado das opções de configure: - - --enable-elf-shlibs - Isso cria as bibliotecas compartilhadas as quais alguns - aplicativos nesse pacote usam. - - --disable-* - Isso evita que e2fsprogs construa e instale as bibliotecas - libuuid e libblkid, o daemon uuidd, e o encapsulador fsck, uma - vez que o util-linux instala versões mais recentes. - - Compile o pacote: -make - - Para executar os testes, execute: -make check - - Um teste, u_direct_io, é conhecido por falhar em alguns sistemas. - - Instale o pacote: -make install - - Remova bibliotecas estáticas inúteis: -rm -fv /usr/lib/{libcom_err,libe2p,libext2fs,libss}.a - - Esse pacote instala um arquivo gzipado .info, mas não atualiza o - arquivo do sistema dir. Descompacte esse arquivo e então atualize o - arquivo do sistema dir usando os seguintes comandos: -gunzip -v /usr/share/info/libext2fs.info.gz -install-info --dir-file=/usr/share/info/dir /usr/share/info/libext2fs.info - - Se desejado, crie e instale alguma documentação adicional executando os - seguintes comandos: -makeinfo -o doc/com_err.info ../lib/et/com_err.texinfo -install -v -m644 doc/com_err.info /usr/share/info -install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info - -8.73.2. Conteúdo do E2fsprogs - - Aplicativos instalados: badblocks, chattr, compile_et, debugfs, - dumpe2fs, e2freefrag, e2fsck, e2image, e2label, e2mmpstatus, e2scrub, - e2scrub_all, e2undo, e4crypt, e4defrag, filefrag, fsck.ext2, fsck.ext3, - fsck.ext4, logsave, lsattr, mk_cmds, mke2fs, mkfs.ext2, mkfs.ext3, - mkfs.ext4, mklost+found, resize2fs e tune2fs - Bibliotecas instaladas: libcom_err.so, libe2p.so, libext2fs.so e - libss.so - Diretórios instalados: /usr/include/e2p, /usr/include/et, - /usr/include/ext2fs, /usr/include/ss, /usr/lib/e2fsprogs, /usr/share/et - e /usr/share/ss - -Descrições Curtas - - badblocks - - Pesquisa em um dispositivo (geralmente uma partição de disco) por - blocos defeituosos - - chattr - - Muda os atributos de arquivos em um sistema de arquivos ext2; ele - também muda sistemas de arquivos ext3, a versão de registro em diário - dos sistemas de arquivos ext2 - - compile_et - - Um compilador de tabela de erro; ele converte uma tabela de nomes de - códigos de erros e mensagens em um arquivo fonte C adequado para uso - com a biblioteca com_err - - debugfs - - Um depurador de sistema de arquivo; ele pode ser usado para examinar e - mudar o estado de um sistema de arquivos ext2 - - dumpe2fs - - Imprime informação de superblocos e grupo de blocos para o sistema de - arquivos presente em um dispositivo dado - - e2freefrag - - Relata informação de fragmentação de espaço livre - - e2fsck - - É usado para verificar, e opcionalmente reparar sistemas de arquivos - ext2 e sistemas de arquivos ext3 - - e2image - - É usado para salvar dados críticos de sistema de arquivos ext2 para um - arquivo - - e2label - - Exibe ou muda o rótulo de sistema de arquivos no sistema de arquivos - ext2 presente em um dispositivo dado - - e2mmpstatus - - Verifica situação de MMP de um sistema de arquivos ext4 - - e2scrub - - Verifica o conteúdo de um sistema de arquivos ext[234] montado - - e2scrub_all - - Verifica todos os sistemas de arquivos ext[234] montados para erros - - e2undo - - Reexecuta o registro de desfazer undo_log para um sistema de arquivos - ext2/ext3/ext4 encontrado em um dispositivo [Isso pode ser usado para - desfazer uma operação falha por um aplicativo do e2fsprogs] - - e4crypt - - Utilitário de encriptação de sistema de arquivos ext4 - - e4defrag - - Desfragmentador online para sistemas de arquivo ext4 - - filefrag - - Relatórios sobre quão fragmentado um arquivo específico pode estar - - fsck.ext2 - - Por padrão verifica sistemas de arquivo ext2 e é um hard link para - e2fsck - - fsck.ext3 - - Por padrão verifica sistemas de arquivo ext3 e é um hard link para - e2fsck - - fsck.ext4 - - Por padrão verifica sistemas de arquivo ext4 e é um hard link para - e2fsck - - logsave - - Salva a saída de um comando em um arquivo de registro - - lsattr - - Lista os atributos de arquivos em um segundo sistema de arquivos - estendido - - mk_cmds - - Converte uma tabela de nomes de comando e mensagens de ajuda em um - arquivo fonte C adequado para uso com a biblioteca de subsistema libss - - mke2fs - - Cria um sistema de arquivos ext2 ou ext3 no dispositivo dado - - mkfs.ext2 - - Por padrão cria sistemas de arquivos ext2 e é um hard link para mke2fs - - mkfs.ext3 - - Por padrão cria sistemas de arquivos ext3 e é um hard link para mke2fs - - mkfs.ext4 - - Por padrão cria sistemas de arquivos ext4 e é um hard link para mke2fs - - mklost+found - - Usado para criar um diretório lost+found em um sistema de arquivos - ext2; ele pré-aloca blocos de disco para esse diretório para facilitar - a tarefa do e2fsck - - resize2fs - - Pode ser usado para alargar ou estreitar um sistema de arquivos ext2 - - tune2fs - - Ajusta parâmetros ajustáveis de sistema de arquivos em um sistema de - arquivos ext2 - - libcom_err - - A rotina comum de exibição de erro - - libe2p - - Usado por dumpe2fs, chattr e lsattr - - libext2fs - - Contém rotinas para habilitar aplicativos de nível de usuária(o) para - lidar com um sistema de arquivos ext2 - - libss - - Usado por debugfs - -8.74. Sysklogd-1.5.1 - - O pacote sysklogd contém aplicativos para registrar mensagens de - sistema, tais como aquelas dadas pelo kernel quando coisas incomuns - acontecem. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 0,6 MB - -8.74.1. Instalação do Sysklogd - - Primeiro, conserte problemas que causam uma falha de segmentação sob - certas condições em klogd e conserte uma construção obsoleta de - aplicativo: -sed -i '/Error loading kernel symbols/{n;n;d}' ksym_mod.c -sed -i 's/union wait/int/' syslogd.c - - Compile o pacote: -make - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -make BINDIR=/sbin install - -8.74.2. Configurando Sysklogd - - Crie um novo arquivo /etc/syslog.conf executando o seguinte: -cat > /etc/syslog.conf << "EOF" -# Begin /etc/syslog.conf - -auth,authpriv.* -/var/log/auth.log -*.*;auth,authpriv.none -/var/log/sys.log -daemon.* -/var/log/daemon.log -kern.* -/var/log/kern.log -mail.* -/var/log/mail.log -user.* -/var/log/user.log -*.emerg * - -# End /etc/syslog.conf -EOF - -8.74.3. Conteúdo do Sysklogd - - Aplicativos instalados: klogd e syslogd - -Descrições Curtas - - klogd - - Um daemon de sistema para interceptar e registrar mensagens do kernel - - syslogd - - Registra as mensagens que aplicativos do sistema oferecem para registro - [Cada mensagem registrada contém pelo menos uma marca de data e um nome - de dispositivo, e normalmente o nome do aplicativo também, mas isso - depende do quão confiável o daemon de registro é dito ser] - -8.75. Sysvinit-3.01 - - O pacote Sysvinit contém aplicativos para controlar a inicialização, - execução e desligamento do sistema. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 1,4 MB - -8.75.1. Instalação do Sysvinit - - Primeiro, aplique uma correção que remove vários aplicativos instalados - por outros pacotes, esclarece uma mensagem, e conserta um aviso de - compilador: -patch -Np1 -i ../sysvinit-3.01-consolidated-1.patch - - Compile o pacote: -make - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -make install - -8.75.2. Conteúdo do Sysvinit - - Aplicativos instalados: bootlogd, fstab-decode, halt, init, killall5, - poweroff (link para halt), reboot (link para halt), runlevel, shutdown - e telinit (link para init) - -Descrições Curtas - - bootlogd - - Registra mensagens de inicialização para um arquivo de registro - - fstab-decode - - Executa um comando com argumentos codificados para fstab - - halt - - Normalmente invoca shutdown com a opção -h, exceto quando já em nível - de execução 0, então ele diz ao kernel para parar o sistema; ele anota - no arquivo /var/log/wtmp que o sistema está sendo desligado - - init - - O primeiro processo a ser iniciado quando o kernel inicializou o - hardware e que assume o processo de inicialização e inicia todos os - processos especificados no arquivo de configuração dele - - killall5 - - Envia um sinal para todos os processos, exceto os processos na própria - sessão dele, de modo que ele não matará o shell pai dele - - poweroff - - Diz ao kernel para parar o sistema e desligar o computador (veja halt) - - reboot - - Diz ao kernel para reinicializar o sistema (veja halt) - - runlevel - - Relata o nível de execução anterior e o atual, conforme anotado no - último registro de nível de execução em /run/utmp - - shutdown - - Desliga o sistema de maneira segura, sinalizando todos os processos e - notificando todas(os) as(os) usuárias(os) logadas(os) - - telinit - - Diz ao init para qual nível de execução mudar - -8.76. Acerca dos Símbolos de Depuração - - A maioria dos aplicativos e bibliotecas é, por padrão, compilada com - símbolos de depuração incluídos (com opção -g do gcc). Isso significa - que quando depurar um aplicativo ou biblioteca que foi compilado com - informação de depuração, o depurador pode fornecer não apenas endereços - de memória, mas também os nomes das rotinas e variáveis. - - Entretanto, a inclusão desses símbolos de depuração alarga um - aplicativo ou biblioteca significativamente. O seguinte é um exemplo da - quantidade de espaço que esses símbolos ocupam: - * Um binário bash com símbolos de depuração: 1200 KB - * Um binário bash sem símbolos de depuração: 480 KB - * Arquivos do Glibc e GCC (/lib e /usr/lib) com símbolos de - depuração: 87 MB - * Arquivos do Glibc e GCC sem símbolos de depuração: 16 MB - - Tamanhos talvez variem dependendo de qual compilador e biblioteca C - foram usados, mas quando comparar aplicativos com e sem símbolos de - depuração, a diferença geralmente será um fator entre dois e cinco. - - Como a maioria das(os) usuárias(os) nunca usará um depurador no - aplicativo de sistema delas(es), um monte de espaço de disco pode ser - recuperado removendo esses símbolos. A próxima seção mostra como - remover todos os símbolos de depuração dos aplicativos e bibliotecas. - -8.77. Despojando - - Esta seção é opcional. Se a(o) pretensa(o) usuária(o) não for uma(m) - programadora(r) e não planeja fazer qualquer depuração nos aplicativos - do sistema, então o tamanho do sistema pode ser reduzido em cerca de 2 - GB removendo os símbolos de depuração de binários e bibliotecas. Isso - não causa nenhum inconveniente além de não mais poder depurar os - aplicativos completamente. - - A maioria das pessoas que usam os comandos mencionados abaixo não - experimenta quaisquer dificuldades. Entretanto, é fácil cometer um erro - de digitação e tornar o novo sistema inutilizável, de forma que, antes - de executar os comandos strip, é uma boa ideia produzir uma cópia de - segurança do sistema LFS no estado atual dele. - - Os símbolos de depuração para bibliotecas selecionadas estão colocados - em arquivos separados. Essa informação de depuração é necessária se - executar testes de regressão que usam [617]valgrind ou [618]gdb - posteriormente em BLFS. - - Observe que strip sobrescreverá o arquivo de binário ou biblioteca que - ele está processando. Isso pode quebrar os processos usando código ou - dados oriundos do arquivo. Se o próprio processo executando o strip for - afetado, então o binário ou biblioteca sendo despojado pode ser - destruído e pode tornar o sistema completamente inutilizável. Para - evitar isso, nós copiaremos algumas bibliotecas e binários para /tmp, - despojaremos elas lá, e instalaremos elas de volta com o comando - install. Leia a entrada relacionada em [619]Seção 8.2.1, “Problemas de - Atualização†para a justificativa para usar o comando install aqui. - -Nota - - O nome do carregador de ELF é ld-linux-x86-64.so.2 em sistemas de 64 - bits e ld-linux.so.2 em sistemas de 32 bits. A construção abaixo - seleciona o nome correto para a arquitetura atual. -save_usrlib="$(cd /usr/lib; ls ld-linux*) - libc.so.6 - libthread_db.so.1 - libquadmath.so.0.0.0 - libstdc++.so.6.0.29 - libitm.so.1.0.0 - libatomic.so.1.2.0" - -cd /usr/lib - -for LIB in $save_usrlib; do - objcopy --only-keep-debug $LIB $LIB.dbg - cp $LIB /tmp/$LIB - strip --strip-unneeded /tmp/$LIB - objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB - install -vm755 /tmp/$LIB /usr/lib - rm /tmp/$LIB -done - -online_usrbin="bash find strip" -online_usrlib="libbfd-2.38.so - libhistory.so.8.1 - libncursesw.so.6.3 - libm.so.6 - libreadline.so.8.1 - libz.so.1.2.11 - $(cd /usr/lib; find libnss*.so* -type f)" - -for BIN in $online_usrbin; do - cp /usr/bin/$BIN /tmp/$BIN - strip --strip-unneeded /tmp/$BIN - install -vm755 /tmp/$BIN /usr/bin - rm /tmp/$BIN -done - -for LIB in $online_usrlib; do - cp /usr/lib/$LIB /tmp/$LIB - strip --strip-unneeded /tmp/$LIB - install -vm755 /tmp/$LIB /usr/lib - rm /tmp/$LIB -done - -for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \ - $(find /usr/lib -type f -name \*.a) \ - $(find /usr/{bin,sbin,libexec} -type f); do - case "$online_usrbin $online_usrlib $save_usrlib" in - *$(basename $i)* ) - ;; - * ) strip --strip-unneeded $i - ;; - esac -done - -unset BIN LIB save_usrlib online_usrbin online_usrlib - - Um número grande de arquivos serão relatados como tendo o formato de - arquivo deles não reconhecido. Esses avisos podem ser seguramente - ignorados. Eles indicam que aqueles arquivos são scripts em vez de - binários. - -8.78. Limpando - - Finalmente, limpe alguns arquivos extra deixados pela execução de - testes: -rm -rf /tmp/* - - Existem também muitos arquivos instalados nos diretórios /usr/lib e - /usr/libexec com uma extensão de nome de arquivo de .la. Esses são - arquivos "libtool archive". Como já dito, eles somente são úteis quando - vincular com bibliotecas estáticas. Eles são desnecessários, e - potencialmente danosos, quando se usar bibliotecas compartilhadas - dinâmicas, especialmente quando se usar também sistemas de construção - não autotools. Para remover eles, execute: -find /usr/lib /usr/libexec -name \*.la -delete - - Para mais informação acerca de arquivos libtool archive, veja a - [620]seção de BLFS "About Libtool Archive (.la) files". - - O compilador construído em [621]Capítulo 6 e [622]Capítulo 7 ainda está - instalado parcialmente e não é mais necessário. Remova ele com: -find /usr -depth -name $(uname -m)-lfs-linux-gnu\* | xargs rm -rf - - Por fim, remova a conta de usuária(o) 'tester' temporária criada no - início do capítulo anterior. -userdel -r tester - -Capítulo 9. Configuração do Sistema - -9.1. Introdução - - Inicializar um sistema Linux envolve muitas tarefas. O processo precisa - montar ambos sistemas de arquivos virtual e real, inicializar - dispositivos, ativar a troca, verificar sistemas de arquivos para - integridade, montar quaisquer partições ou arquivos de troca, - configurar o relógio do sistema, ativar rede, iniciar quaisquer daemons - exigidos pelo sistema, e realizar quaisquer outras tarefas - personalizadas necessitadas pela(o) usuária(o). Esse processo precisa - estar organizado para garantir que as tarefas sejam realizadas na ordem - correta, porém, ao mesmo tempo, ser executado o mais rápido possível. - -9.1.1. System V - - System V é o processo de inicialização clássico que tem sido usado em - sistemas Unix e semelhantes a Unix, tais como Linux, desde cerca de - 1983. Ele consiste de um aplicativo pequeno, init, que configura - aplicativos básicos, tais como login (via getty), e executa um script. - Esse script, usualmente chamado de rc, controla a execução de um - conjunto de scripts adicionais que realizam as tarefas exigidas para - inicializar o sistema. - - O aplicativo init é controlado pelo arquivo /etc/inittab e está - organizado em níveis de execução que podem ser executados pela(o) - usuária(o): - - 0 — parar - 1 — Modo de usuária(o) única(o) - 2 — Multiusuária(o), sem rede - 3 — Modo de multiusuária(o) completo - 4 — Definível pela(o) usuária(o) - 5 — Modo de multiusuária(o) completo com gerenciador de tela - 6 — reinicializar - - O nível de execução padrão usual é 3 ou 5. - -Vantagens - - * Sistema estabelecido, bem compreendido. - * Fácil de personalizar. - -Desvantagens - - * Talvez seja mais lento inicializar. Um sistema LFS básico de - velocidade média toma de 8 a 12 segundos, onde o tempo de - inicialização é medido desde a primeira mensagem do kernel até o - prompt de login. A conectividade de rede tipicamente é estabelecida - cerca de 2 segundos após o prompt de login. - * Processamento em série de tarefas de inicialização. Isso está - relacionado ao ponto anterior. Um atraso em qualquer processo, tal - como uma verificação de sistema de arquivos, atrasará o processo de - inicialização inteiro. - * Não suporta diretamente características avançadas, como grupos de - controle (cgroups), e agendamento de compartilhamento justo por - usuária(o). - * Adicionar scripts exige decisões de sequenciamento estático, - manuais. - -9.2. LFS-Bootscripts-20210608 - - O pacote LFS-Bootscripts contém um conjunto de scripts para - iniciar/parar o sistema LFS na inicialização/desligamento. Os arquivos - de configuração e procedimentos necessários para personalizar o - processo de inicialização estão descritos nas seções seguintes. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 244 KB - -9.2.1. Instalação do LFS-Bootscripts - - Instale o pacote: -make install - -9.2.2. Conteúdo do LFS-Bootscripts - - Scripts instalados: checkfs, cleanfs, console, functions, halt, ifdown, - ifup, localnet, modules, mountfs, mountvirtfs, network, rc, reboot, - sendsignals, setclock, ipv4-static, swap, sysctl, sysklogd, template, - udev e udev_retry - Diretórios instalados: /etc/rc.d, /etc/init.d (link simbólico), - /etc/sysconfig, /lib/services e /lib/lsb (link simbólico) - -Descrições Curtas - - checkfs - - Verifica a integridade dos sistemas de arquivos antes que eles sejam - montados (com a exceção dos sistemas de arquivos baseados em diário e - rede) - - cleanfs - - Remove os arquivos que não deveriam ser preservados entre as - reinicializações, tais como aqueles em /run/ e /var/lock/; ele recria - /run/utmp e remove os arquivos possivelmente presentes /etc/nologin, - /fastboot e /forcefsck - - console - - Carrega a tabela de mapa de tecla correta para o esquema de teclado - desejado; ele também configura a fonte de tela - - functions - - Contém funções comuns, tais como de verificação de erro e situação, que - são usadas por diversos scripts de inicialização - - halt - - Para o sistema - - ifdown - - Para um dispositivo de rede - - ifup - - Inicializa um dispositivo de rede - - localnet - - Configura o nome de dispositivo do sistema e dispositivo de loopback - local - - modules - - Carrega módulos do kernel listados em /etc/sysconfig/modules, usando - argumentos que também são dados lá - - mountfs - - Monta todos os sistemas de arquivos, exceto os que estão marcados como - noauto ou são baseados em rede - - mountvirtfs - - Monta os sistemas de arquivos do kernel virtuais, tais como o proc - - network - - Configura as interfaces de rede, tais como placas de rede, e configura - o gateway padrão (onde aplicável) - - rc - - O script de controle de nível de execução mestre; ele é responsável por - executar todos os outros scripts de inicialização, um por um, em uma - sequência determinada pelo nome dos links simbólicos sendo processados - - reboot - - Reinicializa o sistema - - sendsignals - - Garante que cada processo seja terminado antes que o sistema - reinicialize ou pare - - setclock - - Reconfigura o relógio do kernel para hora local quando o relógio do - hardware não está configurado para hora UTC - - ipv4-static - - Fornece a funcionalidade necessária para atribuir um endereço Internet - Protocol (IP) estático para uma interface de rede - - swap - - Habilita e desabilita arquivos e partições de troca - - sysctl - - Carrega valores de configuração de sistema a partir do - /etc/sysctl.conf, se esse arquivo existir, para dentro do kernel em - execução - - sysklogd - - Inicia e para os daemons de registro do sistema e kernel - - template - - Um modelo para criar scripts de inicialização personalizados para - outros daemons - - udev - - Prepara o diretório /dev e inicia o Udev - - udev_retry - - Tenta novamente uevents do udev que falharam, e copia arquivos de - regras gerados de /run/udev para /etc/udev/rules.d se exigido - -9.3. Visão Geral do Manuseio de Dispositivos e Módulos - - No [623]Capítulo 8, nós instalamos o pacote udev quando eudev foi - construído. Antes de entrarmos em detalhes referentes a como isso - funciona, um histórico breve dos métodos anteriores de manuseio de - dispositivos é oportuno. - - Sistemas Linux em geral tradicionalmente usavam um método de criação de - dispositivo estático, pelo qual muitos nós de dispositivos eram criados - sob /dev (as vezes literalmente milhares de nós), independente de se os - dispositivos de hardware correspondentes atualmente existissem. Isso - tipicamente era feito via um script MAKEDEV, o qual contém um número de - chamadas ao aplicativo mknod com os números de dispositivo principal e - secundário relevantes para cada dispositivo possível que pudesse - existir no mundo. - - Usando o método udev, somente aqueles dispositivos os quais são - detectados pelo kernel obtém nós de dispositivo criados para eles. Como - esses nós de dispositivo serão criados a cada vez que o sistema - inicializar, eles serão armazenados em um sistema de arquivos devtmpfs - (um sistema de arquivos virtual que reside inteiramente na memória do - sistema). Nós de dispositivo não exigem muito espaço, de forma que a - memória que é usada é insignificante. - -9.3.1. Histórico - - Em fevereiro 2000, um novo sistema de arquivos chamado devfs foi - mesclado no kernel 2.3.46 e foi feito disponível durante as séries 2.4 - de kernels estáveis. Embora ele estivesse presente no próprio fonte do - kernel, esse método de criar dispositivos dinamicamente nunca recebeu - suporte decisivo das(os) desenvolvedoras(es) do kernel centrais. - - O problema principal com a abordagem adotada pelo devfs era a maneira - como ele lidava com detecção, criação e nomenclatura de dispositivo. O - último problema, esse da nomenclatura de nó de dispositivo, era talvez - o mais crítico. É aceito geralmente que, se nomes de dispositivo são - passíveis de serem configuráveis, então a política de nomenclatura de - dispositivo esteja a cargo de uma(m) administradora(r) do sistema, não - imposta sobre elas(es) por (quais)qualquer desenvolvedoras(r(es)) - específicas(o(s)). O sistema de arquivos devfs também sofria com - algumas condições que eram inerentes ao projeto dele e não poderiam ser - consertadas sem uma revisão substancial do kernel. Ele ficou marcado - como obsoleto por um longo período – e foi finalmente removido do - kernel em junho de 2006. - - Com o desenvolvimento da árvore do kernel 2.5 instável, liberada - posteriormente como as séries 2.6 dos kernels estáveis, um novo sistema - de arquivos virtual chamado sysfs veio a existir. O trabalho do sysfs é - o de exportar uma visão da configuração de hardware do sistema para - processos de espaço de usuária(o). Com essa representação visível ao - espaço de usuária(o), a possibilidade de desenvolvimento de um - substituto de espaço de usuária(o) para o devfs tornou-se muito mais - realista. - -9.3.2. Implementação do Udev - -9.3.2.1. Sysfs - - O sistema de arquivos sysfs foi mencionado brevemente acima. Alguém - talvez questione como o sysfs sabe sobre os dispositivos presentes em - um sistema e quais números de dispositivo deveriam ser usados para - eles. Controladores que tenham sido compilados diretamente no kernel - registram os objetos deles com um sysfs (devtmpfs internamente) assim - que eles são detectados pelo kernel. Para controladores compilados como - módulos, esse registro acontecerá quando o módulo for carregado. Assim - que o sistema de arquivos sysfs for montado (em /sys), os dados os - quais os controladores registram com sysfs ficam disponíveis para os - processos de espaço de usuária(o) e para udevd para processamento - (incluindo modificações para nós de dispositivo). - -9.3.2.2. Criação de Nó de Dispositivo - - Arquivos de dispositivo são criados pelo kernel por meio do sistema de - arquivos devtmpfs. Qualquer controlador que deseje registrar um nó de - dispositivo usará o devtmpfs (via o núcleo do controlador) para - fazê-lo. Quando uma instância do devtmpfs é montada em /dev, o nó de - dispositivo inicialmente será criado com um nome, permissões e - proprietária(o) fixos. - - Pouco tempo depois, o kernel enviará um uevent para udevd. Baseado nas - regras especificadas nos arquivos dentro dos diretórios - /etc/udev/rules.d, /usr/lib/udev/rules.d e /run/udev/rules.d, udevd - criará links simbólicos adicionais para o nó de dispositivo, ou mudará - as permissões, proprietária(o), ou grupo deles, ou modificará a entrada - de banco de dados do udevd interna (nome) para aquele objeto. - - As regras nesses três diretórios são numeradas e todos os três - diretórios são mesclados. Se udevd não puder encontrar uma regra para o - dispositivo que ele está criando, então ele deixará as permissões e - propriedade no que devtmpfs usou inicialmente. - -9.3.2.3. Carregamento de Módulo - - Controladores de dispositivo compilados como módulos talvez tenham - apelidos construídos dentro deles. Apelidos são visíveis na saída do - aplicativo modinfo e geralmente estão relacionados aos identificadores - específicos ao barramento dos dispositivos suportados por um módulo. - Por exemplo, o controlador snd-fm801 suporta dispositivos PCI com ID de - fornecedor 0x1319 e ID de dispositivo 0x0801, e tem um apelido de - “pci:v00001319d00000801sv*sd*bc04sc01i*â€. Para a maioria dos - dispositivos, o controlador de barramento exporta o apelido do - controlador que lidaria com o dispositivo via sysfs. Por exemplo, o - arquivo /sys/bus/pci/devices/0000:00:0d.0/modalias pode conter a - sequência de caracteres - “pci:v00001319d00000801sv00001319sd00001319bc04sc01i00â€. As regras - padrão fornecidas com udev causarão udevd chamar /sbin/modprobe com o - conteúdo da variável de ambiente do uevent MODALIAS (o qual deveria ser - o mesmo que o conteúdo do arquivo modalias em sysfs), dessa forma - carregando todos os módulos cujos apelidos correspondem a essa - sequência de caracteres depois da expansão de carácter curinga. - - Nesse exemplo, isso significa que, em adição a snd-fm801, o obsoleto (e - indesejado) controlador forte será carregado se ele estiver disponível. - Veja abaixo maneiras pelas quais o carregamento de controladores - indesejados pode ser evitado. - - O próprio kernel também é capaz de carregar módulos para protocolos de - rede, sistemas de arquivos e suporte NLS sob demanda. - -9.3.2.4. Lidando com Dispositivos Plugáveis a Quente/Dinâmicos - - Quando você conecta um dispositivo, como um tocador de MP3 Universal - Serial Bus (USB), o kernel reconhece que o dispositivo agora está - conectado e gera um uevent. Esse uevent é então tratado pelo udevd como - descrito acima. - -9.3.3. Problemas ao Carregar Módulos e Criar Dispositivos - - Existem uns poucos possíveis problemas quando se trata de criar - automaticamente nós de dispositivos. - -9.3.3.1. Um módulo do kernel não é carregado automaticamente - - O Udev só carregará um módulo se ele tiver um apelido específico a - barramento e o controlador de barramento exportar adequadamente os - apelidos necessários para sysfs. Em outros casos, deve-se organizar o - carregamento de módulo por outros meios. Com o Linux-5.16.9, udev é - conhecido por carregar controladores escritos adequadamente para - dispositivos INPUT, IDE, PCI, USB, SCSI, SERIO e FireWire. - - Para determinar se o controlador de dispositivo que você exige tem o - suporte necessário para udev, execute modinfo com o nome de módulo como - o argumento. Agora tente localizar o diretório de dispositivo sob - /sys/bus e verifique se existe um arquivo modalias lá. - - Se o arquivo modalias existir em sysfs, então o controlador suporta o - dispositivo e pode falar com ele diretamente, mas não tem o apelido, - isso é um defeito no controlador. Carregue o controlador sem a ajuda do - udev e espere que o problema seja consertado posteriormente. - - Se não existir arquivo modalias no diretório relevante sob /sys/bus, - então isso significa que as(os) desenvolvedoras(es) do kernel ainda não - adicionaram suporte modalias para esse tipo de barramento. Com - Linux-5.16.9, esse é o caso com barramentos ISA. Espere que esse - problema seja consertado em versões do kernel posteriores. - - Udev não é planejado para carregar controladores “encapsuladoresâ€, tais - como snd-pcm-oss, e controladores não hardware, tais como loop, de - maneira alguma. - -9.3.3.2. Um módulo do kernel não é carregado automaticamente, e udev não é -planejado para carregar ele - - Se o módulo “encapsulador†apenas aprimora a funcionalidade fornecida - por algum outro módulo (por exemplo, snd-pcm-oss aprimora a - funcionalidade de snd-pcm tornando as placas de som disponíveis para - aplicações OSS), então configure modprobe para carregar o encapsulador - após o udev carregar o módulo encapsulado. Para fazer isso, adicione - uma linha “softdep†ao arquivo /etc/modprobe.d/.conf - correspondente. Por exemplo: -softdep snd-pcm post: snd-pcm-oss - - Observe que o comando “softdep†também permite dependências pre:, ou - uma mistura de ambas as dependências pre: e post:. Veja-se a página de - manual modprobe.d(5) para mais informação sobre a sintaxe e capacidades - “softdepâ€. - - Se o módulo em questão não é um encapsulador e é útil por ele próprio, - então configure o script de inicialização modules para carregar esse - módulo na inicialização do sistema. Para fazer isso, adicione o nome de - módulo ao arquivo /etc/sysconfig/modules em uma linha separada. Isso - funciona para módulos encapsuladores também, mas é abaixo do ideal - naquele caso. - -9.3.3.3. Udev carrega algum módulo indesejado - - Ou não construa o módulo, ou coloque-o na lista negra em um arquivo - /etc/modprobe.d/blacklist.conf como feito com o módulo forte no exemplo - abaixo: -blacklist forte - - Módulos em listas negras ainda podem ser carregados manualmente com o - comando explícito modprobe. - -9.3.3.4. Udev cria um dispositivo incorretamente, ou faz um link simbólico -errado - - Isso geralmente acontece se uma regra inesperadamente corresponder com - um dispositivo. Por exemplo, uma regra mal escrita pode corresponder - com ambos um disco SCSI (como desejado) e o dispositivo genérico SCSI - correspondente (incorretamente) pelo fornecedor. Encontre a regra - infratora e torne-a mais específica, com a ajuda do comando udevadm - info. - -9.3.3.5. Regra do Udev funciona de forma não confiável - - Isso talvez seja outra manifestação do problema anterior. Se não, e sua - regra usar atributos do sysfs, então isso talvez seja um problema de - temporização do kernel, a ser consertado em kernels posteriores. Por - hora, você pode contornar ele criando uma regra que aguarda o atributo - do sysfs usado e adiciona ele ao arquivo - /etc/udev/rules.d/10-wait_for_sysfs.rules (crie esse arquivo se ele não - existir). Por favor notifique a lista LFS Development se você o fizer e - isso ajudar. - -9.3.3.6. Udev não cria um dispositivo - - O texto adicional assume que o driver está construído estaticamente - dentro do kernel ou já carregado como um módulo, e que você já - verificou que o udev não cria um dispositivo mal nomeado. - - Udev não tem informação necessária para criar um nó de dispositivo se - um controlador de kernel não exportar os dados dele para o sysfs. Isso - é mais comum com controladores terceirizados oriundos de fora da árvore - do kernel. Crie um nó de dispositivo estático em /usr/lib/udev/devices - com os números principal/secundário apropriados (veja o arquivo - devices.txt dentro da documentação do kernel ou a documentação - fornecida pela(o) fornecedora(r) de controlador terceirizado). O nó de - dispositivo estático será copiado para /dev por udev. - -9.3.3.7. Ordem de nomenclatura de dispositivo muda aleatoriamente após -reinicializar - - Isso é devido ao fato de o udev, pelo projeto, lidar com uevents e - carregar módulos em paralelo, e assim em uma ordem imprevisível. Isso - nunca será “consertadoâ€. Você não deveria confiar que os nomes de - dispositivos do kernel sejam estáveis. Em vez disso, crie suas próprias - regras que fazem links simbólicos com nomes estáveis baseados em alguns - atributos estáveis do dispositivo, tais como um número de série ou a - saída dos vários utilitários *_id instalados pelo udev. Veja-se a - [624]Seção 9.4, “Gerenciando Dispositivos†e [625]Seção 9.5, - “Configuração de Rede Geral†para exemplos. - -9.3.4. Leitura Útil - - Documentação útil adicional está disponível nos seguintes sítios: - * A Userspace Implementation of devfs - [626]http://www.kroah.com/linux/talks/ols_2003_udev_paper/Reprint-K - roah-Hartman-OLS2003.pdf - * The sysfs Filesystem - [627]http://www.kernel.org/pub/linux/kernel/people/mochel/doc/paper - s/ols-2005/mochel.pdf - -9.4. Gerenciando Dispositivos - -9.4.1. Dispositivos de Rede - - Udev, por padrão, nomeia dispositivos de rede de acordo com dados de - Firmware/BIOS ou características físicas como barramento, slot ou - endereço MAC. O propósito dessa convenção de nomenclatura é o de - garantir que dispositivos de rede sejam nomeados consistentemente e não - baseados no horário que a placa de rede foi descoberta. Por exemplo, em - um computador que tem duas placas de rede feitas por Intel e Realtek, a - placa de rede fabricada pela Intel talvez se torne eth0 e a placa - Realtek se torne eth1. Em alguns casos, após uma reinicialização as - placas poderiam ser renumeradas de maneira inversa. - - No novo esquema de nomenclatura, nomes de dispositivo de rede típicos - seriam então alguma coisa como enp5s0 ou wlp3s0. Se essa convenção de - nomenclatura não for desejada, então o esquema de nomenclatura - tradicional ou um esquema personalizado pode ser implementado. - -9.4.1.1. Desabilitando Nomenclatura Persistente na Linha de Comando do Kernel - - O esquema de nomenclatura tradicional usando eth0, eth1, etc., pode ser - restaurado adicionando-se net.ifnames=0 na linha de comando do kernel. - Isso é mais apropriado para aqueles sistemas que tem apenas um - dispositivo ethernet do mesmo tipo. Laptops frequentemente tem - múltiplas conexões ethernet que são nomeadas eth0 e wlan0 e são também - candidatas para esse método. A linha de comando é passada no arquivo de - configuração do GRUB. Veja-se [628]Seção 10.4.4, “Criando o Arquivo de - Configuração do GRUBâ€. - -9.4.1.2. Criando Regras do Udev Personalizadas - - O esquema de nomenclatura pode ser personalizado criando-se regras do - udev personalizadas. Um script foi incluído que gera as regras - iniciais. Gere essas regras executando: -bash /usr/lib/udev/init-net-rules.sh - - Agora, inspecione o arquivo /etc/udev/rules.d/70-persistent-net.rules, - para descobrir qual nome foi atribuído a qual dispositivo de rede: -cat /etc/udev/rules.d/70-persistent-net.rules - -Nota - - Em alguns casos tais como quando endereços MAC foram atribuídos para - uma placa de rede manualmente ou em um ambiente virtual como Qemu ou - Xen, o arquivo de regras de rede talvez não tenha sido gerado, pois - endereços não são atribuídos consistentemente. Nesses casos, esse - método não pode ser usado. - - O arquivo começa com um bloco de comentário seguido por duas linhas - para NIC. A primeira linha para cada NIC é uma descrição comentada - mostrando os IDs de hardware delas (por exemplo, fornecedor de PCI - delas e IDs de dispositivo, se ela for uma placa PCI), juntamente com o - controlador delas entre parênteses, se o controlador puder ser - encontrado. Nem o ID de hardware nem o controlador é usado para - determinar quais nomes dar para uma interface; essa informação é apenas - para referência. A segunda linha é a regra do udev que corresponde a - essa NIC e atualmente atribui a ela um nome. - - Todas as regras do udev são compostas de muitas chaves, separadas por - vírgulas e espaços em branco opcionais. Essas chaves da regra e uma - explanação de cada uma delas estão a seguir: - * SUBSYSTEM=="net" - Isso diz a udev para ignorar dispositivos que - não sejam placas de rede. - * ACTION=="add" - Isso diz a udev para ignorar essa regra para um - uevent que não seja um adicionar (uevents "remover" e "mudar" - também acontecem, porém não precisam renomear interfaces de rede). - * DRIVERS=="?*" - Isso existe de forma que udev ignorará - sub-interfaces VLAN ou bridge (pois essas sub-interfaces não tem - controladores). Essas sub-interfaces são puladas, pois o nome que - seria atribuído conflitaria com os dispositivos pais delas. - * ATTR{address} - O valor dessa chave é o endereço MAC da NIC. - * ATTR{type}=="1" - Isso garante que a regra corresponde apenas à - interface primária no caso de certos controladores sem fios os - quais criam múltiplas interfaces virtuais. As interfaces - secundárias são puladas pela mesma razão que sub-interfaces VLAN e - bridge são puladas: existiria um conflito de nome do contrário. - * NAME - O valor dessa chave é o nome que udev atribuirá para essa - interface. - - O valor de NAME é a parte importante. Assegure-se de que você sabe qual - nome foi atribuído para cada uma das suas placas de rede antes de - prosseguir, e tenha certeza de usar esse valor NAME quando criar seus - arquivos de configuração abaixo. - -9.4.2. Links Simbólicos de CD-ROM - - Alguns aplicativos que você talvez queira instalar posteriormente (por - exemplo, vários tocadores de mídia) esperam que os links simbólicos - /dev/cdrom e /dev/dvd existam, e apontem para um dispositivo de CD-ROM - ou DVD-ROM. Também, talvez seja conveniente colocar referências a esses - links simbólicos em /etc/fstab. Udev vem com um script que gerará - arquivos de regras para criar esses links simbólicos para você, - dependendo das capacidades de cada dispositivo, mas você precisa - decidir qual de dois modos de operação você deseja ter para o script - usar. - - Primeiro, o script pode operar em modo “por-caminho†(usado por padrão - para dispositivos USB e FireWire), onde as regras que ele cria dependem - do caminho físico para o dispositivo de CD ou DVD. Segundo, ele pode - operar em modo “por-id†(padrão para dispositivos IDE e SCSI), onde as - regras que ele cria dependem das sequências de caracteres de - identificação armazenadas no próprio dispositivo de CD ou DVD. O - caminho é determinado pelo script path_id do udev, e as sequências de - caracteres de identificação são lidas a partir do hardware pelos - aplicativos ata_id ou scsi_id dele, dependendo de qual tipo de - dispositivo você tenha. - - Existem vantagens para cada abordagem; a abordagem correta a usar - dependerá de que tipos de mudanças de dispositivo talvez aconteçam. Se - você espera o caminho físico para o dispositivo (isto é, as portas e - (ou) slots aos quais ele se conecta) mudar, por exemplo porque você - planeja mover a unidade para uma porta IDE diferente ou um conector USB - diferente, então você deveria usar o modo “por-idâ€. Por outro lado, se - você espera que a identificação do dispositivo mude, por exemplo porque - ele talvez morra, e você o substituiria por um dispositivo diferente - com as mesmas capacidades e que estaria plugado nos mesmos conectores, - então você deveria usar o modo “por-caminhoâ€. - - Se ambos os tipos de mudanças são possíveis com a sua unidade, então - escolha um modo baseado no tipo de mudança que você espera que aconteça - com maior frequência. - -Importante - - Dispositivos externos (por exemplo, uma unidade de CD conectada via - USB) não deveria usar persistência por caminho, porque cada vez que o - dispositivo for plugado em uma nova porta externa, o caminho físico - dele mudará. Todos os dispositivos conectados externamente terão esse - problema se você escrever regras do udev para reconhecê-los pelo - caminho físico deles; o problema não está limitado a unidades de CD e - DVD. - - Se você deseja ver os valores que os scripts do udev usarão, então para - o dispositivo de CD-ROM apropriado, encontre o diretório correspondente - sob /sys (por exemplo, isso pode ser /sys/block/hdd) e execute um - comando similar ao seguinte: -udevadm test /sys/block/hdd - - Olhe para as linhas contendo a saída de vários aplicativos *_id. O modo - “por-id†usará o valor ID_SERIAL se ele existir e não estiver vazio, do - contrário ele usará uma combinação de ID_MODEL e ID_REVISION. O modo - “por-caminho†usará o valor ID_PATH. - - Se o modo padrão não for adequado para a sua situação, então a seguinte - modificação pode ser feita para o arquivo - /etc/udev/rules.d/83-cdrom-symlinks.rules, como se segue (onde mode é - um de “por-id†ou “por-caminhoâ€): -sed -e 's/"write_cd_rules"/"write_cd_rules mode"/' \ - -i /etc/udev/rules.d/83-cdrom-symlinks.rules - - Observe que não é necessário criar os arquivos de regras ou links - simbólicos neste momento, porque você montou com bind o diretório do - sistema anfitrião /dev dentro do sistema LFS, e nós assumimos que os - links simbólicos existem no anfitrião. As regras e links simbólicos - serão criados na primeira vez que você inicializar seu sistema LFS. - - Entretanto, se você tiver múltiplos dispositivos de CD-ROM, então os - links simbólicos gerados naquele momento talvez apontem para - dispositivos diferentes dos que eles apontam em seu anfitrião, porque - os dispositivos não são descobertos em uma ordem previsível. As - atribuições criadas quando você inicializar o sistema LFS pela primeira - vez serão estáveis, de forma que isso é um problema apenas se você - precisar dos links simbólicos em ambos os sistemas para apontar para o - mesmo dispositivo. Se você precisar disso, então inspecione (e - possivelmente edite) o arquivo /etc/udev/rules.d/70-persistent-cd.rules - gerado após a inicialização, para ter certeza que os links simbólicos - atribuídos correspondem ao que você precisa. - -9.4.3. Lidando com dispositivos duplicados - - Como explicado na [629]Seção 9.3, “Visão Geral do Manuseio de - Dispositivos e Módulosâ€, a ordem na qual dispositivos com a mesma - função aparecem em /dev é essencialmente aleatória. Por exemplo, se - você tem uma câmera web USB e um sintonizador de TV, as vezes - /dev/video0 se refere à câmera e /dev/video1 se refere ao sintonizador, - e as vezes após uma reinicialização a ordem muda. Para todas as classes - de hardware, exceto placas de som e placas de rede, isso é consertável - criando regras do udev para links simbólicos persistentes - personalizados. O caso das placas de rede é abordado separadamente na - [630]Seção 9.5, “Configuração de Rede Geralâ€, e configuração de placa - de som pode ser encontrado em [631]BLFS. - - Para cada um dos seus dispositivos que é provável ter esse problema - (mesmo que o problema não exista em sua distribuição Linux atual), - encontre o diretório correspondente sob /sys/class ou /sys/block. Para - dispositivos de vídeo, isso talvez seja /sys/class/video4linux/videoX. - Descubra os atributos que identificam o dispositivo de maneira única - (geralmente, IDs de fornecedor e produto e (ou) números seriais - funcionam): -udevadm info -a -p /sys/class/video4linux/video0 - - Então escreva regras que criam os links simbólicos, por exemplo: -cat > /etc/udev/rules.d/83-duplicate_devs.rules << "EOF" - -# Persistent symlinks for webcam and tuner -KERNEL=="video*", ATTRS{idProduct}=="1910", ATTRS{idVendor}=="0d81", SYMLINK+="w -ebcam" -KERNEL=="video*", ATTRS{device}=="0x036f", ATTRS{vendor}=="0x109e", SYMLINK+="t -vtuner" - -EOF - - O resultado é que os dispositivos /dev/video0 e /dev/video1 ainda se - referem aleatoriamente ao sintonizador e à câmera web (e, portanto, - nunca deveriam ser usados diretamente), mas existem links simbólicos - /dev/tvtuner e /dev/webcam que sempre apontam para o dispositivo - correto. - -9.5. Configuração de Rede Geral - -9.5.1. Criando Arquivos de Configuração de Interface de Rede - - Quais interfaces são levantadas ou derrubadas pelo script de rede - usualmente depende dos arquivos em /etc/sysconfig/. Esse diretório - deveria conter um arquivo para cada interface a ser configurada, tal - como ifconfig.xyz, onde “xyz†deveria descrever a placa de rede. O nome - de interface (por exemplo, eth0) usualmente é apropriado. Dentro desse - arquivo estão atributos para essa interface, tais como endereço(s) IP - dela, máscaras de subrede, e por aí vai. É necessário que a base do - nome do arquivo seja ifconfig. - -Nota - - Se o procedimento na seção anterior não foi usado, udev atribuirá nomes - de interface de placa de rede baseados em características físicas do - sistema, tais como enp2s1. Se você não tem certeza qual é seu nome de - interface, então você sempre pode executar ip link ou ls /sys/class/net - após você ter inicializado seu sistema. - - Os nomes de interface dependem da implementação e configuração do - daemon udev em execução no sistema. O daemon udev para LFS (instalado - na [632]Seção 8.69, “Eudev-3.2.11â€) não executará até que o sistema LFS - seja inicializado. Assim, não é confiável determinar os nomes de - interface sendo usados no sistema LFS executando aqueles comandos na - distribuição anfitriã, mesmo que você esteja no ambiente chroot. - - O seguinte comando cria um arquivo modelo para o dispositivo eth0 com - um endereço de IP estático: -cd /etc/sysconfig/ -cat > ifconfig.eth0 << "EOF" -ONBOOT=yes -IFACE=eth0 -SERVICE=ipv4-static -IP=192.168.1.2 -GATEWAY=192.168.1.1 -PREFIX=24 -BROADCAST=192.168.1.255 -EOF - - Os valores em itálico precisam ser mudados em cada arquivo para - corresponder com a configuração adequada. - - Se a variável ONBOOT estiver configurada para “yesâ€, então o script de - rede do System V levantará a Network Interface Card (NIC) durante o - processo de inicialização do sistema. Se configurado para qualquer - coisa exceto “yesâ€, então a NIC será ignorada pelo script de rede e não - será levantada automaticamente. A interface pode ser manualmente - iniciada ou parada com os comandos ifup e ifdown. - - A variável IFACE define o nome de interface, por exemplo, eth0. Ela é - exigida para todos os arquivos de configuração de dispositivo de rede. - A extensão de nome de arquivo precisa corresponder a esse valor. - - A variável SERVICE define o método usado para obter o endereço de IP. O - pacote LFS-Bootscripts tem um formato de atribuição de IP modular, e - criar arquivos adicionais no diretório /lib/services/ permite outros - métodos de atribuição de IP. Isso é comumente usado para Dynamic Host - Configuration Protocol (DHCP), o qual é abordado no livro BLFS. - - A variável GATEWAY deveria conter o endereço de IP do gateway padrão, - se um estiver presente. Se não, então comente a variável inteiramente. - - A variável PREFIX contém o número de bits usados na subrede. Cada - octeto em um endereço de IP é 8 bits. Se a máscara de rede da subrede - for 255.255.255.0, então ela está usando os primeiros três octetos (24 - bits) para especificar o número de rede. Se a máscara de rede for - 255.255.255.240, então ela estaria usando os primeiros 28 bits. - Prefixos mais longos que 24 bits são comumente usados por Internet - Service Providers (ISPs) DSL e baseados em cabos. Nesse exemplo - (PREFIX=24), a máscara de rede é 255.255.255.0. Ajuste a variável - PREFIX de acordo com sua subrede específica. Se omitida, então o PREFIX - padrão é 24. - - Para mais informação veja-se a página de manual do ifup. - -9.5.2. Criando o Arquivo /etc/resolv.conf - - O sistema precisará de alguma forma de obter resolução de nome do - Domain Name Service (DNS) para resolver nomes de domínio da Internet - para endereços de IP, e vice versa. Isso é melhor alcançado colocando o - endereço de IP do servidor de DNS, disponível a partir do ISP ou - administradora(r) de rede, no /etc/resolv.conf. Crie o arquivo - executando o seguinte: -cat > /etc/resolv.conf << "EOF" -# Begin /etc/resolv.conf - -domain -nameserver -nameserver - -# End /etc/resolv.conf -EOF - - A declaração domain pode ser omitida ou substituída com uma declaração - search. Veja-se a página de manual para resolv.conf para mais detalhes. - - Substitua com o endereço de IP do DNS - mais apropriado para a configuração. Frequentemente existirá mais que - uma entrada (exigências demandam servidores secundários para capacidade - de substituto). Se você precisa ou quer apenas um servidor de DNS, - então remova a segunda linha nameserver do arquivo. O endereço de IP - também talvez seja um roteador na rede local. - -Nota - - Os endereços DNS IPv4 do Google Public são 8.8.8.8 e 8.8.4.4 para IPv4; - e 2001:4860:4860::8888 e 2001:4860:4860::8844 para IPv6. - -9.5.3. Configurando o nome de dispositivo do sistema - - Durante o processo de inicialização, o arquivo /etc/hostname é usado - para estabelecer o nome de dispositivo do sistema. - - Crie o arquivo /etc/hostname e informe um nome de dispositivo - executando: -echo "" > /etc/hostname - - precisa ser substituído com o nome dado para o computador. Não - informe o Fully Qualified Domain Name (FQDN) aqui. Essa informação é - colocada no arquivo /etc/hosts. - -9.5.4. Personalizando o Arquivo /etc/hosts - - Decida acerca do endereço de IP, fully-qualified domain name (FQDN), e - possíveis apelidos para uso no arquivo /etc/hosts. A sintaxe é: -IP_address myhost.example.org aliases - - A menos que o computador seja para estar visível para a Internet (por - exemplo, existe um domínio registrado e um bloco válido de endereços de - IP atribuídos—a maioria das(os) usuárias(os) não tem isso), assegure-se - de que o endereço de IP está no intervalo de endereço de IP de rede - privado. Intervalos válidos são: -Private Network Address Range Normal Prefix -10.0.0.1 - 10.255.255.254 8 -172.x.0.1 - 172.x.255.254 16 -192.168.y.1 - 192.168.y.254 24 - - x pode ser qualquer número no intervalo 16-31. y pode ser qualquer - número no intervalo 0-255. - - Um endereço de IP privado válido poderia ser 192.168.1.1. Um FQDN - válido para esse IP poderia ser lfs.example.org. - - Mesmo se não se usar uma placa de rede, um FQDN válido ainda é exigido. - Isso é necessário para determinados aplicativos operarem corretamente. - - Crie o arquivo /etc/hosts executando: -cat > /etc/hosts << "EOF" -# Begin /etc/hosts - -127.0.0.1 localhost.localdomain localhost -127.0.1.1 -<192.168.1.1> [alias1] [alias2 ...] -::1 localhost ip6-localhost ip6-loopback -ff02::1 ip6-allnodes -ff02::2 ip6-allrouters - -# End /etc/hosts -EOF - - Os valores <192.168.1.1>, e precisam ser mudados para - usuárias(os) ou exigências específicas(os) (se atribuído um endereço de - IP por uma(m) administradora(r) de rede/sistema e a máquina estará - conectada a uma rede existente). O(s) nome(s) de apelido(s) - opcional(is) pode(m) ser omitido(s). - - A entrada ::1 é o homônimo IPv6 do 127.0.0.1 e representa a interface - de loopback IPv6. 127.0.1.1 é uma entrada de loopback reservada - especificamente para o FQDN. - -9.6. Uso e Configuração do Script de Inicialização do System V - -9.6.1. Como os Scripts de Inicialização do System V funcionam? - - O Linux usa um aparato de inicialização especial chamado SysVinit que é - baseado em um conceito de níveis de execução. Isso pode ser bem - diferente de um sistema para outro, de forma que não pode ser assumido - que, porque as coisas funcionam em uma distribuição do Linux em - particular, elas deveriam funcionar da mesma forma no LFS também. O LFS - tem sua própria maneira de fazer as coisas, mas ele respeita os padrões - geralmente aceitos. - - O SysVinit (o qual será referido como “init†daqui pra frente) funciona - usando um esquema de níveis de execução. Existem sete (numerados de 0 a - 6) níveis de execução (atualmente, existem mais níveis de execução, mas - eles são para casos especiais e geralmente não são usados. Veja-se - init(8) para mais detalhes), e cada um deles corresponde às ações que o - computador é suposto realizar quando ele inicia. O nível de execução - padrão é 3. Aqui estão as descrições dos diferentes níveis de execução - conforme eles estão implementados: - - 0: parar o computador - 1: Modo de usuária(o) única(o) - 2: Modo de multiusuária(o), sem rede - 3: Modo de multiusuária(o), com rede - 4: Reservado para personalização, do contrário faz o mesmo que 3 - 5: Mesmo que 4, ele é usado usualmente para login GUI (como o xdm do X - ou o kdm do KDE) - 6: reinicializar o computador - -9.6.2. Configurando o Sysvinit - - Durante a inicialização do kernel, o primeiro aplicativo que é - executado ou é especificado na linha de comando ou, por padrão, init. - Esse aplicativo lê o arquivo de inicialização /etc/inittab. Crie esse - arquivo com: -cat > /etc/inittab << "EOF" -# Begin /etc/inittab - -id:3:initdefault: - -si::sysinit:/etc/rc.d/init.d/rc S - -l0:0:wait:/etc/rc.d/init.d/rc 0 -l1:S1:wait:/etc/rc.d/init.d/rc 1 -l2:2:wait:/etc/rc.d/init.d/rc 2 -l3:3:wait:/etc/rc.d/init.d/rc 3 -l4:4:wait:/etc/rc.d/init.d/rc 4 -l5:5:wait:/etc/rc.d/init.d/rc 5 -l6:6:wait:/etc/rc.d/init.d/rc 6 - -ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now - -su:S016:once:/sbin/sulogin - -1:2345:respawn:/sbin/agetty --noclear tty1 9600 -2:2345:respawn:/sbin/agetty tty2 9600 -3:2345:respawn:/sbin/agetty tty3 9600 -4:2345:respawn:/sbin/agetty tty4 9600 -5:2345:respawn:/sbin/agetty tty5 9600 -6:2345:respawn:/sbin/agetty tty6 9600 - -# End /etc/inittab -EOF - - Uma explicação desse arquivo de inicialização está na página de manual - para inittab. Para o LFS, o comando chave que é executado é rc. O - arquivo de inicialização acima instruirá rc a executar todos os scripts - começando com um S no diretório /etc/rc.d/rcS.d seguido por todos os - scripts começando com um S no diretório /etc/rc.d/rc?.d onde o ponto de - interrogação é especificado pelo valor de initdefault. - - Como uma conveniência, o script rc lê uma biblioteca de funções em - /lib/lsb/init-functions. Essa biblioteca também lê um arquivo de - configuração opcional, /etc/sysconfig/rc.site. Quaisquer dos parâmetros - de arquivo de configuração do sistema descritos em seções subsequentes - podem ser alternativamente colocados nesse arquivo permitindo a - consolidação de todos os parâmetros do sistema nesse único arquivo. - - Como uma conveniência de depuração, o script de funções também registra - todas as saídas para /run/var/bootlog. Dado que o diretório /run é um - tmpfs, esse arquivo não é persistente ao longo de inicializações, - entretanto ele é adicionado ao arquivo mais permanente - /var/log/boot.log ao final do processo de inicialização. - -9.6.2.1. Mudando Níveis de Execução - - A mudança de níveis de execução é feita com init , onde - é o nível de execução alvo. Por exemplo, para reinicializar - o computador, uma(m) usuária(o) poderia emitir o comando init 6, o qual - é um apelido para o comando reboot. Da mesma forma, init 0 é um apelido - para o comando halt. - - Existe um número de diretórios sob /etc/rc.d que se parecem com rc?.d - (onde ? é o número do nível de execução) e rcsysinit.d, todos contendo - um número de links simbólicos. Alguns começam com um K, os outros - começam com um S, e todos eles tem dois números seguindo a letra - inicial. O K significa parar (kill) um serviço e o S significa iniciar - um serviço. Os números determinam a ordem na qual os scripts são - executados, de 00 a 99—quanto menor o número mais cedo ele se torna - executado. Quando init muda para outro nível de execução, os serviços - adequados são tanto iniciados quanto parados, dependendo do nível de - execução escolhido. - - Os scripts reais estão em /etc/rc.d/init.d. Eles fazem o trabalho - atual, e os links simbólicos todos apontam para eles. Os links K e os - links S apontam para o mesmo script em /etc/rc.d/init.d. Isso é porque - os scripts podem ser chamados com parâmetros diferentes como start, - stop, restart, reload e status. Quando um link K é encontrado, o script - apropriado é executado com o argumento stop. Quando um link S é - encontrado, o script apropriado é executado com o argumento start. - - Existe uma exceção para essa explicação. Os links que começam com um S - nos diretórios rc0.d e rc6.d não farão nada ser iniciado. Eles serão - chamados com o parâmetro stop para parar alguma coisa. A lógica por - trás disso é a de que quando uma(m) usuária(o) está para reiniciar ou - parar o sistema, nada precisa ser iniciado. O sistema precisa apenas - ser parado. - - Estas são descrições do que os argumentos fazem os scripts fazer: - - start - O serviço é iniciado. - - stop - O serviço é parado. - - restart - O serviço é parado e então iniciado novamente. - - reload - A configuração do serviço é atualizada. Isso é usado depois que - o arquivo de configuração de um serviço foi modificado, quando o - serviço não precisa ser reiniciado. - - status - Diz se o serviço está executando e com quais PIDs. - - Sinta-se livre para modificar a maneira como o processo de - inicialização funciona (afinal de contas, este é seu próprio sistema - LFS). Os arquivos dados aqui são um exemplo de como isso pode ser - feito. - -9.6.3. Scripts de Inicialização do Udev - - O script de iniciação /etc/rc.d/init.d/udev inicia o udevd, aciona - quaisquer dispositivos "coldplug" que já tenham sido criados pelo - kernel e aguarda por quaisquer regras para completar. O script também - desconfigura o manuseador do uevent do padrão do /sbin/hotplug. Isso é - feito, pois o kernel não mais precisa chamar um binário externo. Em vez - disso, o udevd escutará em um soquete de link de rede os uevents que o - kernel gera. - - O script de iniciação /etc/rc.d/init.d/udev_retry se ocupa de reacionar - eventos para subsistemas cujas regras talvez dependam de sistemas de - arquivos que não estão montados até que o script mountfs seja executado - (em particular, /usr e /var talvez causem isso). Esse script executa - após o script mountfs, de forma que aquelas regras (se reacionadas) - deveriam prosperar na segunda vez. Ele é configurado a partir do - arquivo /etc/sysconfig/udev_retry; quaisquer palavras nesse arquivo - outras que comentários são consideradas nomes de subsistema para - acionar ao tempo de re-tentativa. Para encontrar o subsistema de um - dispositivo, use udevadm info --attribute-walk , onde - é um caminho absoluto em /dev ou /sys, tais como /dev/sr0 - ou /sys/class/rtc. - - Para informação acerca de carregamento de módulo de kernel e udev, - veja-se [633]Seção 9.3.2.3, “Carregamento de Móduloâ€. - -9.6.4. Configurando o Relógio do Sistema - - O script setclock lê a hora a partir do relógio do hardware, também - conhecido como relógio do BIOS ou do Complementary Metal Oxide - Semiconductor (CMOS). Se o relógio do hardware estiver ajustado para - UTC, então esse script converterá a hora do relógio do hardware para a - hora local usando o arquivo /etc/localtime (o qual diz ao aplicativo - hwclock qual fuso horário usar). Não existe maneira de detectar se o - relógio do hardware está ou não configurado para UTC, de forma que isso - precisa ser configurado manualmente. - - O aplicativo setclock é executado via udev quando o kernel detecta a - capacidade do hardware em consequência da inicialização. Ele também - pode ser executado manualmente com o parâmetro pare para armazenar a - hora do sistema para o relógio CMOS. - - Se você não conseguir lembrar se o relógio do hardware está ou não - configurado para UTC, então descubra executando o comando hwclock - --localtime --show. Isso mostrará o que é a hora atual de acordo com o - relógio do hardware. Se essa hora corresponder à que o seu relógio diz, - então o relógio do hardware está configurado para hora local. Se a - saída originária do hwclock não for a hora local, então as chances são - as de que ele esteja configurado para hora UTC. Verifique isso - adicionando ou subtraindo a quantidade apropriada de horas para o fuso - horário à (da) hora mostrada pelo hwclock. Por exemplo, se você estiver - atualmente no fuso horário MST, o qual é conhecido também como GMT - -0700, então adicione sete horas à hora local. - - Mude o valor da variável UTC abaixo para um valor de 0 (zero) se o - relógio do hardware NÃO estiver configurado para hora UTC. - - Crie um novo arquivo /etc/sysconfig/clock executando o seguinte: -cat > /etc/sysconfig/clock << "EOF" -# Begin /etc/sysconfig/clock - -UTC=1 - -# Set this to any options you might need to give to hwclock, -# such as machine hardware clock type for Alphas. -CLOCKPARAMS= - -# End /etc/sysconfig/clock -EOF - - Uma boa dica que explica como lidar com hora no LFS está disponível em - [634]https://www.linuxfromscratch.org/hints/downloads/files/time.txt. - Ela explica problemas como fusos horários, UTC e a variável de ambiente - TZ. - -Nota - - Os parâmetros CLOCKPARAMS e UTC também talvez sejam configurados no - arquivo /etc/sysconfig/rc.site. - -9.6.5. Configurando o Console do Linux - - Esta seção discute como configurar o script de inicialização console - que configura o mapa de teclado, fonte do console e nível de registro - do kernel do console. Se caracteres não-ASCII (por exemplo, o sinal de - direitos autorais, o sinal da libra britânica e o símbolo do Euro) não - serão usados e o teclado for um dos Estados Unidos da América do Norte, - então muito desta seção pode ser saltada. Sem o arquivo de - configuração, (ou configurações equivalentes em rc.site), o script de - inicialização console não fará nada. - - O script console lê o arquivo /etc/sysconfig/console para informação de - configuração. Decida qual mapa de teclado e fonte de tela serão usados. - Vários HOWTOs específicos de idiomas também podem ajudar com isso, - veja-se [635]http://www.tldp.org/HOWTO/HOWTO-INDEX/other-lang.html. Se - ainda em dúvida, então olhe nos diretórios /usr/share/keymaps e - /usr/share/consolefonts para mapas de teclado válidos e fontes de tela. - Leiam-se as páginas de manual loadkeys(1) e setfont(8) para determinar - os argumentos corretos para esses aplicativos. - - O arquivo /etc/sysconfig/console deveria conter linhas da forma: - VARIÃVEL="valor". As seguintes variáveis são reconhecidas: - - LOGLEVEL - Essa variável especifica o nível de registro para mensagens do - kernel enviadas para o console como configurado por dmesg -n. - Níveis válidos são de "1" (sem mensagens) até "8". O nível - padrão é "7". - - KEYMAP - Essa variável especifica os argumentos para o aplicativo - loadkeys, tipicamente, o nome do mapa de teclado a carregar, por - exemplo, “itâ€. Se essa variável não estiver configurada, então o - script de inicialização não executará o aplicativo loadkeys, e o - mapa de teclado do kernel padrão será usado. Observe que uns - poucos mapas de teclado tem múltiplas versões com o mesmo nome - (cz e variantes dele em qwerty/ e qwertz/; es em olpc/ e - qwerty/; e trf em fgGIod/ e qwerty/). Nesses casos, o diretório - pai também deveria ser especificado (por exemplo, qwerty/es) - para garantir que o mapa de teclado adequado seja carregado. - - KEYMAP_CORRECTIONS - Essa (raramente usada) variável especifica os argumentos para a - segunda chamada ao aplicativo loadkeys. Isso é útil se o mapa de - teclado padrão não for completamente satisfatório e um pequeno - ajuste tenha que ser feito. Por exemplo, para incluir o símbolo - do Euro em um mapa de teclado que normalmente não o tem, - configure essa variável para “euro2â€. - - FONT - Essa variável especifica os argumentos para o aplicativo - setfont. Tipicamente, isso inclui o nome de fonte, “-mâ€, e o - nome do mapa de caracteres de aplicação a carregar. Por exemplo, - para carregar a fonte “lat1-16†juntamente com o mapa de - caracteres de aplicação “8859-1†(já que ele é apropriado nos - Estados Unidos da América do Norte), configure essa variável - para “lat1-16 -m 8859-1â€. Em modo UTF-8, o kernel usa o mapa de - caracteres de aplicação para conversão dos códigos de tecla de 8 - bits compostos no mapa de teclado para UTF-8, e assim o - argumento do parâmetro "-m" deveria ser configurado para a - codificação dos códigos de tecla compostos no mapa de teclado. - - UNICODE - Configure essa variável para “1â€, “yes†ou “true†para colocar o - console em modo UTF-8. Isso é útil em locales baseados em UTF-8 - e danoso de outra forma. - - LEGACY_CHARSET - Para muitos esquemas de teclado, não existe mapa de teclado - Unicode padrão no pacote Kbd. O script de inicialização console - converterá um mapa de teclado disponível para UTF-8 em tempo - real se essa variável estiver configurada para a codificação do - mapa de teclado não-UTF-8 disponível. - - Alguns exemplos: - * Para uma configuração não-Unicode, apenas as variáveis KEYMAP e - FONT são geralmente necessárias. Por exemplo, para uma configuração - em polonês, alguém usaria: -cat > /etc/sysconfig/console << "EOF" -# Begin /etc/sysconfig/console - -KEYMAP="pl2" -FONT="lat2a-16 -m 8859-2" - -# End /etc/sysconfig/console -EOF - * Como mencionado acima, as vezes é necessário ajustar um mapa de - teclado padrão um pouco. O exemplo seguinte adiciona o símbolo do - Euro ao mapa de teclado alemão: -cat > /etc/sysconfig/console << "EOF" -# Begin /etc/sysconfig/console - -KEYMAP="de-latin1" -KEYMAP_CORRECTIONS="euro2" -FONT="lat0-16 -m 8859-15" -UNICODE="1" - -# End /etc/sysconfig/console -EOF - * O seguinte é um exemplo habilitado para Unicode para búlgaro, onde - um mapa de teclado UTF-8 padrão existe: -cat > /etc/sysconfig/console << "EOF" -# Begin /etc/sysconfig/console - -UNICODE="1" -KEYMAP="bg_bds-utf8" -FONT="LatArCyrHeb-16" - -# End /etc/sysconfig/console -EOF - * Devido ao uso de uma fonte LatArCyrHeb-16 de 512 glifos no exemplo - anterior, cores brilhantes não mais estão disponíveis no console do - Linux, a menos que uma parte da RAM usada para armazenamento - temporário de dados que estão esperando para serem enviados para um - dispositivo e que armazene o conteúdo de uma imagem pixel por pixel - seja usada. Se alguém quiser ter cores brilhantes sem uma parte da - RAM usada para armazenamento temporário de dados que estão - esperando para serem enviados para um dispositivo e que armazene o - conteúdo de uma imagem pixel por pixel e puder viver sem caracteres - que não pertencem a seu idioma, então ainda é possível usar uma - fonte de 256 glifos específica para o idioma, conforme ilustrado - abaixo: -cat > /etc/sysconfig/console << "EOF" -# Begin /etc/sysconfig/console - -UNICODE="1" -KEYMAP="bg_bds-utf8" -FONT="cyr-sun16" - -# End /etc/sysconfig/console -EOF - * O seguinte exemplo ilustra conversão automática de mapa de teclado - de ISO-8859-15 para UTF-8 e habilitação de teclas mortas em modo - Unicode: -cat > /etc/sysconfig/console << "EOF" -# Begin /etc/sysconfig/console - -UNICODE="1" -KEYMAP="de-latin1" -KEYMAP_CORRECTIONS="euro2" -LEGACY_CHARSET="iso-8859-15" -FONT="LatArCyrHeb-16 -m 8859-15" - -# End /etc/sysconfig/console -EOF - * Alguns mapas de teclado tem teclas mortas (isto é, teclas que não - produzem um carácter por elas próprias, mas põem um acento no - carácter produzido pela próxima tecla) ou definem regras de - composição (tais como: “press Ctrl+. A E para obter Ɔno mapa de - teclado padrão). O Linux-5.16.9 interpreta teclas mortas e regras - de composição no mapa de teclado corretamente apenas quando os - caracteres fonte a serem compostos juntos não são multibyte. Essa - deficiência não afeta mapas de teclado para idiomas europeus, pois - lá acentos são adicionados a caracteres ASCII não acentuados, ou - dois caracteres ASCII são compostos juntos. Entretanto, em modo - UTF-8 isso é um problema; por exemplo, para o idioma grego, onde - alguém de vez em quando precisa colocar um acento na letra “alphaâ€. - A solução é ou evitar o uso de UTF-8, ou instalar o sistema de - janelas X que não tem essa limitação no manuseio de entradas dele. - * Para chinês, japonês, coreano e alguns outros idiomas, o console do - Linux não pode ser configurado para exibir os caracteres - necessários. Usuárias(os) que precisam de tais idiomas deveriam - instalar o Sistema de Janelas X, fontes que cobrem os intervalos de - caracteres necessários, e o método de entrada adequado (por - exemplo, SCIM, suporta uma ampla variedade de idiomas). - -Nota - - O arquivo /etc/sysconfig/console apenas controla a localização do - console de texto do Linux. Ele não tem nada a ver com configurar o - esquema de teclado adequado e fontes de terminal no Sistema de Janelas - X; com sessões do ssh; ou com um console serial. Em tais situações, as - limitações mencionadas nos últimos dois itens de lista acima não se - aplicam. - -9.6.6. Criando Arquivos na Inicialização - - De vez em quando, é desejável criar arquivos em tempo de inicialização. - Por exemplo, o diretório /tmp/.ICE-unix frequentemente é necessário. - Isso pode ser feito criando-se uma entrada no script de configuração - /etc/sysconfig/createfiles. O formato desse arquivo está embutido nos - comentários do arquivo de configuração padrão. - -9.6.7. Configurando o Script sysklogd - - O script sysklogd invoca o aplicativo syslogd como uma parte da - inicialização do System V. A opção -m 0 desliga a marca de carimbo de - tempo periódica que o syslogd escreve nos arquivos de registro a cada - 20 minutos por padrão. Se você quiser ligar essa marca de carimbo de - tempo periódica, então edite /etc/sysconfig/rc.site e defina a variável - SYSKLOGD_PARMS para o valor desejado. Por exemplo, para remover todos - os parâmetros, configure a variável para um valor nulo: -SYSKLOGD_PARMS= - - Veja-se man syslogd para mais opções. - -9.6.8. O Arquivo rc.site - - O arquivo opcional /etc/sysconfig/rc.site contém configurações que são - automaticamente configuradas para cada script de inicialização do - SystemV. Ele pode alternativamente configurar os valores especificados - nos arquivos hostname, console e clock no diretório /etc/sysconfig/. Se - as variáveis associadas estiverem presentes em ambos desses arquivos - separados e rc.site, então os valores nos arquivos específicos de - script tem precedência. - - rc.site também contém parâmetros que podem personalizar outros aspectos - do processo de inicialização. Configurar a variável IPROMPT habilitará - a execução seletiva de scripts de inicialização. Outras opções estão - descritas nos comentários de arquivo. A versão padrão do arquivo é como - se segue: -# rc.site -# Optional parameters for boot scripts. - -# Distro Information -# These values, if specified here, override the defaults -#DISTRO="Linux From Scratch" # The distro name -#DISTRO_CONTACT="lfs-dev@linuxfromscratch.org" # Bug report address -#DISTRO_MINI="LFS" # Short name used in filenames for distro config - -# Define custom colors used in messages printed to the screen - -# Please consult `man console_codes` for more information -# under the "ECMA-48 Set Graphics Rendition" section -# -# Warning: when switching from a 8bit to a 9bit font, -# the linux console will reinterpret the bold (1;) to -# the top 256 glyphs of the 9bit font. This does -# not affect framebuffer consoles - -# These values, if specified here, override the defaults -#BRACKET="\\033[1;34m" # Blue -#FAILURE="\\033[1;31m" # Red -#INFO="\\033[1;36m" # Cyan -#NORMAL="\\033[0;39m" # Grey -#SUCCESS="\\033[1;32m" # Green -#WARNING="\\033[1;33m" # Yellow - -# Use a colored prefix -# These values, if specified here, override the defaults -#BMPREFIX=" " -#SUCCESS_PREFIX="${SUCCESS} * ${NORMAL} " -#FAILURE_PREFIX="${FAILURE}*****${NORMAL} " -#WARNING_PREFIX="${WARNING} *** ${NORMAL} " - -# Manually seet the right edge of message output (characters) -# Useful when resetting console font during boot to override -# automatic screen width detection -#COLUMNS=120 - -# Interactive startup -#IPROMPT="yes" # Whether to display the interactive boot prompt -#itime="3" # The amount of time (in seconds) to display the prompt - -# The total length of the distro welcome string, without escape codes -#wlen=$(echo "Welcome to ${DISTRO}" | wc -c ) -#welcome_message="Welcome to ${INFO}${DISTRO}${NORMAL}" - -# The total length of the interactive string, without escape codes -#ilen=$(echo "Press 'I' to enter interactive startup" | wc -c ) -#i_message="Press '${FAILURE}I${NORMAL}' to enter interactive startup" - -# Set scripts to skip the file system check on reboot -#FASTBOOT=yes - -# Skip reading from the console -#HEADLESS=yes - -# Write out fsck progress if yes -#VERBOSE_FSCK=no - -# Speed up boot without waiting for settle in udev -#OMIT_UDEV_SETTLE=y - -# Speed up boot without waiting for settle in udev_retry -#OMIT_UDEV_RETRY_SETTLE=yes - -# Skip cleaning /tmp if yes -#SKIPTMPCLEAN=no - -# For setclock -#UTC=1 -#CLOCKPARAMS= - -# For consolelog (Note that the default, 7=debug, is noisy) -#LOGLEVEL=7 - -# For network -#HOSTNAME=mylfs - -# Delay between TERM and KILL signals at shutdown -#KILLDELAY=3 - -# Optional sysklogd parameters -#SYSKLOGD_PARMS="-m 0" - -# Console parameters -#UNICODE=1 -#KEYMAP="de-latin1" -#KEYMAP_CORRECTIONS="euro2" -#FONT="lat0-16 -m 8859-15" -#LEGACY_CHARSET= - - -9.6.8.1. Personalizando os Scripts de Inicialização e Desligamento - - Os scripts de inicialização do LFS inicializam e desligam um sistema de - uma maneira bastante eficiente, porém existem uns poucos ajustes que - você pode fazer no arquivo rc.site para aumentar a velocidade ainda - mais e ajustar mensagens de acordo com suas preferências. Para fazer - isso, ajuste as configurações no arquivo /etc/sysconfig/rc.site acima. - * Durante o script de inicialização udev, existe uma chamada para - udev settle que exige algum tempo para completar. Esse tempo talvez - ou talvez não seja exigido dependendo dos dispositivos presentes no - sistema. Se você tiver apenas partições simples e uma placa - ethernet, [então] o processo de inicialização provavelmente não - precisará esperar por esse comando. Para pular ele, configure a - variável OMIT_UDEV_SETTLE=y. - * O script de inicialização udev_retry também executa udev settle por - padrão. Esse comando é necessário por padrão somente se o diretório - /var for montado separadamente. Isso é porque o relógio precisa do - arquivo /var/lib/hwclock/adjtime. Outras personalizações talvez - também precisem esperar que o udev complete, porém em muitas - instalações ele não é necessário. Pule o comando configurando a - variável OMIT_UDEV_RETRY_SETTLE=y. - * Por padrão, as verificações do sistema de arquivos são silenciosas. - Isso pode parecer um atraso durante o processo de inicialização. - Para ligar a saída do fsck, configure a variável VERBOSE_FSCK=y. - * Quando reinicializar, você talvez queira pular a verificação do - sistema de arquivos, fsck, completamente. Para fazer isso, ou crie - o arquivo /fastboot ou reinicialize o sistema com o comando - /sbin/shutdown -f -r now. Por outro lado, você pode forçar que - todos os sistemas de arquivos sejam verificados criando /forcefsck - ou executando shutdown com o parâmetro -F em vez de -f. - Configurar a variável FASTBOOT=y desabilitará fsck durante o - processo de inicialização até que ela seja removida. Isso não é - recomendado em uma base permanente. - * Normalmente, todos os arquivos no diretório /tmp são deletados em - tempo de inicialização. Dependendo do número de arquivos ou - diretórios presentes, isso pode causar um atraso notável no - processo de inicialização. Para pular a remoção desses arquivos - configure a variável SKIPTMPCLEAN=y. - * Durante o desligamento, o aplicativo init envia um sinal TERM para - cada aplicativo que ele iniciou (por exemplo agetty), espera um - tempo configurado (padrão 3 segundos), e envia a cada processo um - sinal KILL e aguarda novamente. Esse processo é repetido no script - sendsignals para quaisquer processos que não sejam desligados pelos - scripts próprios deles. O atraso para init pode ser configurado - passando um parâmetro. Por exemplo para remover o atraso em init, - passe o parâmetro -t0 quando desligar ou reinicializar (por exemplo - /sbin/shutdown -t0 -r now). O atraso para o script sendsignals pode - ser pulado configurando o parâmetro KILLDELAY=0. - -9.7. Os Arquivos de Inicialização de Shell do Bash - - O aplicativo de shell /bin/bash (daqui por diante referenciado como “o - shellâ€) usa uma coleção de arquivos de inicialização para auxiliar a - criar um ambiente para executar dentro. Cada arquivo tem um uso - específico e talvez afete o login e ambientes interativos - diferentemente. Os arquivos no diretório /etc fornecem configurações - globais. Se um arquivo equivalente existir no diretório home, [então] - ele talvez substitua as configurações globais. - - Um shell de login interativo é iniciado após um login bem sucedido, - usando o /bin/login, lendo o arquivo /etc/passwd. Um shell de não-login - interativo é iniciado na linha de comando (por exemplo, - [prompt]$/bin/bash). Um shell não-interativo está geralmente presente - quando um script de shell está executando. Ele é não-interativo porque - ele está processando um script e não esperando pela entrada de - usuária(o) entre comandos. - - Para mais informação, veja-se info bash sob a seção Arquivos de - Inicialização do Bash e Shells Interativos. - - Os arquivos /etc/profile e ~/.bash_profile são lidos quando o shell é - invocado como um shell de login interativo. - - O /etc/profile de base abaixo configura algumas variáveis de ambiente - necessárias para o suporte ao idioma nativo. Configurá-las - adequadamente resulta em: - * A saída dos aplicativos traduzida para o idioma nativo - * Classificação correta dos caracteres em letras, dígitos e outras - classes. Isso é necessário para o bash aceitar adequadamente - caracteres não ASCII em linhas de comando em locales não ingleses - * A sequência de ordenação alfabética correta para o país - * Tamanho de papel padrão apropriado - * Formatação correta de valores monetário, hora e data - - Substitua abaixo com o código de duas letras para o idioma - desejado (por exemplo, “enâ€) e com o código de duas letras para o - país apropriado (por exemplo, “GBâ€). deveria ser substituído - com o mapa de caracteres canônico para seu locale escolhido. - Modificadores opcionais, tais como “@euroâ€, talvez também estejam - presentes. - - A lista de todos os locales suportados pela Glibc pode ser obtida - executando o seguinte comando: -locale -a - - Mapas de caracteres podem ter um número de apelidos, por exemplo, - “ISO-8859-1†também é referenciado como “iso8859-1†e “iso88591â€. - Alguns aplicativos não podem lidar com os vários sinônimos corretamente - (por exemplo, exigem que “UTF-8†seja escrito como “UTF-8â€, não - “utf8â€), de forma que é mais seguro, na maioria dos casos, escolher o - nome canônico para um locale particular. Para determinar o nome - canônico, execute o seguinte comando, onde é a saída dada - por locale -a para seu locale preferido (“en_GB.iso88591†no nosso - exemplo). -LC_ALL= locale charmap - - Para o locale “en_GB.iso88591â€, o comando acima imprimirá: -ISO-8859-1 - - Isso resulta em uma configuração de locale final de “en_GB.ISO-8859-1â€. - É importante que o locale encontrado usando a heurística acima seja - testado antes que ele seja adicionado aos arquivos de inicialização do - Bash: -LC_ALL= locale language -LC_ALL= locale charmap -LC_ALL= locale int_curr_symbol -LC_ALL= locale int_prefix - - Os comandos acima deveriam imprimir o nome do idioma, a codificação de - caracteres usada pelo locale, a moeda local, e o prefixo para discar - antes do número de telefone para se alcançar o país. Se quaisquer dos - comandos acima falharem com uma mensagem similar àquela mostrada - abaixo, [então] isso significa que seu locale ou não foi instalado no - [636]Seção 8.5, “Glibc-2.35†ou não é suportado pela instalação padrão - da Glibc. -locale: Cannot set LC_* to default locale: No such file or directory - - Se isso acontecer, [então] você deveria instalar o locale desejado - usando o comando localedef, ou considere escolher um locale diferente. - As instruções posteriores assumem que não existem tais mensagens de - erro originárias da Glibc. - - Outros pacotes também podem funcionar incorretamente (mas talvez não - necessariamente exibam quaisquer mensagens de erro) se o nome do locale - não corresponder às expectativas deles. Nesses casos, investigar como - outras distribuições do Linux suportam seu locale poderia fornecer - alguma informação útil. - - Uma vez que as configurações de locale adequadas tenham sido - determinadas, crie o arquivo /etc/profile: -cat > /etc/profile << "EOF" -# Begin /etc/profile - -export LANG=_.<@modifiers> - -# End /etc/profile -EOF - - Os locales “C†(padrão) e “en_US.utf8†(aquele recomendado para - usuárias(os) do inglês dos Estados Unidos da América do Norte) são - diferentes. “C†usa o conjunto de caracteres de 7 bits US-ASCII, e - trata bytes com o bit alto configurado como caracteres inválidos. Esse - é o porquê, por exemplo, do comando ls substituir eles com pontos de - interrogação nesse locale. Também, uma tentativa de enviar correio com - tais caracteres a partir do Mutt ou Pine resulta em mensagens de não - conformidade com RFC sendo enviadas (o conjunto de caracteres no - correio de saída é indicado como “unknown 8-bitâ€). Então você pode usar - o locale “C†apenas se você tiver certeza de que nunca precisará de - caracteres de 8 bits. - - Locales baseados em UTF-8 não são bem suportados por alguns - aplicativos. Trabalho está em progresso para documentar e, se possível, - consertar tais problemas, veja-se - [637]https://www.linuxfromscratch.org/blfs/view/11.1/introduction/local - e-issues.html. - -9.8. Criando o Arquivo /etc/inputrc - - O arquivo inputrc é o arquivo de configuração para a biblioteca - readline, a qual fornece capacidades de edição enquanto a(o) usuária(o) - estiver digitando uma linha a partir do terminal. Ele funciona - traduzindo entradas de teclado em ações específicas. Readline é usada - pelo bash e maioria dos outros shells, bem como muitos outros - aplicativos. - - A maioria das pessoas não necessita de funcionalidade específica de - usuária(o), de forma que o comando abaixo cria um /etc/inputrc global - usado por qualquer uma(m) que se logue. Se você mais tarde decidir que - você precisa sobrepor os padrões em uma base por usuária(o), [então] - você pode criar um arquivo .inputrc no diretório home da(o) usuária(o) - com os mapeamentos modificados. - - Para mais informação sobre como editar o arquivo inputrc, veja-se info - bash sob a seção Readline Init File. info readline é também uma boa - fonte de informação. - - Abaixo está um inputrc global genérico junto com comentários para - explicar o que as várias opções fazem. Observe que comentários não - podem estar na mesma linha que comandos. Crie o arquivo usando o - seguinte comando: -cat > /etc/inputrc << "EOF" -# Begin /etc/inputrc -# Modified by Chris Lynn - -# Allow the command prompt to wrap to the next line -set horizontal-scroll-mode Off - -# Enable 8bit input -set meta-flag On -set input-meta On - -# Turns off 8th bit stripping -set convert-meta Off - -# Keep the 8th bit for display -set output-meta On - -# none, visible or audible -set bell-style none - -# All of the following map the escape sequence of the value -# contained in the 1st argument to the readline specific functions -"\eOd": backward-word -"\eOc": forward-word - -# for linux console -"\e[1~": beginning-of-line -"\e[4~": end-of-line -"\e[5~": beginning-of-history -"\e[6~": end-of-history -"\e[3~": delete-char -"\e[2~": quoted-insert - -# for xterm -"\eOH": beginning-of-line -"\eOF": end-of-line - -# for Konsole -"\e[H": beginning-of-line -"\e[F": end-of-line - -# End /etc/inputrc -EOF - -9.9. Criando o Arquivo /etc/shells - - O arquivo shells contém uma lista dos shells de login no sistema. Os - aplicativos usam esse arquivo para determinar quando um shell é válido. - Para cada shell, uma linha única deveria estar presente, consistindo do - caminho do shell relativo à raiz da estrutura de diretório (/). - - Por exemplo, esse arquivo é consultado pelo chsh para determinar quando - uma usuária desprivilegiada possa mudar o shell de login para a própria - conta dela. Se o nome de comando não estiver listado, [então] a usuária - terá negada a habilidade de mudar shells. - - É uma exigência para aplicativos tais como GDM o qual não publiciza o - navegador de face se ele não puder encontrar /etc/shells, ou daemons do - FTP os quais tradicionalmente proíbem acesso a usuárias(os) com shells - não incluídos nesse arquivo. -cat > /etc/shells << "EOF" -# Begin /etc/shells - -/bin/sh -/bin/bash - -# End /etc/shells -EOF - -Capítulo 10. Tornando o Sistema LFS Inicializável - -10.1. Introdução - - É hora de tornar o sistema LFS inicializável. Este capítulo discute a - criação do arquivo /etc/fstab; construção de um kernel para o novo - sistema LFS; e instalação do carregador de inicialização GRUB, de modo - que o sistema LFS possa ser selecionado para iniciar durante a - inicialização. - -10.2. Criando o Arquivo /etc/fstab - - O arquivo /etc/fstab é usado por alguns aplicativos para determinar - onde sistemas de arquivos são para serem montados por padrão; em qual - ordem; e quais precisam ser verificados (para erros de integridade) - antes da montagem. Crie uma nova tabela de sistemas de arquivos como - esta: -cat > /etc/fstab << "EOF" -# Begin /etc/fstab - -# file system mount-point type options dump fsck -# order - -/dev/ / defaults 1 1 -/dev/ swap swap pri=1 0 0 -proc /proc proc nosuid,noexec,nodev 0 0 -sysfs /sys sysfs nosuid,noexec,nodev 0 0 -devpts /dev/pts devpts gid=5,mode=620 0 0 -tmpfs /run tmpfs defaults 0 0 -devtmpfs /dev devtmpfs mode=0755,nosuid 0 0 - -# End /etc/fstab -EOF - - Substitua ; ; e com os valores apropriados para o - sistema, por exemplo, sda2; sda5; e ext4. Para detalhes sobre os seis - campos nesse arquivo, veja-se man 5 fstab. - - Sistemas de arquivos com origem MS-DOS ou Windows (isto é, vfat, ntfs, - smbfs, cifs, iso9660, udf) precisam de uma opção especial, utf8, para a - finalidade de caracteres não ASCII nos nomes de arquivo serem - interpretados corretamente. Para locales não UTF-8, o valor de - iocharset deveria ser configurado para ser o mesmo que o conjunto de - caracteres do locale, ajustado de tal maneira que o kernel o entenda. - Isso funciona se a definição de conjunto de caracteres relevante - (encontrada sob File systems -> Native Language Support quando da - configuração do kernel) tenha sido compilada no kernel ou construída - como um módulo. Entretanto, se o conjunto de caracteres do locale for - UTF-8, [então] a correspondente opção iocharset=utf8 tornaria o sistema - de arquivo sensível a maiúsculas e minúsculas. Para consertar isso, use - a opção especial utf8 em vez de iocharset=utf8, para locales UTF-8. A - opção “codepage†também é necessária para sistemas de arquivos vfat e - smbfs. Ela deveria ser configurada para o número da página de código - usada sob MS-DOS em seu país. Por exemplo, para montar controladores - flash USB, uma(m) usuária(o) do ru_RU.KOI8-R precisaria do seguinte na - porção de opções da linha mount dele em /etc/fstab: -noauto,user,quiet,showexec,codepage=866,iocharset=koi8r - - O correspondente fragmento das opções para usuárias(os) do ru_RU.UTF-8 - é: -noauto,user,quiet,showexec,codepage=866,utf8 - - Observe que usar iocharset é o padrão para iso8859-1 (a qual mantém o - sistema de arquivo insensível a maiúsculas e minúsculas), e a opção - utf8 diz ao kernel para converter os nomes de arquivo usando UTF-8, de - forma que eles podem ser interpretados no locale UTF-8. - - É possível também especificar os valores de página de código e - iocharset padrão para alguns sistemas de arquivos durante a - configuração do kernel. Os parâmetros relevantes são chamados de - “Default NLS Option†(CONFIG_NLS_DEFAULT); “Default Remote NLS Option†- (CONFIG_SMB_NLS_DEFAULT); “Default codepage for FAT†- (CONFIG_FAT_DEFAULT_CODEPAGE); e “Default iocharset for FAT†- (CONFIG_FAT_DEFAULT_IOCHARSET). Não há maneira de especificar essas - configurações para o sistema de arquivos ntfs em tempo de compilação do - kernel. - - É possível tornar o sistema de arquivos ext3 confiável em casos de - falhas de eletricidade para alguns tipos de disco rígido. Para fazer - isso, adicione a opção de montagem barrier=1 para a entrada apropriada - em /etc/fstab. Para verificar se o controlador de disco suporta essa - opção, execute [638]hdparm no controlador de disco aplicável. Por - exemplo, se: -hdparm -I /dev/sda | grep NCQ - - retornar uma saída não vazia, [então] a opção é suportada. - - Nota: partições baseadas em Logical Volume Management (LVM) não podem - usar a opção barrier. - -10.3. Linux-5.16.9 - - O pacote Linux contém o kernel do Linux. - Tempo aproximado de construção: 1,5 - 130,0 UPC (tipicamente cerca de - 12 UPC) - Espaço em disco exigido: 1200 - 8800 MB (tipicamente cerca de 1700 MB) - -10.3.1. Instalação do kernel - - Construir o kernel envolve uns poucos passos—configuração; compilação; - e instalação. Leia o arquivo README na árvore do fonte do kernel para - métodos alternativos à maneira que este livro configura o kernel. - - Prepare para compilação executando o seguinte comando: -make mrproper - - Isso garante que a árvore do kernel esteja absolutamente limpa. O time - do kernel recomenda que esse comando seja executado antes de cada - compilação do kernel. Não confie que a árvore do fonte esteja limpa - após descompactar. - - Existem muitas maneiras de configurar as opções do kernel. Usualmente, - isso é feito por meio de uma interface controlada por menu, por - exemplo: -make menuconfig - - O significado das variáveis de ambiente do make opcionais: - - LANG= LC_ALL= - Isso estabelece a configuração do locale para aquela usada no - anfitrião. Isso talvez seja necessário para um adequado desenho - de linha da interface ncurses do menuconfig em um console de - texto linux UTF-8. - - Se usada, [então] assegure-se de substituir - pelo valor da variável $LANG oriunda do seu anfitrião. Você - pode, alternativamente, usar, em vez disso, o valor do anfitrião - de $LC_ALL ou $LC_CTYPE. - - make menuconfig - Isso lança uma interface controlada por menu ncurses. Para - outras (gráficas) interfaces, digite make help. - - Para informação geral sobre configuração do kernel, veja-se - [639]https://www.linuxfromscratch.org/hints/downloads/files/kernel-conf - iguration.txt. O BLFS tem alguma informação relativa a exigências de - configuração do kernel particulares de pacotes que estão fora do LFS em - [640]https://www.linuxfromscratch.org/blfs/view/11.1/longindex.html#ker - nel-config-index. Informação adicional sobre configurar e construir o - kernel pode ser encontrada em [641]http://www.kroah.com/lkn/ - -Nota - - Um bom ponto de partida para configurar a configuração do kernel é - executar make defconfig. Isso configurará a configuração base para um - bom estado que leve a sua atual arquitetura de sistema em conta. - - Assegure-se de habilitar/desabilitar/configurar as seguintes - características ou o sistema poderia não funcionar corretamente ou - inicializar de forma alguma: -General setup --> - < > Enable kernel headers through /sys/kernel/kheaders.tar.xz [CONFIG_IKHEADE -RS] -Device Drivers ---> - Graphics support ---> - Frame buffer Devices ---> - [*] Support for frame buffer devices ---- - Generic Driver Options ---> - [ ] Support for uevent helper [CONFIG_UEVENT_HELPER] - [*] Maintain a devtmpfs filesystem to mount at /dev [CONFIG_DEVTMPFS] - - Existem muitas outras opções que talvez sejam desejadas, dependendo das - exigências para o sistema. Para uma lista das opções necessárias para - pacotes do BLFS, veja-se o [642]Ãndice BLFS das Configurações do Kernel - (https://www.linuxfromscratch.org/blfs/view/11.1/longindex.html#kernel- - config-index). - -Nota - - Se seu hardware do anfitrião estiver usando UEFI e você desejar - inicializar o sistema LFS com ela, [então] você deveria ajustar alguma - configuração do kernel seguindo [643]a página do BLFS. - - A justificativa para os itens de configuração acima: - - Enable kernel headers through /sys/kernel/kheaders.tar.xz - Isso exigirá cpio ao se construir o kernel. cpio não é instalado - por LFS. - - Support for uevent helper - Ter essa opção configurada talvez interfira com o gerenciamento - de dispositivo quando se usar Udev/Eudev. - - Maintain a devtmpfs - Isso criará nós de dispositivos automatizados os quais são - povoados pelo kernel, mesmo sem o Udev executando. O Udev então - executa no topo disso, gerenciando permissões e adicionando - links simbólicos. Esse item de configuração é exigido para - todas(os) as(os) usuárias(os) do Udev/Eudev. - - Alternativamente, make oldconfig talvez seja mais apropriado em algumas - situações. Veja-se o arquivo README para mais informação. - - Se desejado, [então] pule a configuração do kernel copiando o arquivo - config do kernel, .config, a partir do sistema anfitrião (assumindo que - ele esteja disponível) para o diretório linux-5.16.9 desempacotado. - Entretanto, nós não recomendamos essa opção. Frequentemente é melhor - explorar todos os menus de configuração e criar a configuração do - kernel a partir do zero. - - Compile a imagem do kernel e módulos: -make - - Se usar módulos do kernel, [então] a configuração do módulo em - /etc/modprobe.d talvez seja exigida. Informação pertinente à - configuração de módulos e kernel está localizada na [644]Seção 9.3, - “Visão Geral do Manuseio de Dispositivos e Módulos†e na documentação - do kernel no diretório linux-5.16.9/Documentation. Também, - modprobe.d(5) talvez seja de interesse. - - A menos que o suporte de módulo tenha sido desabilitado na configuração - do kernel, instale os módulos com: -make modules_install - - Depois que a compilação do kernel estiver completa, passos adicionais - são exigidos para completar a instalação. Alguns arquivos precisam ser - copiados para o diretório /boot. - -Cuidado - - Se o sistema anfitrião tiver uma partição /boot separada, [então] os - arquivos copiados abaixo deveriam ir para lá. A maneira mais fácil de - fazer isso é vincular /boot no anfitrião (do lado de fora do chroot) à - /mnt/lfs/boot antes de prosseguir. Como a(o) usuária(o) root no sistema - anfitrião: -mount --bind /boot /mnt/lfs/boot - - O caminho para a imagem do kernel talvez varie, dependendo da - plataforma sendo usada. O nome de arquivo abaixo pode ser mudado para - se adequar ao seu gosto, porém o tronco do nome de arquivo deveria ser - vmlinuz para ser compatível com a configuração automática do processo - de inicialização descrito na próxima seção. O seguinte comando assume - uma arquitetura x86: -cp -iv arch/x86/boot/bzImage /boot/vmlinuz-5.16.9-lfs-11.1 - - System.map é um arquivo de símbolo para o kernel. Ele mapeia os pontos - de entrada de função de cada função na API do kernel, assim como os - endereços das estruturas de dados do kernel para o kernel em execução. - Ele é usado como um recurso quando se investigar problemas do kernel. - Emita o seguinte comando para instalar o arquivo de mapa: -cp -iv System.map /boot/System.map-5.16.9 - - O arquivo de configuração do kernel .config produzido pelo passo make - menuconfig acima contém todas as seleções de configuração para o kernel - que foi recém compilado. É uma boa ideia manter esse arquivo para - futura referência: -cp -iv .config /boot/config-5.16.9 - - Instale a documentação para o kernel do Linux: -install -d /usr/share/doc/linux-5.16.9 -cp -r Documentation/* /usr/share/doc/linux-5.16.9 - - É importante observar que os arquivos no diretório do fonte do kernel - não são de propriedade da(o) root. Sempre que um pacote é desempacotado - como a(o) usuária(o) root (como nós fizemos dentro do chroot), os - arquivos tem os IDs de usuária(o) e grupo do que quer que fossem no - computador da(o) empacotadora(r). Isso geralmente não é um problema - para qualquer outro pacote ser instalado, pois a árvore do fonte é - removida depois da instalação. Entretanto, a árvore do fonte do Linux - frequentemente é mantida por um longo tempo. Devido a isso, existe uma - chance de que qualquer ID de usuária(o) que a(o) empacotadora(r) usou - será atribuído para alguém na máquina. Essa pessoa então teria acesso - de escrita ao fonte do kernel. - -Nota - - Em muitos casos, a configuração do kernel precisará ser atualizada para - pacotes que serão instalados posteriormente em BLFS. Diferente de - outros pacotes, não é necessário remover a árvore do fonte do kernel - depois que o recém construído kernel for instalado. - - Se a árvore do fonte do kernel será mantida, [então] execute chown -R - 0:0 no diretório linux-5.16.9 para assegurar que todos os arquivos são - de propriedade da(o) usuária(o) root. - -Atenção - - Alguma documentação do kernel recomenda criar um link simbólico a - partir de /usr/src/linux apontando para o diretório do fonte do kernel. - Isso é específico para kernels anteriores à série 2.6 e precisa não ser - criado em um sistema LFS, uma vez que ele pode causar problemas para - pacotes que você talvez deseje construir tão logo seu sistema LFS base - esteja completo. - -Atenção - - Os cabeçalhos no diretório include do sistema (/usr/include) deveriam - sempre ser aqueles contra os quais a Glibc foi compilada, isto é, os - cabeçalhos sanitizados instalados na [645]Seção 5.4, “Cabeçalhos da API - do Linux-5.16.9â€. Portanto, eles nunca deveriam ser substituídos tanto - pelos cabeçalhos do kernel crus quanto por quaisquer outros cabeçalhos - sanitizados do kernel. - -10.3.2. Configurando a Ordem de Carregamento de Módulos do Linux - - Na maior parte do tempo, os módulos do Linux são carregados - automaticamente, porém algumas vezes precisa-se de alguma direção - específica. O aplicativo que carrega os módulos, modprobe ou insmod, - usa /etc/modprobe.d/usb.conf para esse propósito. Esse arquivo precisa - ser criado, de forma que, se os controladores do USB (ehci_hcd, - ohci_hcd e uhci_hcd) tiverem sido construídos como módulos, [então] - eles serão carregados na ordem correta; ehci_hcd precisa ser carregado - antes de ohci_hcd e uhci_hcd para evitar um aviso sendo produzido em - tempo de inicialização. - - Crie um novo arquivo /etc/modprobe.d/usb.conf executando o seguinte: -install -v -m755 -d /etc/modprobe.d -cat > /etc/modprobe.d/usb.conf << "EOF" -# Begin /etc/modprobe.d/usb.conf - -install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true -install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i uhci_hcd ; true - -# End /etc/modprobe.d/usb.conf -EOF - -10.3.3. Conteúdo do Linux - - Arquivos instalados: config-5.16.9, vmlinuz-5.16.9-lfs-11.1 e - System.map-5.16.9 - Diretórios instalados: /lib/modules e /usr/share/doc/linux-5.16.9 - -Descrições Curtas - - config-5.16.9 - - Contém todas as seleções de configuração para o kernel - - vmlinuz-5.16.9-lfs-11.1 - - O motor do sistema Linux. Quando se liga o computador, o kernel é a - primeira parte do sistema operacional que se torna carregada. Ele - detecta e inicializa todos os componentes do hardware do computador, - então torna esses componentes disponíveis como uma árvore de arquivos - para o software e transforma uma CPU individual em uma máquina - multitarefa capaz de executar dezenas de aplicativos aparentemente ao - mesmo tempo - - System.map-5.16.9 - - Uma lista de endereços e símbolos; ele mapeia os pontos de entrada e - endereços de todas as funções e estruturas de dados no kernel - -10.4. Usando o GRUB para Configurar o Processo de Inicialização - -Nota - - Se seu sistema tiver suporte UEFI e você desejar inicializar o LFS com - UEFI, [então] você deveria pular esta página, e configurar o GRUB com - suporte UEFI usando as instruções fornecidas na [646]página do BLFS. - -10.4.1. Introdução - -Atenção - - Configurar o GRUB incorretamente pode tornar seu sistema inoperável sem - um dispositivo de inicialização alternativo, como um CD-ROM ou unidade - USB inicializável. Esta seção não é exigida para inicializar seu - sistema LFS. Você talvez apenas queira modificar seu carregador de - inicialização atual, por exemplo, Grub-Legacy, GRUB2 ou LILO. - - Certifique-se de que um disco de inicialização de emergência esteja - pronto para “resgatar†o computador se o computador se tornar - inutilizável (não inicializável). Se você ainda não tem um dispositivo - de inicialização, [então] você pode criar um. Para que o procedimento - abaixo funcione, você precisa saltar para a frente para o BLFS e - instalar xorriso oriundo do pacote [647]libisoburn. -cd /tmp -grub-mkrescue --output=grub-img.iso -xorriso -as cdrecord -v dev=/dev/cdrw blank=as_needed grub-img.iso - -10.4.2. Convenções de Nomenclatura do GRUB - - O GRUB usa estrutura de nomenclatura própria dele para unidades e - partições na forma de (hdn,m), onde n é o número da unidade rígida e m - é o número da partição. O número da unidade rígida começa do zero, - porém o número da partição inicia do um para partições normais e cinco - para partições estendidas. Observe que isso é diferente de versões - anteriores onde ambos os números começavam do zero. Por exemplo, a - partição sda1 é (hd0,1) para o GRUB e sdb3 é (hd1,3). Em contraste com - o Linux, GRUB não considera unidades de CD-ROM como unidades rígidas. - Por exemplo, se usar um CD em hdb e uma segunda unidade rígida em hdc, - [então] aquela segunda unidade rígida ainda seria (hd1). - -10.4.3. Definindo a Configuração - - O GRUB funciona escrevendo dados para a primeira trilha física do disco - rígido. Essa área não é parte de nenhum sistema de arquivos. Os - aplicativos lá acessam módulos do GRUB na partição de inicialização. O - local padrão é /boot/grub/. - - O local da partição de inicialização é uma escolha da(o) usuária(o) que - afeta a configuração. Uma recomendação é ter uma partição pequena - (tamanho sugerido é 200 MB) separada somente para informação de - inicialização. Dessa forma, cada construção, seja LFS ou alguma - distribuição comercial, pode acessar os mesmos arquivos de - inicialização e o acesso pode ser feito a partir de qualquer sistema - inicializado. Se você escolher fazer isso, [então] você precisará - montar a partição separada, mover todos os arquivos no diretório /boot - atual (por exemplo, o kernel linux que você recém construiu na seção - anterior) para a nova partição. Você precisará então desmontar a - partição e remontar ela como /boot. Se você fizer isso, [então] tenha - certeza de atualizar /etc/fstab. - - Usar a partição lfs atual também funcionará, porém a configuração para - múltiplos sistemas é mais complicada. - - Usando a informação acima, determine o designador apropriado para a - partição raiz (ou partição de inicialização, se uma separada for - usada). Para o exemplo seguinte, é assumido que a partição raiz (ou - inicialização separada) é sda2. - - Instale os arquivos do GRUB em /boot/grub e configure a trilha de - inicialização: - -Atenção - - O seguinte comando sobrescreverá o carregador de inicialização atual. - Não execute o comando de isso não for desejado, por exemplo, se usar um - gerenciador de inicialização de terceiro para gerenciar o Master Boot - Record (MBR). -grub-install /dev/sda - -Nota - - Se o sistema tiver sido inicializado usando UEFI, [então] o - grub-install tentará instalar arquivos para o alvo x86_64-efi, porém - aqueles arquivos não foram instalados no [648]Capítulo 8. Se esse for o - caso, [então] adicione --target i386-pc ao comando acima. - -10.4.4. Criando o Arquivo de Configuração do GRUB - - Gere o /boot/grub/grub.cfg: -cat > /boot/grub/grub.cfg << "EOF" -# Begin /boot/grub/grub.cfg -set default=0 -set timeout=5 - -insmod ext2 -set root=(hd0,2) - -menuentry "GNU/Linux, Linux 5.16.9-lfs-11.1" { - linux /boot/vmlinuz-5.16.9-lfs-11.1 root=/dev/sda2 ro -} -EOF - -Nota - - A partir da perspectiva do GRUB, os arquivos do kernel são relativos à - partição usada. Se você usou uma partição /boot separada, [então] - remova /boot da linha linux acima. Você também precisará mudar a linha - set root para apontar para a partição de inicialização. - - O GRUB é um aplicativo extremamente poderoso e ele fornece um tremendo - número de opções para inicializar a partir de uma ampla variedade de - dispositivos, sistemas operacionais e tipos de partição. Existem também - muitas opções para personalização, tais como telas splash gráficas; - reprodução de sons; entrada de mouse; etc. Os detalhes dessas opções - estão além do escopo desta introdução. - -Cuidado - - Existe um comando, grub-mkconfig, que pode escrever um arquivo de - configuração automaticamente. Ele usa um conjunto de scripts em - /etc/grub.d/ e destruirá quaisquer personalizações que você fizer. - Esses scripts são projetados primariamente para distribuições não fonte - e não são recomendados para o LFS. Se você instalar uma distribuição do - Linux comercial, [então] existe uma boa chance de que esse aplicativo - será executado. Tenha certeza de produzir uma cópia de segurança do seu - arquivo grub.cfg. - -Capítulo 11. O Fim - -11.1. O Fim - - Muito bem! O novo sistema LFS está instalado! Nós desejamos a você - muito sucesso com seu novo e brilhante sistema Linux construído sob - medida. - - Talvez seja uma boa ideia criar um arquivo /etc/lfs-release. Tendo esse - arquivo, é muito fácil para você (e para nós se você precisar pedir por - ajuda em algum ponto) descobrir qual versão do LFS está instalada no - sistema. Crie esse arquivo executando: -echo 11.1 > /etc/lfs-release - - Dois arquivos descrevendo o sistema instalado talvez sejam usados por - pacotes que podem ser instalados no sistema posteriormente, ou em forma - de binário ou construindo eles. - - O primeiro deles mostra a situação do seu novo sistema com respeito ao - Linux Standards Base (LSB). Para criar esse arquivo, execute: -cat > /etc/lsb-release << "EOF" -DISTRIB_ID="Linux From Scratch" -DISTRIB_RELEASE="11.1" -DISTRIB_CODENAME="" -DISTRIB_DESCRIPTION="Linux From Scratch" -EOF - - O segundo deles contém aproximadamente a mesma informação, e é usado - pelo systemd e alguns ambientes de área de trabalho gráficos. Para - criar esse arquivo, execute: -cat > /etc/os-release << "EOF" -NAME="Linux From Scratch" -VERSION="11.1" -ID=lfs -PRETTY_NAME="Linux From Scratch 11.1" -VERSION_CODENAME="" -EOF - - Tenha certeza de colocar algum tipo de personalização para os campos - 'DISTRIB_CODENAME' e 'VERSION_CODENAME' para tornar o sistema - unicamente seu. - -11.2. Seja Contado - - Agora que você terminou o livro, você quer ser contada(o) como uma(m) - usuária(o) do LFS? Vá para - [649]https://www.linuxfromscratch.org/cgi-bin/lfscounter.php e - registre-se como uma(m) usuária(o) do LFS fornecendo seu nome e a - primeira versão do LFS que você usou. - - Vamos reinicializar no LFS agora. - -11.3. Reinicializando o Sistema - - Agora que todo o software foi instalado, é hora de reinicializar seu - computador. Entretanto, você deveria estar ciente de umas poucas - coisas. O sistema que você criou neste livro é bastante mínimo, e - provavelmente não terá a funcionalidade que você precisaria para ser - capaz de seguir em frente. Instalando uns poucos pacotes extras a - partir do livro BLFS enquanto ainda em seu ambiente chroot atual, você - pode deixar-se em uma posição muito melhor para continuar tão logo você - reinicialize em sua nova instalação do LFS. Aqui estão algumas - sugestões: - * Um navegador de modo de texto como o [650]Lynx permitirá que você - facilmente visualize o livro BLFS em um terminal virtual, enquanto - constrói pacotes em outro. - * O pacote [651]make-ca permitirá que você configure certificados de - âncora confiáveis locais, permitindo que o sistema verifique - certificados SSL fornecidos por servidores remotos (por exemplo, um - sítio da web usando o HTTPS). - * O pacote [652]GPM permitirá que você realize ações de copiar/colar - em seus terminais virtuais. - * Se você estiver em uma situação onde configuração de IP estático - não atende suas exigências de rede, [então] instalar um pacote como - [653]dhcpcd ou a porção cliente do [654]dhcp talvez seja útil. - * Instalar [655]sudo talvez seja útil para construir pacotes como - uma(m) usuária(o) não root e facilmente instalar os pacotes - resultantes em seu novo sistema. - * Se você quiser acessar seu novo sistema a partir de um sistema - remoto dentro de um ambiente GUI confortável, [então] instale - [656]openssh. - * Para tornar a obtenção de arquivos por meio da Internet mais fácil, - instale [657]wget. - * Para se conectar a um ponto de acesso sem fios para rede, instale - [658]wpa_supplicant. - * Finalmente, uma revisão dos seguintes arquivos de configuração - também é apropriada neste ponto. - + /etc/bashrc - + /etc/dircolors - + /etc/fstab - + /etc/hosts - + /etc/inputrc - + /etc/profile - + /etc/resolv.conf - + /etc/vimrc - + /root/.bash_profile - + /root/.bashrc - + /etc/sysconfig/ifconfig.eth0 - - Agora que nós dissemos isso, vamos em frente para inicializar nossa - brilhante e nova instalação do LFS pela primeira vez! Primeiro saia do - ambiente chroot: -logout - - Então desmonte os sistemas de arquivos virtuais: -umount -v $LFS/dev/pts -umount -v $LFS/dev -umount -v $LFS/run -umount -v $LFS/proc -umount -v $LFS/sys - - Se múltiplas partições foram criadas, [então] desmonte as outras - partições antes de desmontar a principal, como isto: -umount -v $LFS/usr -umount -v $LFS/home -umount -v $LFS - - Desmonte o próprio sistema de arquivos do LFS: -umount -v $LFS - - Agora, reinicialize o sistema com: -shutdown -r now - - Assumindo que o carregador de inicialização GRUB foi configurado como - destacado anteriormente, o menu está configurado para inicializar o LFS - 11.1 automaticamente. - - Quando a reinicialização estiver completa, o sistema LFS estará pronto - para uso e mais software talvez seja adicionado para suprir suas - necessidades. - -11.4. E agora? - - Obrigado por ler este livro LFS. Nós esperamos que você tenha achado - este livro útil e tenha aprendido mais sobre o processo de criação do - sistema. - - Agora que o sistema LFS está instalado, você talvez esteja se - perguntando: “E depois?†Para responder a essa pergunta, nós compilamos - uma lista de recursos para você. - * Manutenção - Notificações de defeitos e segurança são relatadas regularmente - para todo software. Uma vez que um sistema LFS é compilado a partir - do fonte, cabe a você se manter a par de tais relatórios. Existem - vários recursos online que rastreiam tais relatórios, alguns dos - quais estão mostrados abaixo: - + [659]CERT (Computer Emergency Response Team) - O CERT tem uma lista de discussão que publica alertas de - segurança a respeito de vários sistemas operacionais e - aplicativos. Informação de assinatura está disponível em - [660]http://www.us-cert.gov/cas/signup.html. - + Bugtraq - Bugtraq é uma lista de discussão de segurança de computador de - divulgação completa. Ela publica problemas de segurança - descobertos recentemente, e ocasionalmente consertos - potenciais para eles. Informação de assinatura está disponível - em [661]http://www.securityfocus.com/archive. - * Beyond Linux From Scratch - O livro Beyond Linux From Scratch cobre procedimentos de instalação - para uma ampla gama de software além do escopo do Livro LFS. O - projeto BLFS está localizado em - [662]https://www.linuxfromscratch.org/blfs/view/11.1/. - * LFS Hints - As Dicas do LFS são uma coleção de documentos educacionais - submetidos por voluntários na comunidade do LFS. As dicas estão - disponíveis em - [663]https://www.linuxfromscratch.org/hints/downloads/files/. - * Listas de discussão - Existem várias listas de discussão do LFS que você talvez assine se - você estiver necessitada(o) de ajuda; quiser se manter - atualizada(o) com os mais recentes desenvolvimentos; quiser - contribuir para o projeto; e mais. Veja-se [664]Capítulo 1 - Listas - de Discussão para mais informação. - * The Linux Documentation Project - O objetivo do The Linux Documentation Project (TLDP) é o de - colaborar em todos os problemas de documentação do Linux. O TLDP - apresenta uma grande coleção de HOWTOs, guias e páginas de manual. - Ele está localizado em [665]http://www.tldp.org/. - -Parte V. Anexos - -Apêndice A. Siglas e Termos - - ABI - - Application Binary Interface - - ALFS - - Automated Linux From Scratch - - API - - Application Programming Interface - - ASCII - - American Standard Code for Information Interchange - - BIOS - - Basic Input/Output System - - BLFS - - Beyond Linux From Scratch - - BSD - - Berkeley Software Distribution - - chroot - - change root - - CMOS - - Complementary Metal Oxide Semiconductor - - COS - - Class Of Service - - CPU - - Central Processing Unit - - CRC - - Cyclic Redundancy Check - - CVS - - Concurrent Versions System - - DHCP - - Dynamic Host Configuration Protocol - - DNS - - Domain Name Service - - EGA - - Enhanced Graphics Adapter - - ELF - - Executable and Linkable Format - - EOF - - End of File - - EQN - - equation - - ext2 - - second extended file system - - ext3 - - third extended file system - - ext4 - - fourth extended file system - - FAQ - - Frequently Asked Questions - - FHS - - Filesystem Hierarchy Standard - - FIFO - - First-In, First Out - - FQDN - - Fully Qualified Domain Name - - FTP - - File Transfer Protocol - - GB - - Gigabytes - - GCC - - GNU Compiler Collection - - GID - - Group Identifier - - GMT - - Greenwich Mean Time - - HTML - - Hypertext Markup Language - - IDE - - Integrated Drive Electronics - - IEEE - - Institute of Electrical and Electronic Engineers - - IO - - Input/Output - - IP - - Internet Protocol - - IPC - - Inter-Process Communication - - IRC - - Internet Relay Chat - - ISO - - International Organization for Standardization - - ISP - - Internet Service Provider - - KB - - Kilobytes - - LED - - Light Emitting Diode - - LFS - - Linux From Scratch - - LSB - - Linux Standard Base - - MB - - Megabytes - - MBR - - Master Boot Record - - MD5 - - Message Digest 5 - - NIC - - Network Interface Card - - NLS - - Native Language Support - - NNTP - - Network News Transport Protocol - - NPTL - - Native POSIX Threading Library - - OSS - - Open Sound System - - PCH - - Pre-Compiled Headers - - PCRE - - Perl Compatible Regular Expression - - PID - - Process Identifier - - PTY - - pseudo terminal - - QOS - - Quality Of Service - - RAM - - Random Access Memory - - RPC - - Remote Procedure Call - - RTC - - Real Time Clock - - SBU - - Standard Build Unit - - SCO - - The Santa Cruz Operation - - SHA1 - - Secure-Hash Algorithm 1 - - TLDP - - The Linux Documentation Project - - TFTP - - Trivial File Transfer Protocol - - TLS - - Thread-Local Storage - - UID - - User Identifier - - umask - - user file-creation mask - - USB - - Universal Serial Bus - - UTC - - Coordinated Universal Time - - UUID - - Universally Unique Identifier - - VC - - Virtual Console - - VGA - - Video Graphics Array - - VT - - Virtual Terminal - -Apêndice B. Reconhecimentos - - Nós gostaríamos de agradecer às seguintes pessoas e organizações por - suas contribuições para o Projeto Linux From Scratch. - * [666]Gerard Beekmans – Criador - do LFS - * [667]Bruce Dubbs – - Editor-chefe do LFS - * [668]Jim Gifford – Colíder do - Projeto CLFS - * [669]Pierre Labastie – Editor - do BLFS e Líder do ALFS - * [670]DJ Lucas – Editor do LFS e - BLFS - * [671]Ken Moffat – Editor do BLFS - * Incontáveis outras pessoas nas várias listas de discussão do LFS e - BLFS que ajudaram a tornar este livro possível dando suas - sugestões; testando o livro; e submetendo relatórios de defeitos; - instruções; e suas experiências com a instalação de vários pacotes. - -Tradutoras(es) - - * [672]Manuel Canales Esparcia – - Projeto de tradução do LFS para espanhol - * [673]Johan Lenglet – Projeto de - tradução do LFS para francês até 2008 - * [674]Jean-Philippe Mengual – - Projeto de tradução do LFS para francês 2008-2016 - * [675]Julien Lepiller – - Projeto de tradução do LFS para francês 2017-presente - * [676]Anderson Lizardo – - Projeto de tradução do LFS para português - * [677]Thomas Reitelbach – Projeto de - tradução do LFS para alemão - * [678]Anton Maisak – - Projeto de tradução do LFS para russo - * [679]Elena Shevcova – - Projeto de tradução do LFS para russo - -Mantenedoras(es) de Espelhos - -Espelhos da América do Norte - - * [680]Scott Kveton – espelho - lfs.oregonstate.edu - * [681]William Astle – espelho - ca.linuxfromscratch.org - * [682]Eujon Sellers – espelho - lfs.introspeed.com - * [683]Justin Knierim – espelho lfs-matrix.net - -Espelhos da América do Sul - - * [684]Manuel Canales Esparcia – - espelho lfsmirror.lfs-es.info - * [685]Luis Falcon – espelho torredehanoi.org - -Espelhos Europeus - - * [686]Guido Passet – espelho - nl.linuxfromscratch.org - * [687]Bastiaan Jacques – espelho - lfs.pagefault.net - * [688]Sven Cranshoff – espelho - lfs.lineo.be - * Scarlet Belgium – espelho lfs.scarlet.be - * [689]Sebastian Faulborn – espelho - lfs.aliensoft.org - * [690]Stuart Fox – espelho lfs.dontuse.ms - * [691]Ralf Uhlemann – espelho - lfs.oss-mirror.org - * [692]Antonin Sprinzl - – espelho at.linuxfromscratch.org - * [693]Fredrik Danerklint – espelho - se.linuxfromscratch.org - * [694]Franck – espelho - lfs.linuxpourtous.com - * [695]Philippe Baque – espelho lfs.cict.fr - * [696]Vitaly Chekasin – espelho - lfs.pilgrims.ru - * [697]Benjamin Heil – espelho - lfs.wankoo.org - * [698]Anton Maisak – - espelho linuxfromscratch.org.ru - -Espelhos Asiáticos - - * [699]Satit Phermsawang – espelho - lfs.phayoune.org - * [700]Shizunet Co.,Ltd. – espelho - lfs.mirror.shizu-net.jp - * [701]Init World – espelho - lfs.initworld.com - -Espelhos da Austrália - - * [702]Jason Andrade – espelho - au.linuxfromscratch.org - -Ex-membros da Equipe do Projeto - - * [703]Christine Barczak – - Editor do Livro LFS - * Archaic – Escritor/Editor Técnico do - LFS (Dicas e Patches); Líder do Projeto HLFS; Editor do BLFS; - Mantenedor do Projeto Dicas e Patches - * [704]Matthew Burgess – Líder - de Projeto do LFS; Escritor/Editor Técnico do LFS - * [705]Nathan Coulson – - Mantenedor de Scripts de Inicialização do LFS - * Timothy Bauscher - * Robert Briggs - * Ian Chilton - * [706]Jeroen Coumans – - Desenvolvedor de Sítio da Web; Mantenedor de FAQ - * [707]Manuel Canales Esparcia – - Mantenedor de XML e XSL do LFS/BLFS/HLFS - * Alex Groenewoud – Escritor Técnico do LFS - * Marc Heerdink - * [708]Jeremy Huntwork – - Escritor Técnico do LFS; Mantenedor de LiveCD do LFS - * [709]Bryan Kadzban – Escritor - Técnico do LFS - * Mark Hymers - * Seth W. Klein – Mantenedor do FAQ - * [710]Nicholas Leippe – - Mantenedor da Wiki - * [711]Anderson Lizardo – - Mantenedor de Scripts de Infraestrutura de Sítio Web - * [712]Randy McMurchy – Líder de - Projeto do BLFS; Editor do LFS - * [713]Dan Nicholson – - Editor do LFS e BLFS - * [714]Alexander E. Patrakov - – Escritor Técnico do LFS; Editor de Internacionalização do LFS; - Mantenedor de Live CD do LFS - * Simon Perreault - * [715]Scot Mc Pherson – - Mantenedor do Gateway NNTP do LFS - * [716]Douglas R. Reno – Editor - do Systemd - * [717]Ryan Oliver – Colíder de - Projeto do CLFS - * [718]Greg Schafer – Escritor - Técnico do LFS e Arquiteto do Método de Construção de Habilitação - de 64 bits de Próxima Geração - * Jesse Tie-Ten-Quee – Escritor Técnico do LFS - * [719]James Robertson – - Mantenedor do Bugzilla - * [720]Tushar Teredesai – Editor - do Livro BLFS; Líder de Projeto de Dicas e Patches - * [721]Jeremy Utley – Escritor - Técnico do LFS; Mantenedor do Bugzilla; Mantenedor de Scripts de - Inicialização do LFS - * [722]Zack Winkles – Escritor Técnico do - LFS - -Apêndice C. Dependências - - Cada pacote construído no LFS depende de um ou mais outros pacotes para - construir e instalar adequadamente. Alguns pacotes até participam em - dependências circulares, isto é, o primeiro pacote depende do segundo o - qual, na sequência, depende do primeiro. Por causa dessas dependências, - a ordem na qual pacotes são construídos no LFS é muito importante. O - propósito desta página é o de documentar as dependências de cada pacote - construído no LFS. - - Para cada pacote que é construído, existem três, e as vezes até cinco - tipos de dependências listadas abaixo. A primeira lista que outros - pacotes necessitam estar disponíveis para compilar e instalar o pacote - em questão. A segunda lista os pacotes que precisam estar disponíveis - quando quaisquer aplicativos ou bibliotecas oriundos do pacote forem - usados em tempo de execução. A terceira lista que pacotes, em adição - àqueles na primeira lista, necessitam estar disponíveis para executar - as suítes de teste. A quarta lista de dependências são pacotes que - exigem que esse pacote esteja construído e instalado no local final - dele antes que eles sejam construídos e instalados. Na maioria dos - casos, isso é porque esses pacotes codificarão rigidamente caminhos - para binários dentro dos scripts deles. Se não for construído em uma - certa ordem, [então] isso poderia resultar em caminhos como - /tools/bin/[binário] sendo colocados dentro de scripts instalados para - o sistema final. Isso obviamente não é desejável. - - A última lista de dependências são pacotes opcionais que não são - endereçados no LFS, porém poderiam ser úteis para a(o) usuária(o). - Esses pacotes talvez tenham dependências obrigatórias ou opcionais - adicionais deles próprios. Para essas dependências, a prática - recomendada é a de instalá-las depois de completar o livro LFS e então - voltar e reconstruir o pacote LFS. Em muitos casos, a reinstalação é - endereçada no BLFS. - -Acl - - Instalação depende de: Attr, Bash, Binutils, Coreutils, GCC, Gettext, - Grep, M4, Make, Perl, Sed e Texinfo - Exigido em tempo de execução: Attr e Glibc - Suíte de teste depende de: Automake, Diffutils, Findutils e Libtool - Precisa ser instalado antes de: Coreutils, Sed, Tar e Vim - Dependências opcionais: Nenhuma - -Attr - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, M4, Make, Perl, Sed e Texinfo - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Automake, Diffutils, Findutils e Libtool - Precisa ser instalado antes de: Acl e Libcap - Dependências opcionais: Nenhuma - -Autoconf - - Instalação depende de: Bash, Coreutils, Grep, M4, Make, Perl, Sed e - Texinfo - Exigido em tempo de execução: Bash, Coreutils, Grep, M4, Make, Sed e - Texinfo - Suíte de teste depende de: Automake, Diffutils, Findutils, GCC e - Libtool - Precisa ser instalado antes de: Automake - Dependências opcionais: [723]Emacs - -Automake - - Instalação depende de: Autoconf, Bash, Coreutils, Gettext, Grep, M4, - Make, Perl, Sed e Texinfo - Exigido em tempo de execução: Bash, Coreutils, Grep, M4, Sed e Texinfo - Suíte de teste depende de: Binutils, Bison, Bzip2, DejaGNU, Diffutils, - Expect, Findutils, Flex, GCC, Gettext, Gzip, Libtool e Tar - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Bash - - Instalação depende de: Bash, Binutils, Bison, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, Make, Ncurses, Patch, Readline, Sed e Texinfo - Exigido em tempo de execução: Glibc, Ncurses e Readline - Suíte de teste depende de: Expect e Shadow - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [724]Xorg - -Bc - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Grep e - Make - Exigido em tempo de execução: Glibc, Ncurses e Readline - Suíte de teste depende de: Gawk - Precisa ser instalado antes de: Linux - Dependências opcionais: Nenhuma - -Binutils - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, File, - Flex, Gawk, GCC, Glibc, Grep, Make, Perl, Sed, Texinfo e Zlib - Exigido em tempo de execução: Glibc e Zlib - Suíte de teste depende de: DejaGNU e Expect - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [725]Elfutils - -Bison - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, M4, Make, Perl e Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Diffutils, Findutils e Flex - Precisa ser instalado antes de: Kbd e Tar - Dependências opcionais: [726]Doxygen - -Bzip2 - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, - Glibc, Make e Patch - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: File - Dependências opcionais: Nenhuma - -Check - - Instalação depende de: Gawk, GCC, Grep, Make, Sed e Texinfo - Exigido em tempo de execução: Bash e Gawk - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Coreutils - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - GMP, Grep, Libcap, Make, OpenSSL, Patch, Perl, Sed e Texinfo - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Diffutils, E2fsprogs, Findutils, Shadow e - Util-linux - Precisa ser instalado antes de: Bash, Diffutils, Eudev, Findutils e - Man-DB - Dependências opcionais: [727]Expect.pm e [728]IO::Tty - -DejaGNU - - Instalação depende de: Bash, Coreutils, Diffutils, Expect, GCC, Grep, - Make, Sed e Texinfo - Exigido em tempo de execução: Expect e Bash - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Diffutils - - Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, Gettext, - Glibc, Grep, Make, Sed e Texinfo - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Perl - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -E2fsprogs - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, - Glibc, Grep, Gzip, Make, Sed, Texinfo e Util-linux - Exigido em tempo de execução: Glibc e Util-linux - Suíte de teste depende de: Procps-ng e Psmisc - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Eudev - - Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, Glibc, - Grep, Gperf, Make, Sed e Util-linux - Exigido em tempo de execução: Glibc, Kmod, Xz, Util-linux e Zlib - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Expat - - Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, Glibc, - Grep, Make e Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Python e XML::Parser - Dependências opcionais: Nenhuma - -Expect - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, - Glibc, Grep, Make, Patch, Sed e Tcl - Exigido em tempo de execução: Glibc e Tcl - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [729]Tk - -File - - Instalação depende de: Bash, Binutils, Bzip2, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, Make, Sed, Xz e Zlib - Exigido em tempo de execução: Glibc, Bzip2, Xz e Zlib - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [730]libseccomp - -Findutils - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, Make, Sed e Texinfo - Exigido em tempo de execução: Bash e Glibc - Suíte de teste depende de: DejaGNU, Diffutils e Expect - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Flex - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, M4, Make, Patch, Sed e Texinfo - Exigido em tempo de execução: Bash, Glibc e M4 - Suíte de teste depende de: Bison e Gawk - Precisa ser instalado antes de: Binutils, IProute2, Kbd, Kmod e Man-DB - Dependências opcionais: Nenhuma - -Gawk - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - GMP, Grep, Make, MPFR, Patch, Readline, Sed e Texinfo - Exigido em tempo de execução: Bash, Glibc e Mpfr - Suíte de teste depende de: Diffutils - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [731]libsigsegv - -GCC - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Findutils, - Gawk, GCC, Gettext, Glibc, GMP, Grep, M4, Make, MPC, MPFR, Patch, Perl, - Sed, Tar, Texinfo e Zstd - Exigido em tempo de execução: Bash, Binutils, Glibc, Mpc e Python - Suíte de teste depende de: DejaGNU, Expect e Shadow - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [732]GNAT e [733]ISL - -GDBM - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, Grep, - Make e Sed - Exigido em tempo de execução: Bash, Glibc e Readline - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Gettext - - Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, Glibc, - Grep, Make, Ncurses, Sed e Texinfo - Exigido em tempo de execução: Acl, Bash, Gcc e Glibc - Suíte de teste depende de: Diffutils, Perl e Tcl - Precisa ser instalado antes de: Automake e Bison - Dependências opcionais: Nenhuma - -Glibc - - Instalação depende de: Bash, Binutils, Bison, Coreutils, Diffutils, - Gawk, GCC, Gettext, Grep, Gzip, Cabeçalhos da API do Linux, Make, Perl, - Python, Sed e Texinfo - Exigido em tempo de execução: Nenhuma - Suíte de teste depende de: File - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -GMP - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, - Glibc, Grep, M4, Make, Sed e Texinfo - Exigido em tempo de execução: GCC e Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: MPFR e GCC - Dependências opcionais: Nenhuma - -Gperf - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc e Make - Exigido em tempo de execução: GCC e Glibc - Suíte de teste depende de: Diffutils e Expect - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Grep - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, - Gettext, Glibc, Grep, Make, Patch, Sed e Texinfo - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Gawk - Precisa ser instalado antes de: Man-DB - Dependências opcionais: [734]PCRE e [735]libsigsegv - -Groff - - Instalação depende de: Bash, Binutils, Bison, Coreutils, Gawk, GCC, - Glibc, Grep, Make, Patch, Sed e Texinfo - Exigido em tempo de execução: GCC, Glibc e Perl - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Man-DB e Perl - Dependências opcionais: [736]ghostscript e [737]Uchardet - -GRUB - - Instalação depende de: Bash, Binutils, Bison, Coreutils, Diffutils, - GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed, Texinfo e Xz - Exigido em tempo de execução: Bash, GCC, Gettext, Glibc, Xz e Sed - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Gzip - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Grep, - Make, Sed e Texinfo - Exigido em tempo de execução: Bash e Glibc - Suíte de teste depende de: Diffutils e Less - Precisa ser instalado antes de: Man-DB - Dependências opcionais: Nenhuma - -Iana-Etc - - Instalação depende de: Coreutils - Exigido em tempo de execução: Nenhuma - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Perl - Dependências opcionais: Nenhuma - -Inetutils - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Grep, - Make, Ncurses, Patch, Sed, Texinfo e Zlib - Exigido em tempo de execução: GCC, Glibc, Ncurses e Readline - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Tar - Dependências opcionais: Nenhuma - -Intltool - - Instalação depende de: Bash, Gawk, Glibc, Make, Perl, Sed e XML::Parser - Exigido em tempo de execução: Autoconf, Automake, Bash, Glibc, Grep, - Perl e Sed - Suíte de teste depende de: Perl - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -IProute2 - - Instalação depende de: Bash, Bison, Coreutils, Flex, GCC, Glibc, Make, - Libcap, Libelf, Cabeçalhos da API do Linux e Zlib - Exigido em tempo de execução: Bash, Coreutils, Glibc, Libcap, Libelf e - Zlib - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [738]Berkeley DB e [739]iptables - -Jinja2 - - Instalação depende de: MarkupSafe e Python - Exigido em tempo de execução: MarkupSafe e Python - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Systemd - Dependências opcionais: Nenhuma - -Kbd - - Instalação depende de: Bash, Binutils, Bison, Check, Coreutils, Flex, - GCC, Gettext, Glibc, Gzip, Make, Patch e Sed - Exigido em tempo de execução: Bash, Coreutils e Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Kmod - - Instalação depende de: Bash, Binutils, Bison, Coreutils, Flex, GCC, - Gettext, Glibc, Gzip, Make, OpenSSL, Pkg-config, Sed, Xz e Zlib - Exigido em tempo de execução: Glibc, Xz e Zlib - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Eudev - Dependências opcionais: Nenhuma - -Less - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, - Glibc, Grep, Make, Ncurses e Sed - Exigido em tempo de execução: Glibc e Ncurses - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Gzip - Dependências opcionais: [740]PCRE - -Libcap - - Instalação depende de: Attr, Bash, Binutils, Coreutils, GCC, Glibc, - Perl, Make e Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: IProute2 e Shadow - Dependências opcionais: [741]Linux-PAM - -Libelf - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc e Make - Exigido em tempo de execução: Glibc e Zlib - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: IProute2 e Linux - Dependências opcionais: Nenhuma - -Libffi - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Make e - Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: DejaGnu - Precisa ser instalado antes de: Python - Dependências opcionais: Nenhuma - -Libpipeline - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, - Glibc, Grep, Make, Sed e Texinfo - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Check - Precisa ser instalado antes de: Man-DB - Dependências opcionais: Nenhuma - -Libtool - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, - Glibc, Grep, Make, Sed e Texinfo - Exigido em tempo de execução: Autoconf, Automake, Bash, Binutils, - Coreutils, File, GCC, Glibc, Grep, Make e Sed - Suíte de teste depende de: Autoconf, Automake e Findutils - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Linux - - Instalação depende de: Bash, Bc, Binutils, Coreutils, Diffutils, - Findutils, GCC, Glibc, Grep, Gzip, Kmod, Libelf, Make, Ncurses, - OpenSSL, Perl e Sed - Exigido em tempo de execução: Nenhuma - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [742]cpio - -Cabeçalhos da API do Linux - - Instalação depende de: Bash, Binutils, Coreutils, Findutils, GCC, - Glibc, Grep, Gzip, Make, Perl e Sed - Exigido em tempo de execução: Nenhuma - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -M4 - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Grep, - Make, Sed e Texinfo - Exigido em tempo de execução: Bash e Glibc - Suíte de teste depende de: Diffutils - Precisa ser instalado antes de: Autoconf e Bison - Dependências opcionais: [743]libsigsegv - -Make - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, Make, Sed e Texinfo - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Perl e Procps-ng - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [744]Guile - -Man-DB - - Instalação depende de: Bash, Binutils, Bzip2, Coreutils, Flex, GCC, - GDBM, Gettext, Glibc, Grep, Groff, Gzip, Less, Libpipeline, Make, Sed e - Xz - Exigido em tempo de execução: Bash, GDBM, Groff, Glibc, Gzip, Less, - Libpipeline e Zlib - Suíte de teste depende de: Util-linux - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [745]libseccomp - -Man-Pages - - Instalação depende de: Bash, Coreutils e Make - Exigido em tempo de execução: Nenhuma - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -MarkupSafe - - Instalação depende de: Python - Exigido em tempo de execução: Python - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Jinja2 - Dependências opcionais: Nenhuma - -Meson - - Instalação depende de: Ninja e Python - Exigido em tempo de execução: Python - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Systemd - Dependências opcionais: Nenhuma - -MPC - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, - Glibc, Grep, GMP, Make, MPFR, Sed e Texinfo - Exigido em tempo de execução: Glibc, GMP e MPFR - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: GCC - Dependências opcionais: Nenhuma - -MPFR - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, - Glibc, Grep, GMP, Make, Sed e Texinfo - Exigido em tempo de execução: Glibc e GMP - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Gawk e GCC - Dependências opcionais: Nenhuma - -Ncurses - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, - Glibc, Grep, Make, Patch e Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Bash, GRUB, Inetutils, Less, Procps-ng, - Psmisc, Readline, Texinfo, Util-linux e Vim - Dependências opcionais: Nenhuma - -Ninja - - Instalação depende de: Binutils, Coreutils, GCC e Python - Exigido em tempo de execução: GCC e Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Meson - Dependências opcionais: [746]Asciidoc, [747]Doxygen, [748]Emacs e - [749]re2c - -OpenSSL - - Instalação depende de: Binutils, Coreutils, GCC, Make e Perl - Exigido em tempo de execução: Glibc e Perl - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Coreutils, Kmod e Linux - Dependências opcionais: Nenhuma - -Patch - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Grep, - Make e Sed - Exigido em tempo de execução: Glibc e Patch - Suíte de teste depende de: Diffutils - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [750]Ed - -Perl - - Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, GDBM, - Glibc, Grep, Groff, Make, Sed e Zlib - Exigido em tempo de execução: GDBM e Glibc - Suíte de teste depende de: Iana-Etc, Less e Procps-ng - Precisa ser instalado antes de: Autoconf - Dependências opcionais: [751]Berkeley DB - -Pkg-config - - Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, Glibc, - Grep, Make, Popt e Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Kmod - Dependências opcionais: [752]Glib2 - -Procps-ng - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Make e - Ncurses - Exigido em tempo de execução: Glibc - Suíte de teste depende de: DejaGNU - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Psmisc - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, Make, Ncurses e Sed - Exigido em tempo de execução: Glibc e Ncurses - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Python - - Instalação depende de: Bash, Binutils, Coreutils, Expat, GCC, Gdbm, - Gettext, Glibc, Grep, Libffi, Make, Ncurses, OpenSSL, Sed e Util-linux - Exigido em tempo de execução: Bzip2, Expat, Gdbm, Glibc, Libffi, - Ncurses, OpenSSL e Zlib - Suíte de teste depende de: GDB e Valgrind - Precisa ser instalado antes de: Ninja - Dependências opcionais: [753]Berkeley DB, [754]libnsl, [755]SQLite e - [756]Tk - -Readline - - Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, Glibc, - Grep, Make, Ncurses, Patch, Sed e Texinfo - Exigido em tempo de execução: Glibc e Ncurses - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Bash e Gawk - Dependências opcionais: Nenhuma - -Sed - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, Make, Sed e Texinfo - Exigido em tempo de execução: Acl, Attr e Glibc - Suíte de teste depende de: Diffutils e Gawk - Precisa ser instalado antes de: E2fsprogs, File, Libtool e Shadow - Dependências opcionais: Nenhuma - -Shadow - - Instalação depende de: Acl, Attr, Bash, Binutils, Coreutils, Diffutils, - Findutils, Gawk, GCC, Gettext, Glibc, Grep, Libcap, Make e Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Coreutils - Dependências opcionais: [757]CrackLib e [758]Linux-PAM - -Sysklogd - - Instalação depende de: Binutils, Coreutils, GCC, Glibc, Make e Patch - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Systemd - - Instalação depende de: Acl, Attr, Bash, Binutils, Coreutils, Diffutils, - Expat, Gawk, GCC, Glibc, Gperf, Grep, Jinja2, Libcap, Meson, Sed, - Util-linux e Zstd - Exigido em tempo de execução: Acl, Attr, Glibc, Libcap e Util-linux - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [759]btrfs-progs, [760]cURL, [761]cryptsetup, - [762]docbook-xml, [763]docbook-xsl-nons, [764]elfutils, [765]Git, - [766]gnu-efi, [767]GnuTLS, [768]iptables, [769]kexec-tools, - [770]libfido2, [771]libgcrypt, [772]libidn2, [773]Libmicrohttpd, - [774]libpwquality, [775]libseccomp, [776]libxkbcommon, [777]libxslt, - [778]Linux-PAM, [779]lxml, [780]LZ4, [781]make-ca, [782]p11-kit, - [783]PCRE2, [784]Polkit, [785]qemu, [786]qrencode, [787]quota-tools, - [788]rsync, [789]Sphinx, [790]tpm2-tss, [791]Valgrind e [792]zsh - -Sysvinit - - Instalação depende de: Binutils, Coreutils, GCC, Glibc, Make e Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Tar - - Instalação depende de: Acl, Attr, Bash, Binutils, Bison, Coreutils, - GCC, Gettext, Glibc, Grep, Inetutils, Make, Sed e Texinfo - Exigido em tempo de execução: Acl, Attr, Bzip2, Glibc, Gzip e Xz - Suíte de teste depende de: Autoconf, Diffutils, Findutils, Gawk e Gzip - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Tcl - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, - Glibc, Grep, Make e Sed - Exigido em tempo de execução: Glibc e Zlib - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Texinfo - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, Make, Ncurses, Patch e Sed - Exigido em tempo de execução: Glibc e Ncurses - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Util-linux - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Eudev, - Findutils, Gawk, GCC, Gettext, Glibc, Grep, Libcap, Make, Ncurses, Sed - e Zlib - Exigido em tempo de execução: Glibc, Libcap, Ncurses, Readline e Zlib - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [793]Linux-PAM e [794]smartmontools - -Vim - - Instalação depende de: Acl, Attr, Bash, Binutils, Coreutils, Diffutils, - GCC, Glibc, Grep, Make, Ncurses e Sed - Exigido em tempo de execução: Acl, Attr, Glibc, Python, Ncurses e Tcl - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [795]Xorg, [796]GTK+2, [797]LessTif, [798]Ruby - e [799]GPM - -XML::Parser - - Instalação depende de: Bash, Binutils, Coreutils, Expat, GCC, Glibc, - Make e Perl - Exigido em tempo de execução: Expat, Glibc e Perl - Suíte de teste depende de: Perl - Precisa ser instalado antes de: Intltool - Dependências opcionais: Nenhuma - -Xz - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc - e Make - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Eudev, File, GRUB, Kmod e Man-DB - Dependências opcionais: Nenhuma - -Zlib - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Make e - Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: File, Kmod, Perl e Util-linux - Dependências opcionais: Nenhuma - -Zstd - - Instalação depende de: Binutils, Coreutils, GCC, Glibc, Gzip, Make e Xz - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: GCC e Systemd - Dependências opcionais: [800]LZ4 - -Apêndice D. Scripts de inicialização e configuração do sistema -versão-20210608 - - Os scripts neste anexo estão listados pelo diretório onde eles - normalmente residem. A ordem é /etc/rc.d/init.d; /etc/sysconfig; - /etc/sysconfig/network-devices; e - /etc/sysconfig/network-devices/services. Dentro de cada seção, os - arquivos estão listados na ordem em que eles normalmente são chamados. - -D.1. /etc/rc.d/init.d/rc - - O script rc é o primeiro script chamado pelo init e inicia o processo - de inicialização. -#!/bin/bash -######################################################################## -# Begin rc -# -# Description : Main Run Level Control Script -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# : DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -. /lib/lsb/init-functions - -print_error_msg() -{ - log_failure_msg - # $i is set when called - MSG="FAILURE:\n\nYou should not be reading this error message.\n\n" - MSG="${MSG}It means that an unforeseen error took place in\n" - MSG="${MSG}${i},\n" - MSG="${MSG}which exited with a return value of ${error_value}.\n" - - MSG="${MSG}If you're able to track this error down to a bug in one of\n" - MSG="${MSG}the files provided by the ${DISTRO_MINI} book,\n" - MSG="${MSG}please be so kind to inform us at ${DISTRO_CONTACT}.\n" - log_failure_msg "${MSG}" - - log_info_msg "Press Enter to continue..." - wait_for_user -} - -check_script_status() -{ - # $i is set when called - if [ ! -f ${i} ]; then - log_warning_msg "${i} is not a valid symlink." - SCRIPT_STAT="1" - fi - - if [ ! -x ${i} ]; then - log_warning_msg "${i} is not executable, skipping." - SCRIPT_STAT="1" - fi -} - -run() -{ - if [ -z $interactive ]; then - ${1} ${2} - return $? - fi - - while true; do - read -p "Run ${1} ${2} (Yes/no/continue)? " -n 1 runit - echo - - case ${runit} in - c | C) - interactive="" - ${i} ${2} - ret=${?} - break; - ;; - - n | N) - return 0 - ;; - - y | Y) - ${i} ${2} - ret=${?} - break - ;; - esac - done - - return $ret -} - -# Read any local settings/overrides -[ -r /etc/sysconfig/rc.site ] && source /etc/sysconfig/rc.site - -DISTRO=${DISTRO:-"Linux From Scratch"} -DISTRO_CONTACT=${DISTRO_CONTACT:-"lfs-dev@linuxfromscratch.org (Registration req -uired)"} -DISTRO_MINI=${DISTRO_MINI:-"LFS"} -IPROMPT=${IPROMPT:-"no"} - -# These 3 signals will not cause our script to exit -trap "" INT QUIT TSTP - -[ "${1}" != "" ] && runlevel=${1} - -if [ "${runlevel}" == "" ]; then - echo "Usage: ${0} " >&2 - exit 1 -fi - -previous=${PREVLEVEL} -[ "${previous}" == "" ] && previous=N - -if [ ! -d /etc/rc.d/rc${runlevel}.d ]; then - log_info_msg "/etc/rc.d/rc${runlevel}.d does not exist.\n" - exit 1 -fi - -if [ "$runlevel" == "6" -o "$runlevel" == "0" ]; then IPROMPT="no"; fi - -# Note: In ${LOGLEVEL:-7}, it is ':' 'dash' '7', not minus 7 -if [ "$runlevel" == "S" ]; then - [ -r /etc/sysconfig/console ] && source /etc/sysconfig/console - dmesg -n "${LOGLEVEL:-7}" -fi - -if [ "${IPROMPT}" == "yes" -a "${runlevel}" == "S" ]; then - # The total length of the distro welcome string, without escape codes - wlen=${wlen:-$(echo "Welcome to ${DISTRO}" | wc -c )} - welcome_message=${welcome_message:-"Welcome to ${INFO}${DISTRO}${NORMAL}"} - - # The total length of the interactive string, without escape codes - ilen=${ilen:-$(echo "Press 'I' to enter interactive startup" | wc -c )} - i_message=${i_message:-"Press '${FAILURE}I${NORMAL}' to enter interactive sta -rtup"} - - - # dcol and icol are spaces before the message to center the message - # on screen. itime is the amount of wait time for the user to press a key - wcol=$(( ( ${COLUMNS} - ${wlen} ) / 2 )) - icol=$(( ( ${COLUMNS} - ${ilen} ) / 2 )) - itime=${itime:-"3"} - - echo -e "\n\n" - echo -e "\\033[${wcol}G${welcome_message}" - echo -e "\\033[${icol}G${i_message}${NORMAL}" - echo "" - read -t "${itime}" -n 1 interactive 2>&1 > /dev/null -fi - -# Make lower case -[ "${interactive}" == "I" ] && interactive="i" -[ "${interactive}" != "i" ] && interactive="" - -# Read the state file if it exists from runlevel S -[ -r /run/interactive ] && source /run/interactive - -# Attempt to stop all services started by the previous runlevel, -# and killed in this runlevel -if [ "${previous}" != "N" ]; then - for i in $(ls -v /etc/rc.d/rc${runlevel}.d/K* 2> /dev/null) - do - check_script_status - if [ "${SCRIPT_STAT}" == "1" ]; then - SCRIPT_STAT="0" - continue - fi - - suffix=${i#/etc/rc.d/rc$runlevel.d/K[0-9][0-9]} - prev_start=/etc/rc.d/rc$previous.d/S[0-9][0-9]$suffix - sysinit_start=/etc/rc.d/rcS.d/S[0-9][0-9]$suffix - - if [ "${runlevel}" != "0" -a "${runlevel}" != "6" ]; then - if [ ! -f ${prev_start} -a ! -f ${sysinit_start} ]; then - MSG="WARNING:\n\n${i} can't be " - MSG="${MSG}executed because it was not " - MSG="${MSG}not started in the previous " - MSG="${MSG}runlevel (${previous})." - log_warning_msg "$MSG" - continue - fi - fi - - run ${i} stop - error_value=${?} - - if [ "${error_value}" != "0" ]; then print_error_msg; fi - done -fi - -if [ "${previous}" == "N" ]; then export IN_BOOT=1; fi - -if [ "$runlevel" == "6" -a -n "${FASTBOOT}" ]; then - touch /fastboot -fi - - -# Start all functions in this runlevel -for i in $( ls -v /etc/rc.d/rc${runlevel}.d/S* 2> /dev/null) -do - if [ "${previous}" != "N" ]; then - suffix=${i#/etc/rc.d/rc$runlevel.d/S[0-9][0-9]} - stop=/etc/rc.d/rc$runlevel.d/K[0-9][0-9]$suffix - prev_start=/etc/rc.d/rc$previous.d/S[0-9][0-9]$suffix - - [ -f ${prev_start} -a ! -f ${stop} ] && continue - fi - - check_script_status - if [ "${SCRIPT_STAT}" == "1" ]; then - SCRIPT_STAT="0" - continue - fi - - case ${runlevel} in - 0|6) - run ${i} stop - ;; - *) - run ${i} start - ;; - esac - - error_value=${?} - - if [ "${error_value}" != "0" ]; then print_error_msg; fi -done - -# Store interactive variable on switch from runlevel S and remove if not -if [ "${runlevel}" == "S" -a "${interactive}" == "i" ]; then - echo "interactive=\"i\"" > /run/interactive -else - rm -f /run/interactive 2> /dev/null -fi - -# Copy the boot log on initial boot only -if [ "${previous}" == "N" -a "${runlevel}" != "S" ]; then - cat $BOOTLOG >> /var/log/boot.log - - # Mark the end of boot - echo "--------" >> /var/log/boot.log - - # Remove the temporary file - rm -f $BOOTLOG 2> /dev/null -fi - -# End rc - -D.2. /lib/lsb/init-functions - -#!/bin/sh -######################################################################## -# -# Begin /lib/lsb/init-funtions -# -# Description : Run Level Control Functions -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# : DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -# Notes : With code based on Matthias Benkmann's simpleinit-msb -# http://winterdrache.de/linux/newboot/index.html -# -# The file should be located in /lib/lsb -# -######################################################################## - -## Environmental setup -# Setup default values for environment -umask 022 -export PATH="/bin:/usr/bin:/sbin:/usr/sbin" - -## Set color commands, used via echo -# Please consult `man console_codes for more information -# under the "ECMA-48 Set Graphics Rendition" section -# -# Warning: when switching from a 8bit to a 9bit font, -# the linux console will reinterpret the bold (1;) to -# the top 256 glyphs of the 9bit font. This does -# not affect framebuffer consoles - -NORMAL="\\033[0;39m" # Standard console grey -SUCCESS="\\033[1;32m" # Success is green -WARNING="\\033[1;33m" # Warnings are yellow -FAILURE="\\033[1;31m" # Failures are red -INFO="\\033[1;36m" # Information is light cyan -BRACKET="\\033[1;34m" # Brackets are blue - -# Use a colored prefix -BMPREFIX=" " -SUCCESS_PREFIX="${SUCCESS} * ${NORMAL} " -FAILURE_PREFIX="${FAILURE}*****${NORMAL} " -WARNING_PREFIX="${WARNING} *** ${NORMAL} " -SKIP_PREFIX="${INFO} S ${NORMAL}" - -SUCCESS_SUFFIX="${BRACKET}[${SUCCESS} OK ${BRACKET}]${NORMAL}" -FAILURE_SUFFIX="${BRACKET}[${FAILURE} FAIL ${BRACKET}]${NORMAL}" -WARNING_SUFFIX="${BRACKET}[${WARNING} WARN ${BRACKET}]${NORMAL}" -SKIP_SUFFIX="${BRACKET}[${INFO} SKIP ${BRACKET}]${NORMAL}" - -BOOTLOG=/run/bootlog -KILLDELAY=3 -SCRIPT_STAT="0" - -# Set any user specified environment variables e.g. HEADLESS -[ -r /etc/sysconfig/rc.site ] && . /etc/sysconfig/rc.site - -## Screen Dimensions -# Find current screen size -if [ -z "${COLUMNS}" ]; then - COLUMNS=$(stty size) - COLUMNS=${COLUMNS##* } -fi - -# When using remote connections, such as a serial port, stty size returns 0 -if [ "${COLUMNS}" = "0" ]; then - COLUMNS=80 -fi - -## Measurements for positioning result messages -COL=$((${COLUMNS} - 8)) -WCOL=$((${COL} - 2)) - -## Set Cursor Position Commands, used via echo -SET_COL="\\033[${COL}G" # at the $COL char -SET_WCOL="\\033[${WCOL}G" # at the $WCOL char -CURS_UP="\\033[1A\\033[0G" # Up one line, at the 0'th char -CURS_ZERO="\\033[0G" - -################################################################################ -# start_daemon() # -# Usage: start_daemon [-f] [-n nicelevel] [-p pidfile] pathname [args...] # -# # -# Purpose: This runs the specified program as a daemon # -# # -# Inputs: -f: (force) run the program even if it is already running. # -# -n nicelevel: specify a nice level. See 'man nice(1)'. # -# -p pidfile: use the specified file to determine PIDs. # -# pathname: the complete path to the specified program # -# args: additional arguments passed to the program (pathname) # -# # -# Return values (as defined by LSB exit codes): # -# 0 - program is running or service is OK # -# 1 - generic or unspecified error # -# 2 - invalid or excessive argument(s) # -# 5 - program is not installed # -################################################################################ -start_daemon() -{ - local force="" - local nice="0" - local pidfile="" - local pidlist="" - local retval="" - - # Process arguments - while true - do - case "${1}" in - - -f) - force="1" - shift 1 - ;; - - -n) - nice="${2}" - shift 2 - ;; - - -p) - pidfile="${2}" - shift 2 - ;; - - -*) - return 2 - ;; - - *) - program="${1}" - break - ;; - esac - done - - # Check for a valid program - if [ ! -e "${program}" ]; then return 5; fi - - # Execute - if [ -z "${force}" ]; then - if [ -z "${pidfile}" ]; then - # Determine the pid by discovery - pidlist=`pidofproc "${1}"` - retval="${?}" - else - # The PID file contains the needed PIDs - # Note that by LSB requirement, the path must be given to pidofproc, - # however, it is not used by the current implementation or standard. - pidlist=`pidofproc -p "${pidfile}" "${1}"` - retval="${?}" - fi - - # Return a value ONLY - # It is the init script's (or distribution's functions) responsibilty - # to log messages! - case "${retval}" in - - 0) - # Program is already running correctly, this is a - # successful start. - return 0 - ;; - - 1) - # Program is not running, but an invalid pid file exists - # remove the pid file and continue - rm -f "${pidfile}" - ;; - - 3) - # Program is not running and no pidfile exists - # do nothing here, let start_deamon continue. - ;; - - *) - # Others as returned by status values shall not be interpreted - # and returned as an unspecified error. - return 1 - ;; - esac - fi - - # Do the start! - nice -n "${nice}" "${@}" -} - -################################################################################ -# killproc() # -# Usage: killproc [-p pidfile] pathname [signal] # -# # -# Purpose: Send control signals to running processes # -# # -# Inputs: -p pidfile, uses the specified pidfile # -# pathname, pathname to the specified program # -# signal, send this signal to pathname # -# # -# Return values (as defined by LSB exit codes): # -# 0 - program (pathname) has stopped/is already stopped or a # -# running program has been sent specified signal and stopped # -# successfully # -# 1 - generic or unspecified error # -# 2 - invalid or excessive argument(s) # -# 5 - program is not installed # -# 7 - program is not running and a signal was supplied # -################################################################################ -killproc() -{ - local pidfile - local program - local prefix - local progname - local signal="-TERM" - local fallback="-KILL" - local nosig - local pidlist - local retval - local pid - local delay="30" - local piddead - local dtime - - # Process arguments - while true; do - case "${1}" in - -p) - pidfile="${2}" - shift 2 - ;; - - *) - program="${1}" - if [ -n "${2}" ]; then - signal="${2}" - fallback="" - else - nosig=1 - fi - - # Error on additional arguments - if [ -n "${3}" ]; then - return 2 - else - break - fi - ;; - esac - done - - # Check for a valid program - if [ ! -e "${program}" ]; then return 5; fi - - # Check for a valid signal - check_signal "${signal}" - if [ "${?}" -ne "0" ]; then return 2; fi - - # Get a list of pids - if [ -z "${pidfile}" ]; then - # determine the pid by discovery - pidlist=`pidofproc "${1}"` - retval="${?}" - else - # The PID file contains the needed PIDs - # Note that by LSB requirement, the path must be given to pidofproc, - # however, it is not used by the current implementation or standard. - pidlist=`pidofproc -p "${pidfile}" "${1}"` - retval="${?}" - fi - - # Return a value ONLY - # It is the init script's (or distribution's functions) responsibilty - # to log messages! - case "${retval}" in - - 0) - # Program is running correctly - # Do nothing here, let killproc continue. - ;; - - 1) - # Program is not running, but an invalid pid file exists - # Remove the pid file. - - progname=${program##*/} - - if [[ -e "/run/${progname}.pid" ]]; then - pidfile="/run/${progname}.pid" - rm -f "${pidfile}" - fi - - # This is only a success if no signal was passed. - if [ -n "${nosig}" ]; then - return 0 - else - return 7 - fi - ;; - - 3) - # Program is not running and no pidfile exists - # This is only a success if no signal was passed. - if [ -n "${nosig}" ]; then - return 0 - else - return 7 - fi - ;; - - *) - # Others as returned by status values shall not be interpreted - # and returned as an unspecified error. - return 1 - ;; - esac - - # Perform different actions for exit signals and control signals - check_sig_type "${signal}" - - if [ "${?}" -eq "0" ]; then # Signal is used to terminate the program - - # Account for empty pidlist (pid file still exists and no - # signal was given) - if [ "${pidlist}" != "" ]; then - - # Kill the list of pids - for pid in ${pidlist}; do - - kill -0 "${pid}" 2> /dev/null - - if [ "${?}" -ne "0" ]; then - # Process is dead, continue to next and assume all is well - continue - else - kill "${signal}" "${pid}" 2> /dev/null - - # Wait up to ${delay}/10 seconds to for "${pid}" to - # terminate in 10ths of a second - - while [ "${delay}" -ne "0" ]; do - kill -0 "${pid}" 2> /dev/null || piddead="1" - if [ "${piddead}" = "1" ]; then break; fi - sleep 0.1 - delay="$(( ${delay} - 1 ))" - done - - # If a fallback is set, and program is still running, then - # use the fallback - if [ -n "${fallback}" -a "${piddead}" != "1" ]; then - kill "${fallback}" "${pid}" 2> /dev/null - sleep 1 - # Check again, and fail if still running - kill -0 "${pid}" 2> /dev/null && return 1 - fi - fi - done - fi - - # Check for and remove stale PID files. - if [ -z "${pidfile}" ]; then - # Find the basename of $program - prefix=`echo "${program}" | sed 's/[^/]*$//'` - progname=`echo "${program}" | sed "s@${prefix}@@"` - - if [ -e "/run/${progname}.pid" ]; then - rm -f "/run/${progname}.pid" 2> /dev/null - fi - else - if [ -e "${pidfile}" ]; then rm -f "${pidfile}" 2> /dev/null; fi - fi - - # For signals that do not expect a program to exit, simply - # let kill do its job, and evaluate kill's return for value - - else # check_sig_type - signal is not used to terminate program - for pid in ${pidlist}; do - kill "${signal}" "${pid}" - if [ "${?}" -ne "0" ]; then return 1; fi - done - fi -} - -################################################################################ -# pidofproc() # -# Usage: pidofproc [-p pidfile] pathname # -# # -# Purpose: This function returns one or more pid(s) for a particular daemon # -# # -# Inputs: -p pidfile, use the specified pidfile instead of pidof # -# pathname, path to the specified program # -# # -# Return values (as defined by LSB status codes): # -# 0 - Success (PIDs to stdout) # -# 1 - Program is dead, PID file still exists (remaining PIDs output) # -# 3 - Program is not running (no output) # -################################################################################ -pidofproc() -{ - local pidfile - local program - local prefix - local progname - local pidlist - local lpids - local exitstatus="0" - - # Process arguments - while true; do - case "${1}" in - - -p) - pidfile="${2}" - shift 2 - ;; - - *) - program="${1}" - if [ -n "${2}" ]; then - # Too many arguments - # Since this is status, return unknown - return 4 - else - break - fi - ;; - esac - done - - # If a PID file is not specified, try and find one. - if [ -z "${pidfile}" ]; then - # Get the program's basename - prefix=`echo "${program}" | sed 's/[^/]*$//'` - - if [ -z "${prefix}" ]; then - progname="${program}" - else - progname=`echo "${program}" | sed "s@${prefix}@@"` - fi - - # If a PID file exists with that name, assume that is it. - if [ -e "/run/${progname}.pid" ]; then - pidfile="/run/${progname}.pid" - fi - fi - - # If a PID file is set and exists, use it. - if [ -n "${pidfile}" -a -e "${pidfile}" ]; then - - # Use the value in the first line of the pidfile - pidlist=`/bin/head -n1 "${pidfile}"` - # This can optionally be written as 'sed 1q' to repalce 'head -n1' - # should LFS move /bin/head to /usr/bin/head - else - # Use pidof - pidlist=`pidof "${program}"` - fi - - # Figure out if all listed PIDs are running. - for pid in ${pidlist}; do - kill -0 ${pid} 2> /dev/null - - if [ "${?}" -eq "0" ]; then - lpids="${lpids}${pid} " - else - exitstatus="1" - fi - done - - if [ -z "${lpids}" -a ! -f "${pidfile}" ]; then - return 3 - else - echo "${lpids}" - return "${exitstatus}" - fi -} - -################################################################################ -# statusproc() # -# Usage: statusproc [-p pidfile] pathname # -# # -# Purpose: This function prints the status of a particular daemon to stdout # -# # -# Inputs: -p pidfile, use the specified pidfile instead of pidof # -# pathname, path to the specified program # -# # -# Return values: # -# 0 - Status printed # -# 1 - Input error. The daemon to check was not specified. # -################################################################################ -statusproc() -{ - local pidfile - local pidlist - - if [ "${#}" = "0" ]; then - echo "Usage: statusproc [-p pidfle] {program}" - exit 1 - fi - - # Process arguments - while true; do - case "${1}" in - - -p) - pidfile="${2}" - shift 2 - ;; - - *) - if [ -n "${2}" ]; then - echo "Too many arguments" - return 1 - else - break - fi - ;; - esac - done - - if [ -n "${pidfile}" ]; then - pidlist=`pidofproc -p "${pidfile}" $@` - else - pidlist=`pidofproc $@` - fi - - # Trim trailing blanks - pidlist=`echo "${pidlist}" | sed -r 's/ +$//'` - - base="${1##*/}" - - if [ -n "${pidlist}" ]; then - /bin/echo -e "${INFO}${base} is running with Process" \ - "ID(s) ${pidlist}.${NORMAL}" - else - if [ -n "${base}" -a -e "/run/${base}.pid" ]; then - /bin/echo -e "${WARNING}${1} is not running but" \ - "/run/${base}.pid exists.${NORMAL}" - else - if [ -n "${pidfile}" -a -e "${pidfile}" ]; then - /bin/echo -e "${WARNING}${1} is not running" \ - "but ${pidfile} exists.${NORMAL}" - else - /bin/echo -e "${INFO}${1} is not running.${NORMAL}" - fi - fi - fi -} - -################################################################################ -# timespec() # -# # -# Purpose: An internal utility function to format a timestamp # -# a boot log file. Sets the STAMP variable. # -# # -# Return value: Not used # -################################################################################ -timespec() -{ - STAMP="$(echo `date +"%b %d %T %:z"` `hostname`) " - return 0 -} - -################################################################################ -# log_success_msg() # -# Usage: log_success_msg ["message"] # -# # -# Purpose: Print a successful status message to the screen and # -# a boot log file. # -# # -# Inputs: $@ - Message # -# # -# Return values: Not used # -################################################################################ -log_success_msg() -{ - /bin/echo -n -e "${BMPREFIX}${@}" - /bin/echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${SET_COL}${SUCCESS_SUFFIX}" - - # Strip non-printable characters from log file - logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` - - timespec - /bin/echo -e "${STAMP} ${logmessage} OK" >> ${BOOTLOG} - - return 0 -} - -log_success_msg2() -{ - /bin/echo -n -e "${BMPREFIX}${@}" - /bin/echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${SET_COL}${SUCCESS_SUFFIX}" - - echo " OK" >> ${BOOTLOG} - - return 0 -} - -################################################################################ -# log_failure_msg() # -# Usage: log_failure_msg ["message"] # -# # -# Purpose: Print a failure status message to the screen and # -# a boot log file. # -# # -# Inputs: $@ - Message # -# # -# Return values: Not used # -################################################################################ -log_failure_msg() -{ - /bin/echo -n -e "${BMPREFIX}${@}" - /bin/echo -e "${CURS_ZERO}${FAILURE_PREFIX}${SET_COL}${FAILURE_SUFFIX}" - - # Strip non-printable characters from log file - - timespec - logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` - /bin/echo -e "${STAMP} ${logmessage} FAIL" >> ${BOOTLOG} - - return 0 -} - -log_failure_msg2() -{ - /bin/echo -n -e "${BMPREFIX}${@}" - /bin/echo -e "${CURS_ZERO}${FAILURE_PREFIX}${SET_COL}${FAILURE_SUFFIX}" - - echo "FAIL" >> ${BOOTLOG} - - return 0 -} - -################################################################################ -# log_warning_msg() # -# Usage: log_warning_msg ["message"] # -# # -# Purpose: Print a warning status message to the screen and # -# a boot log file. # -# # -# Return values: Not used # -################################################################################ -log_warning_msg() -{ - /bin/echo -n -e "${BMPREFIX}${@}" - /bin/echo -e "${CURS_ZERO}${WARNING_PREFIX}${SET_COL}${WARNING_SUFFIX}" - - # Strip non-printable characters from log file - logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` - timespec - /bin/echo -e "${STAMP} ${logmessage} WARN" >> ${BOOTLOG} - - return 0 -} - -log_skip_msg() -{ - /bin/echo -n -e "${BMPREFIX}${@}" - /bin/echo -e "${CURS_ZERO}${SKIP_PREFIX}${SET_COL}${SKIP_SUFFIX}" - - # Strip non-printable characters from log file - logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` - /bin/echo "SKIP" >> ${BOOTLOG} - - return 0 -} - -################################################################################ -# log_info_msg() # -# Usage: log_info_msg message # -# # -# Purpose: Print an information message to the screen and # -# a boot log file. Does not print a trailing newline character. # -# # -# Return values: Not used # -################################################################################ -log_info_msg() -{ - /bin/echo -n -e "${BMPREFIX}${@}" - - # Strip non-printable characters from log file - logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` - timespec - /bin/echo -n -e "${STAMP} ${logmessage}" >> ${BOOTLOG} - - return 0 -} - -log_info_msg2() -{ - /bin/echo -n -e "${@}" - - # Strip non-printable characters from log file - logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` - /bin/echo -n -e "${logmessage}" >> ${BOOTLOG} - - return 0 -} - -################################################################################ -# evaluate_retval() # -# Usage: Evaluate a return value and print success or failyure as appropriate # -# # -# Purpose: Convenience function to terminate an info message # -# # -# Return values: Not used # -################################################################################ -evaluate_retval() -{ - local error_value="${?}" - - if [ ${error_value} = 0 ]; then - log_success_msg2 - else - log_failure_msg2 - fi -} - -################################################################################ -# check_signal() # -# Usage: check_signal [ -{signal} ] # -# # -# Purpose: Check for a valid signal. This is not defined by any LSB draft, # -# however, it is required to check the signals to determine if the # -# signals chosen are invalid arguments to the other functions. # -# # -# Inputs: Accepts a single string value in the form of -{signal} # -# # -# Return values: # -# 0 - Success (signal is valid # -# 1 - Signal is not valid # -################################################################################ -check_signal() -{ - local valsig - - # Add error handling for invalid signals - valsig=" -ALRM -HUP -INT -KILL -PIPE -POLL -PROF -TERM -USR1 -USR2" - valsig="${valsig} -VTALRM -STKFLT -PWR -WINCH -CHLD -URG -TSTP -TTIN" - valsig="${valsig} -TTOU -STOP -CONT -ABRT -FPE -ILL -QUIT -SEGV -TRAP" - valsig="${valsig} -SYS -EMT -BUS -XCPU -XFSZ -0 -1 -2 -3 -4 -5 -6 -8 -9" - valsig="${valsig} -11 -13 -14 -15 " - - echo "${valsig}" | grep -- " ${1} " > /dev/null - - if [ "${?}" -eq "0" ]; then - return 0 - else - return 1 - fi -} - -################################################################################ -# check_sig_type() # -# Usage: check_signal [ -{signal} | {signal} ] # -# # -# Purpose: Check if signal is a program termination signal or a control signal # -# This is not defined by any LSB draft, however, it is required to # -# check the signals to determine if they are intended to end a # -# program or simply to control it. # -# # -# Inputs: Accepts a single string value in the form or -{signal} or {signal} # -# # -# Return values: # -# 0 - Signal is used for program termination # -# 1 - Signal is used for program control # -################################################################################ -check_sig_type() -{ - local valsig - - # The list of termination signals (limited to generally used items) - valsig=" -ALRM -INT -KILL -TERM -PWR -STOP -ABRT -QUIT -2 -3 -6 -9 -14 -15 " - - echo "${valsig}" | grep -- " ${1} " > /dev/null - - if [ "${?}" -eq "0" ]; then - return 0 - else - return 1 - fi -} - -################################################################################ -# wait_for_user() # -# # -# Purpose: Wait for the user to respond if not a headless system # -# # -################################################################################ -wait_for_user() -{ - # Wait for the user by default - [ "${HEADLESS=0}" = "0" ] && read ENTER - return 0 -} - -################################################################################ -# is_true() # -# # -# Purpose: Utility to test if a variable is true | yes | 1 # -# # -################################################################################ -is_true() -{ - [ "$1" = "1" ] || [ "$1" = "yes" ] || [ "$1" = "true" ] || [ "$1" = "y" ] || - [ "$1" = "t" ] -} - -# End /lib/lsb/init-functions - -D.3. /etc/rc.d/init.d/mountvirtfs - -#!/bin/sh -######################################################################## -# Begin mountvirtfs -# -# Description : Mount proc, sysfs, and run -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: mountvirtfs -# Required-Start: $first -# Should-Start: -# Required-Stop: -# Should-Stop: -# Default-Start: S -# Default-Stop: -# Short-Description: Mounts /sys and /proc virtual (kernel) filesystems. -# Mounts /run (tmpfs) and /dev (devtmpfs). -# Description: Mounts /sys and /proc virtual (kernel) filesystems. -# Mounts /run (tmpfs) and /dev (devtmpfs). -# X-LFS-Provided-By: LFS -### END INIT INFO - -. /lib/lsb/init-functions - -case "${1}" in - start) - # Make sure /run is available before logging any messages - if ! mountpoint /run >/dev/null; then - mount /run || failed=1 - fi - - mkdir -p /run/lock /run/shm - chmod 1777 /run/shm /run/lock - - log_info_msg "Mounting virtual file systems: ${INFO}/run" - - if ! mountpoint /proc >/dev/null; then - log_info_msg2 " ${INFO}/proc" - mount -o nosuid,noexec,nodev /proc || failed=1 - fi - - if ! mountpoint /sys >/dev/null; then - log_info_msg2 " ${INFO}/sys" - mount -o nosuid,noexec,nodev /sys || failed=1 - fi - - if ! mountpoint /dev >/dev/null; then - log_info_msg2 " ${INFO}/dev" - mount -o mode=0755,nosuid /dev || failed=1 - fi - - ln -sfn /run/shm /dev/shm - - (exit ${failed}) - evaluate_retval - exit $failed - ;; - - *) - echo "Usage: ${0} {start}" - exit 1 - ;; -esac - -# End mountvirtfs - -D.4. /etc/rc.d/init.d/modules - -#!/bin/sh -######################################################################## -# Begin modules -# -# Description : Module auto-loading script -# -# Authors : Zack Winkles -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: modules -# Required-Start: mountvirtfs -# Should-Start: -# Required-Stop: -# Should-Stop: -# Default-Start: S -# Default-Stop: -# Short-Description: Loads required modules. -# Description: Loads modules listed in /etc/sysconfig/modules. -# X-LFS-Provided-By: LFS -### END INIT INFO - -# Assure that the kernel has module support. -[ -e /proc/modules ] || exit 0 - -. /lib/lsb/init-functions - -case "${1}" in - start) - # Exit if there's no modules file or there are no - # valid entries - [ -r /etc/sysconfig/modules ] || exit 0 - egrep -qv '^($|#)' /etc/sysconfig/modules || exit 0 - - log_info_msg "Loading modules:" - - # Only try to load modules if the user has actually given us - # some modules to load. - - while read module args; do - - # Ignore comments and blank lines. - case "$module" in - ""|"#"*) continue ;; - esac - - # Attempt to load the module, passing any arguments provided. - modprobe ${module} ${args} >/dev/null - - # Print the module name if successful, otherwise take note. - if [ $? -eq 0 ]; then - log_info_msg2 " ${module}" - else - failedmod="${failedmod} ${module}" - fi - done < /etc/sysconfig/modules - - # Print a message about successfully loaded modules on the correct line. - log_success_msg2 - - # Print a failure message with a list of any modules that - # may have failed to load. - if [ -n "${failedmod}" ]; then - log_failure_msg "Failed to load modules:${failedmod}" - exit 1 - fi - ;; - - *) - echo "Usage: ${0} {start}" - exit 1 - ;; -esac - -exit 0 - -# End modules - -D.5. /etc/rc.d/init.d/udev - -#!/bin/sh -######################################################################## -# Begin udev -# -# Description : Udev cold-plugging script -# -# Authors : Zack Winkles, Alexander E. Patrakov -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: udev $time -# Required-Start: localnet -# Should-Start: modules -# Required-Stop: -# Should-Stop: -# Default-Start: S -# Default-Stop: -# Short-Description: Populates /dev with device nodes. -# Description: Mounts a tempfs on /dev and starts the udevd daemon. -# Device nodes are created as defined by udev. -# X-LFS-Provided-By: LFS -### END INIT INFO - -. /lib/lsb/init-functions - -case "${1}" in - start) - log_info_msg "Populating /dev with device nodes... " - if ! grep -q '[[:space:]]sysfs' /proc/mounts; then - log_failure_msg2 - msg="FAILURE:\n\nUnable to create " - msg="${msg}devices without a SysFS filesystem\n\n" - msg="${msg}After you press Enter, this system " - msg="${msg}will be halted and powered off.\n\n" - log_info_msg "$msg" - log_info_msg "Press Enter to continue..." - wait_for_user - /etc/rc.d/init.d/halt stop - fi - - # Start the udev daemon to continually watch for, and act on, - # uevents - /sbin/udevd --daemon - - # Now traverse /sys in order to "coldplug" devices that have - # already been discovered - /sbin/udevadm trigger --action=add --type=subsystems - /sbin/udevadm trigger --action=add --type=devices - /sbin/udevadm trigger --action=change --type=devices - - # Now wait for udevd to process the uevents we triggered - if ! is_true "$OMIT_UDEV_SETTLE"; then - /sbin/udevadm settle - fi - - # If any LVM based partitions are on the system, ensure they - # are activated so they can be used. - if [ -x /sbin/vgchange ]; then /sbin/vgchange -a y >/dev/null; fi - - log_success_msg2 - ;; - - *) - echo "Usage ${0} {start}" - exit 1 - ;; -esac - -exit 0 - -# End udev - -D.6. /etc/rc.d/init.d/swap - -#!/bin/sh -######################################################################## -# Begin swap -# -# Description : Swap Control Script -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: swap -# Required-Start: udev -# Should-Start: modules -# Required-Stop: localnet -# Should-Stop: $local_fs -# Default-Start: S -# Default-Stop: 0 6 -# Short-Description: Mounts and unmounts swap partitions. -# Description: Mounts and unmounts swap partitions defined in -# /etc/fstab. -# X-LFS-Provided-By: LFS -### END INIT INFO - -. /lib/lsb/init-functions - -case "${1}" in - start) - log_info_msg "Activating all swap files/partitions..." - swapon -a - evaluate_retval - ;; - - stop) - log_info_msg "Deactivating all swap files/partitions..." - swapoff -a - evaluate_retval - ;; - - restart) - ${0} stop - sleep 1 - ${0} start - ;; - - status) - log_success_msg "Retrieving swap status." - swapon -s - ;; - - *) - echo "Usage: ${0} {start|stop|restart|status}" - exit 1 - ;; -esac - -exit 0 - -# End swap - -D.7. /etc/rc.d/init.d/setclock - -#!/bin/sh -######################################################################## -# Begin setclock -# -# Description : Setting Linux Clock -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: -# Required-Start: -# Should-Start: modules -# Required-Stop: -# Should-Stop: $syslog -# Default-Start: S -# Default-Stop: -# Short-Description: Stores and restores time from the hardware clock -# Description: On boot, system time is obtained from hwclock. The -# hardware clock can also be set on shutdown. -# X-LFS-Provided-By: LFS -### END INIT INFO - -. /lib/lsb/init-functions - -[ -r /etc/sysconfig/clock ] && . /etc/sysconfig/clock - - -case "${UTC}" in - yes|true|1) - CLOCKPARAMS="${CLOCKPARAMS} --utc" - ;; - - no|false|0) - CLOCKPARAMS="${CLOCKPARAMS} --localtime" - ;; - -esac - -case ${1} in - start) - hwclock --hctosys ${CLOCKPARAMS} >/dev/null - ;; - - stop) - log_info_msg "Setting hardware clock..." - hwclock --systohc ${CLOCKPARAMS} >/dev/null - evaluate_retval - ;; - - *) - echo "Usage: ${0} {start|stop}" - exit 1 - ;; - -esac - -exit 0 - -D.8. /etc/rc.d/init.d/checkfs - -#!/bin/sh -######################################################################## -# Begin checkfs -# -# Description : File System Check -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# A. Luebke - luebke@users.sourceforge.net -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -# Based on checkfs script from LFS-3.1 and earlier. -# -# From man fsck -# 0 - No errors -# 1 - File system errors corrected -# 2 - System should be rebooted -# 4 - File system errors left uncorrected -# 8 - Operational error -# 16 - Usage or syntax error -# 32 - Fsck canceled by user request -# 128 - Shared library error -# -######################################################################### - -### BEGIN INIT INFO -# Provides: checkfs -# Required-Start: udev swap -# Should-Start: -# Required-Stop: -# Should-Stop: -# Default-Start: S -# Default-Stop: -# Short-Description: Checks local filesystems before mounting. -# Description: Checks local filesystmes before mounting. -# X-LFS-Provided-By: LFS -### END INIT INFO - -. /lib/lsb/init-functions - -case "${1}" in - start) - if [ -f /fastboot ]; then - msg="/fastboot found, will omit " - msg="${msg} file system checks as requested.\n" - log_info_msg "${msg}" - exit 0 - fi - - log_info_msg "Mounting root file system in read-only mode... " - mount -n -o remount,ro / >/dev/null - - if [ ${?} != 0 ]; then - log_failure_msg2 - msg="\n\nCannot check root " - msg="${msg}filesystem because it could not be mounted " - msg="${msg}in read-only mode.\n\n" - msg="${msg}After you press Enter, this system will be " - msg="${msg}halted and powered off.\n\n" - log_failure_msg "${msg}" - - log_info_msg "Press Enter to continue..." - wait_for_user - /etc/rc.d/init.d/halt stop - else - log_success_msg2 - fi - - if [ -f /forcefsck ]; then - msg="/forcefsck found, forcing file" - msg="${msg} system checks as requested." - log_success_msg "$msg" - options="-f" - else - options="" - fi - - log_info_msg "Checking file systems..." - # Note: -a option used to be -p; but this fails e.g. on fsck.minix - if is_true "$VERBOSE_FSCK"; then - fsck ${options} -a -A -C -T - else - fsck ${options} -a -A -C -T >/dev/null - fi - - error_value=${?} - - if [ "${error_value}" = 0 ]; then - log_success_msg2 - fi - - if [ "${error_value}" = 1 ]; then - msg="\nWARNING:\n\nFile system errors " - msg="${msg}were found and have been corrected.\n" - msg="${msg} You may want to double-check that " - msg="${msg}everything was fixed properly." - log_warning_msg "$msg" - fi - - if [ "${error_value}" = 2 -o "${error_value}" = 3 ]; then - msg="\nWARNING:\n\nFile system errors " - msg="${msg}were found and have been been " - msg="${msg}corrected, but the nature of the " - msg="${msg}errors require this system to be rebooted.\n\n" - msg="${msg}After you press enter, " - msg="${msg}this system will be rebooted\n\n" - log_failure_msg "$msg" - - log_info_msg "Press Enter to continue..." - wait_for_user - reboot -f - fi - - if [ "${error_value}" -gt 3 -a "${error_value}" -lt 16 ]; then - msg="\nFAILURE:\n\nFile system errors " - msg="${msg}were encountered that could not be " - msg="${msg}fixed automatically.\nThis system " - msg="${msg}cannot continue to boot and will " - msg="${msg}therefore be halted until those " - msg="${msg}errors are fixed manually by a " - msg="${msg}System Administrator.\n\n" - msg="${msg}After you press Enter, this system will be " - msg="${msg}halted and powered off.\n\n" - log_failure_msg "$msg" - - log_info_msg "Press Enter to continue..." - wait_for_user - /etc/rc.d/init.d/halt stop - fi - - if [ "${error_value}" -ge 16 ]; then - msg="FAILURE:\n\nUnexpected failure " - msg="${msg}running fsck. Exited with error " - msg="${msg} code: ${error_value}.\n" - log_info_msg $msg - exit ${error_value} - fi - - exit 0 - ;; - *) - echo "Usage: ${0} {start}" - exit 1 - ;; -esac - -# End checkfs - -D.9. /etc/rc.d/init.d/mountfs - -#!/bin/sh -######################################################################## -# Begin mountfs -# -# Description : File System Mount Script -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: $local_fs -# Required-Start: udev checkfs -# Should-Start: modules -# Required-Stop: localnet -# Should-Stop: -# Default-Start: S -# Default-Stop: 0 6 -# Short-Description: Mounts/unmounts local filesystems defined in /etc/fstab. -# Description: Remounts root filesystem read/write and mounts all -# remaining local filesystems defined in /etc/fstab on -# start. Remounts root filesystem read-only and unmounts -# remaining filesystems on stop. -# X-LFS-Provided-By: LFS -### END INIT INFO - -. /lib/lsb/init-functions - -case "${1}" in - start) - log_info_msg "Remounting root file system in read-write mode..." - mount --options remount,rw / >/dev/null - evaluate_retval - - # Remove fsck-related file system watermarks. - rm -f /fastboot /forcefsck - - # Make sure /dev/pts exists - mkdir -p /dev/pts - - # This will mount all filesystems that do not have _netdev in - # their option list. _netdev denotes a network filesystem. - - log_info_msg "Mounting remaining file systems..." - failed=0 - mount --all --test-opts no_netdev >/dev/null || failed=1 - evaluate_retval - exit $failed - ;; - - stop) - # Don't unmount virtual file systems like /run - log_info_msg "Unmounting all other currently mounted file systems..." - # Ensure any loop devies are removed - losetup -D - umount --all --detach-loop --read-only \ - --types notmpfs,nosysfs,nodevtmpfs,noproc,nodevpts >/dev/null - evaluate_retval - - # Make sure / is mounted read only (umount bug) - mount --options remount,ro / - - # Make all LVM volume groups unavailable, if appropriate - # This fails if swap or / are on an LVM partition - #if [ -x /sbin/vgchange ]; then /sbin/vgchange -an > /dev/null; fi - ;; - - *) - echo "Usage: ${0} {start|stop}" - exit 1 - ;; -esac - -# End mountfs - -D.10. /etc/rc.d/init.d/udev_retry - -#!/bin/sh -######################################################################## -# Begin udev_retry -# -# Description : Udev cold-plugging script (retry) -# -# Authors : Alexander E. Patrakov -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# Bryan Kadzban - -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: udev_retry -# Required-Start: udev -# Should-Start: $local_fs cleanfs -# Required-Stop: -# Should-Stop: -# Default-Start: S -# Default-Stop: -# Short-Description: Replays failed uevents and creates additional devices. -# Description: Replays any failed uevents that were skipped due to -# slow hardware initialization, and creates those needed -# device nodes -# X-LFS-Provided-By: LFS -### END INIT INFO - -. /lib/lsb/init-functions - -case "${1}" in - start) - log_info_msg "Retrying failed uevents, if any..." - - # As of udev-186, the --run option is no longer valid - #rundir=$(/sbin/udevadm info --run) - rundir=/run/udev - # From Debian: "copy the rules generated before / was mounted - # read-write": - - for file in ${rundir}/tmp-rules--*; do - dest=${file##*tmp-rules--} - [ "$dest" = '*' ] && break - cat $file >> /etc/udev/rules.d/$dest - rm -f $file - done - - # Re-trigger the uevents that may have failed, - # in hope they will succeed now - /bin/sed -e 's/#.*$//' /etc/sysconfig/udev_retry | /bin/grep -v '^$' | \ - while read line ; do - for subsystem in $line ; do - /sbin/udevadm trigger --subsystem-match=$subsystem --action=add - done - done - - # Now wait for udevd to process the uevents we triggered - if ! is_true "$OMIT_UDEV_RETRY_SETTLE"; then - /sbin/udevadm settle - fi - - evaluate_retval - ;; - - *) - echo "Usage ${0} {start}" - exit 1 - ;; -esac - -exit 0 - -# End udev_retry - -D.11. /etc/rc.d/init.d/cleanfs - -#!/bin/sh -######################################################################## -# Begin cleanfs -# -# Description : Clean file system -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: cleanfs -# Required-Start: $local_fs -# Should-Start: -# Required-Stop: -# Should-Stop: -# Default-Start: S -# Default-Stop: -# Short-Description: Cleans temporary directories early in the boot process. -# Description: Cleans temporary directories /run, /var/lock, and -# optionally, /tmp. cleanfs also creates /run/utmp -# and any files defined in /etc/sysconfig/createfiles. -# X-LFS-Provided-By: LFS -### END INIT INFO - -. /lib/lsb/init-functions - -# Function to create files/directory on boot. -create_files() -{ - # Input to file descriptor 9 and output to stdin (redirection) - exec 9>&0 < /etc/sysconfig/createfiles - - while read name type perm usr grp dtype maj min junk - do - # Ignore comments and blank lines. - case "${name}" in - ""|\#*) continue ;; - esac - - # Ignore existing files. - if [ ! -e "${name}" ]; then - # Create stuff based on its type. - case "${type}" in - dir) - mkdir "${name}" - ;; - file) - :> "${name}" - ;; - dev) - case "${dtype}" in - char) - mknod "${name}" c ${maj} ${min} - ;; - block) - mknod "${name}" b ${maj} ${min} - ;; - pipe) - mknod "${name}" p - ;; - *) - log_warning_msg "\nUnknown device type: ${dtype}" - ;; - esac - ;; - *) - log_warning_msg "\nUnknown type: ${type}" - continue - ;; - esac - - # Set up the permissions, too. - chown ${usr}:${grp} "${name}" - chmod ${perm} "${name}" - fi - done - - # Close file descriptor 9 (end redirection) - exec 0>&9 9>&- - return 0 -} - -case "${1}" in - start) - log_info_msg "Cleaning file systems:" - - if [ "${SKIPTMPCLEAN}" = "" ]; then - log_info_msg2 " /tmp" - cd /tmp && - find . -xdev -mindepth 1 ! -name lost+found -delete || failed=1 - fi - - > /run/utmp - - if grep -q '^utmp:' /etc/group ; then - chmod 664 /run/utmp - chgrp utmp /run/utmp - fi - - (exit ${failed}) - evaluate_retval - - if egrep -qv '^(#|$)' /etc/sysconfig/createfiles 2>/dev/null; then - log_info_msg "Creating files and directories... " - create_files # Always returns 0 - evaluate_retval - fi - - exit $failed - ;; - *) - echo "Usage: ${0} {start}" - exit 1 - ;; -esac - -# End cleanfs - -D.12. /etc/rc.d/init.d/console - -#!/bin/sh -######################################################################## -# Begin console -# -# Description : Sets keymap and screen font -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# Alexander E. Patrakov -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: console -# Required-Start: $local_fs -# Should-Start: udev_retry -# Required-Stop: -# Should-Stop: -# Default-Start: S -# Default-Stop: -# Short-Description: Sets up a localised console. -# Description: Sets up fonts and language settings for the user's -# local as defined by /etc/sysconfig/console. -# X-LFS-Provided-By: LFS -### END INIT INFO - -. /lib/lsb/init-functions - -# Native English speakers probably don't have /etc/sysconfig/console at all -[ -r /etc/sysconfig/console ] && . /etc/sysconfig/console - -is_true() -{ - [ "$1" = "1" ] || [ "$1" = "yes" ] || [ "$1" = "true" ] -} - -failed=0 - -case "${1}" in - start) - # See if we need to do anything - if [ -z "${KEYMAP}" ] && [ -z "${KEYMAP_CORRECTIONS}" ] && - [ -z "${FONT}" ] && [ -z "${LEGACY_CHARSET}" ] && - ! is_true "${UNICODE}"; then - exit 0 - fi - - # There should be no bogus failures below this line! - log_info_msg "Setting up Linux console..." - - # Figure out if a framebuffer console is used - [ -d /sys/class/graphics/fb0 ] && use_fb=1 || use_fb=0 - - # Figure out the command to set the console into the - # desired mode - is_true "${UNICODE}" && - MODE_COMMAND="echo -en '\033%G' && kbd_mode -u" || - MODE_COMMAND="echo -en '\033%@\033(K' && kbd_mode -a" - - # On framebuffer consoles, font has to be set for each vt in - # UTF-8 mode. This doesn't hurt in non-UTF-8 mode also. - - ! is_true "${use_fb}" || [ -z "${FONT}" ] || - MODE_COMMAND="${MODE_COMMAND} && setfont ${FONT}" - - # Apply that command to all consoles mentioned in - # /etc/inittab. Important: in the UTF-8 mode this should - # happen before setfont, otherwise a kernel bug will - # show up and the unicode map of the font will not be - # used. - - for TTY in `grep '^[^#].*respawn:/sbin/agetty' /etc/inittab | - grep -o '\btty[[:digit:]]*\b'` - do - openvt -f -w -c ${TTY#tty} -- \ - /bin/sh -c "${MODE_COMMAND}" || failed=1 - done - - # Set the font (if not already set above) and the keymap - [ "${use_fb}" == "1" ] || [ -z "${FONT}" ] || setfont $FONT || failed=1 - - [ -z "${KEYMAP}" ] || - loadkeys ${KEYMAP} >/dev/null 2>&1 || - failed=1 - - [ -z "${KEYMAP_CORRECTIONS}" ] || - loadkeys ${KEYMAP_CORRECTIONS} >/dev/null 2>&1 || - failed=1 - - # Convert the keymap from $LEGACY_CHARSET to UTF-8 - [ -z "$LEGACY_CHARSET" ] || - dumpkeys -c "$LEGACY_CHARSET" | loadkeys -u >/dev/null 2>&1 || - failed=1 - - # If any of the commands above failed, the trap at the - # top would set $failed to 1 - ( exit $failed ) - evaluate_retval - - exit $failed - ;; - - *) - echo "Usage: ${0} {start}" - exit 1 - ;; -esac - -# End console - -D.13. /etc/rc.d/init.d/localnet - -#!/bin/sh -######################################################################## -# Begin localnet -# -# Description : Loopback device -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: localnet -# Required-Start: mountvirtfs -# Should-Start: modules -# Required-Stop: -# Should-Stop: -# Default-Start: S -# Default-Stop: 0 6 -# Short-Description: Starts the local network. -# Description: Sets the hostname of the machine and starts the -# loopback interface. -# X-LFS-Provided-By: LFS -### END INIT INFO - -. /lib/lsb/init-functions -[ -r /etc/sysconfig/network ] && . /etc/sysconfig/network -[ -r /etc/hostname ] && HOSTNAME=`cat /etc/hostname` - -case "${1}" in - start) - log_info_msg "Bringing up the loopback interface..." - ip addr add 127.0.0.1/8 label lo dev lo - ip link set lo up - evaluate_retval - - log_info_msg "Setting hostname to ${HOSTNAME}..." - hostname ${HOSTNAME} - evaluate_retval - ;; - - stop) - log_info_msg "Bringing down the loopback interface..." - ip link set lo down - evaluate_retval - ;; - - restart) - ${0} stop - sleep 1 - ${0} start - ;; - - status) - echo "Hostname is: $(hostname)" - ip link show lo - ;; - - *) - echo "Usage: ${0} {start|stop|restart|status}" - exit 1 - ;; -esac - -exit 0 - -# End localnet - -D.14. /etc/rc.d/init.d/sysctl - -#!/bin/sh -######################################################################## -# Begin sysctl -# -# Description : File uses /etc/sysctl.conf to set kernel runtime -# parameters -# -# Authors : Nathan Coulson (nathan AT linuxfromscratch D0T org) -# Matthew Burgress (matthew AT linuxfromscratch D0T org) -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: sysctl -# Required-Start: mountvirtfs -# Should-Start: console -# Required-Stop: -# Should-Stop: -# Default-Start: S -# Default-Stop: -# Short-Description: Makes changes to the proc filesystem -# Description: Makes changes to the proc filesystem as defined in -# /etc/sysctl.conf. See 'man sysctl(8)'. -# X-LFS-Provided-By: LFS -### END INIT INFO - -. /lib/lsb/init-functions - -case "${1}" in - start) - if [ -f "/etc/sysctl.conf" ]; then - log_info_msg "Setting kernel runtime parameters..." - sysctl -q -p - evaluate_retval - fi - ;; - - status) - sysctl -a - ;; - - *) - echo "Usage: ${0} {start|status}" - exit 1 - ;; -esac - -exit 0 - -# End sysctl - -D.15. /etc/rc.d/init.d/sysklogd - -#!/bin/sh -######################################################################## -# Begin sysklogd -# -# Description : Sysklogd loader -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: $syslog -# Required-Start: $first localnet -# Should-Start: -# Required-Stop: $local_fs -# Should-Stop: sendsignals -# Default-Start: 3 4 5 -# Default-Stop: 0 1 2 6 -# Short-Description: Starts kernel and system log daemons. -# Description: Starts kernel and system log daemons. -# /etc/fstab. -# X-LFS-Provided-By: LFS -### END INIT INFO - -# Note: sysklogd is not started in runlevel 2 due to possible -# remote logging configurations - -. /lib/lsb/init-functions - -case "${1}" in - start) - log_info_msg "Starting system log daemon..." - parms=${SYSKLOGD_PARMS-'-m 0'} - start_daemon /sbin/syslogd $parms - evaluate_retval - - log_info_msg "Starting kernel log daemon..." - start_daemon /sbin/klogd - evaluate_retval - ;; - - stop) - log_info_msg "Stopping kernel log daemon..." - killproc /sbin/klogd - evaluate_retval - - log_info_msg "Stopping system log daemon..." - killproc /sbin/syslogd - evaluate_retval - ;; - - reload) - log_info_msg "Reloading system log daemon config file..." - pid=`pidofproc syslogd` - kill -HUP "${pid}" - evaluate_retval - ;; - - restart) - ${0} stop - sleep 1 - ${0} start - ;; - - status) - statusproc /sbin/syslogd - statusproc klogd - ;; - - *) - echo "Usage: ${0} {start|stop|reload|restart|status}" - exit 1 - ;; -esac - -exit 0 - -# End sysklogd - -D.16. /etc/rc.d/init.d/network - -#!/bin/sh -######################################################################## -# Begin network -# -# Description : Network Control Script -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# Nathan Coulson - nathan AT linuxfromscratch D0T org -# Kevin P. Fleming - kpfleming@linuxfromscratch.org -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: $network -# Required-Start: $local_fs localnet swap -# Should-Start: $syslog firewalld iptables nftables -# Required-Stop: $local_fs localnet swap -# Should-Stop: $syslog firewalld iptables nftables -# Default-Start: 3 4 5 -# Default-Stop: 0 1 2 6 -# Short-Description: Starts and configures network interfaces. -# Description: Starts and configures network interfaces. -# X-LFS-Provided-By: LFS -### END INIT INFO - -case "${1}" in - start) - # Start all network interfaces - for file in /etc/sysconfig/ifconfig.* - do - interface=${file##*/ifconfig.} - - # Skip if $file is * (because nothing was found) - if [ "${interface}" = "*" ]; then continue; fi - - /sbin/ifup ${interface} - done - ;; - - stop) - # Unmount any network mounted file systems - umount --all --force --types nfs,cifs,nfs4 - - # Reverse list - net_files="" - for file in /etc/sysconfig/ifconfig.* - do - net_files="${file} ${net_files}" - done - - # Stop all network interfaces - for file in ${net_files} - do - interface=${file##*/ifconfig.} - - # Skip if $file is * (because nothing was found) - if [ "${interface}" = "*" ]; then continue; fi - - # See if interface exists - if [ ! -e /sys/class/net/$interface ]; then continue; fi - - # Is interface UP? - ip link show $interface 2>/dev/null | grep -q "state UP" - if [ $? -ne 0 ]; then continue; fi - - /sbin/ifdown ${interface} - done - ;; - - restart) - ${0} stop - sleep 1 - ${0} start - ;; - - *) - echo "Usage: ${0} {start|stop|restart}" - exit 1 - ;; -esac - -exit 0 - -# End network - -D.17. /etc/rc.d/init.d/sendsignals - -#!/bin/sh -######################################################################## -# Begin sendsignals -# -# Description : Sendsignals Script -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: sendsignals -# Required-Start: -# Should-Start: -# Required-Stop: $local_fs swap localnet -# Should-Stop: -# Default-Start: -# Default-Stop: 0 6 -# Short-Description: Attempts to kill remaining processes. -# Description: Attempts to kill remaining processes. -# X-LFS-Provided-By: LFS -### END INIT INFO - -. /lib/lsb/init-functions - -case "${1}" in - stop) - omit=$(pidof mdmon) - [ -n "$omit" ] && omit="-o $omit" - - log_info_msg "Sending all processes the TERM signal..." - killall5 -15 $omit - error_value=${?} - - sleep ${KILLDELAY} - - if [ "${error_value}" = 0 -o "${error_value}" = 2 ]; then - log_success_msg - else - log_failure_msg - fi - - log_info_msg "Sending all processes the KILL signal..." - killall5 -9 $omit - error_value=${?} - - sleep ${KILLDELAY} - - if [ "${error_value}" = 0 -o "${error_value}" = 2 ]; then - log_success_msg - else - log_failure_msg - fi - ;; - - *) - echo "Usage: ${0} {stop}" - exit 1 - ;; - -esac - -exit 0 - -# End sendsignals - -D.18. /etc/rc.d/init.d/reboot - -#!/bin/sh -######################################################################## -# Begin reboot -# -# Description : Reboot Scripts -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: reboot -# Required-Start: -# Should-Start: -# Required-Stop: -# Should-Stop: -# Default-Start: 6 -# Default-Stop: -# Short-Description: Reboots the system. -# Description: Reboots the System. -# X-LFS-Provided-By: LFS -### END INIT INFO - -. /lib/lsb/init-functions - -case "${1}" in - stop) - log_info_msg "Restarting system..." - reboot -d -f -i - ;; - - *) - echo "Usage: ${0} {stop}" - exit 1 - ;; - -esac - -# End reboot - -D.19. /etc/rc.d/init.d/halt - -#!/bin/sh -######################################################################## -# Begin halt -# -# Description : Halt Script -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: halt -# Required-Start: -# Should-Start: -# Required-Stop: -# Should-Stop: -# Default-Start: 0 -# Default-Stop: -# Short-Description: Halts the system. -# Description: Halts the System. -# X-LFS-Provided-By: LFS -### END INIT INFO - -case "${1}" in - stop) - halt -d -f -i -p - ;; - - *) - echo "Usage: {stop}" - exit 1 - ;; -esac - -# End halt - -D.20. /etc/rc.d/init.d/template - -#!/bin/sh -######################################################################## -# Begin scriptname -# -# Description : -# -# Authors : -# -# Version : LFS x.x -# -# Notes : -# -######################################################################## - -### BEGIN INIT INFO -# Provides: template -# Required-Start: -# Should-Start: -# Required-Stop: -# Should-Stop: -# Default-Start: -# Default-Stop: -# Short-Description: -# Description: -# X-LFS-Provided-By: -### END INIT INFO - -. /lib/lsb/init-functions - -case "${1}" in - start) - log_info_msg "Starting..." - start_daemon fully_qualified_path - ;; - - stop) - log_info_msg "Stopping..." - killproc fully_qualified_path - ;; - - restart) - ${0} stop - sleep 1 - ${0} start - ;; - - *) - echo "Usage: ${0} {start|stop|restart}" - exit 1 - ;; -esac - -exit 0 - -# End scriptname - -D.21. /etc/sysconfig/modules - -######################################################################## -# Begin /etc/sysconfig/modules -# -# Description : Module auto-loading configuration -# -# Authors : -# -# Version : 00.00 -# -# Notes : The syntax of this file is as follows: -# [ ...] -# -# Each module should be on its own line, and any options that you want -# passed to the module should follow it. The line deliminator is either -# a space or a tab. -######################################################################## - -# End /etc/sysconfig/modules - -D.22. /etc/sysconfig/createfiles - -######################################################################## -# Begin /etc/sysconfig/createfiles -# -# Description : Createfiles script config file -# -# Authors : -# -# Version : 00.00 -# -# Notes : The syntax of this file is as follows: -# if type is equal to "file" or "dir" -# -# if type is equal to "dev" -# -# -# -# is the name of the file which is to be created -# is either file, dir, or dev. -# file creates a new file -# dir creates a new directory -# dev creates a new device -# is either block, char or pipe -# block creates a block device -# char creates a character deivce -# pipe creates a pipe, this will ignore the and -# fields -# and are the major and minor numbers used for -# the device. -######################################################################## - -# End /etc/sysconfig/createfiles - -D.23. /etc/sysconfig/udev-retry - -######################################################################## -# Begin /etc/sysconfig/udev_retry -# -# Description : udev_retry script configuration -# -# Authors : -# -# Version : 00.00 -# -# Notes : Each subsystem that may need to be re-triggered after mountfs -# runs should be listed in this file. Probable subsystems to be -# listed here are rtc (due to /var/lib/hwclock/adjtime) and sound -# (due to both /var/lib/alsa/asound.state and /usr/sbin/alsactl). -# Entries are whitespace-separated. -######################################################################## - -rtc - -# End /etc/sysconfig/udev_retry - -D.24. /sbin/ifup - -#!/bin/sh -######################################################################## -# Begin /sbin/ifup -# -# Description : Interface Up -# -# Authors : Nathan Coulson - nathan AT linuxfromscratch D0T org -# Kevin P. Fleming - kpfleming@linuxfromscratch.org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# DJ Lucas - dj AT linuxfromscratch D0T org -# -# Version : LFS 7.7 -# -# Notes : The IFCONFIG variable is passed to the SERVICE script -# in the /lib/services directory, to indicate what file the -# service should source to get interface specifications. -# -######################################################################## - -up() -{ - log_info_msg "Bringing up the ${1} interface..." - - if ip link show $1 > /dev/null 2>&1; then - link_status=`ip link show $1` - - if [ -n "${link_status}" ]; then - if ! echo "${link_status}" | grep -q UP; then - ip link set $1 up - fi - fi - - else - log_failure_msg "Interface ${IFACE} doesn't exist." - exit 1 - fi - - evaluate_retval -} - -RELEASE="7.7" - -USAGE="Usage: $0 [ -hV ] [--help] [--version] interface" -VERSTR="LFS ifup, version ${RELEASE}" - -while [ $# -gt 0 ]; do - case "$1" in - --help | -h) help="y"; break ;; - - --version | -V) echo "${VERSTR}"; exit 0 ;; - - -*) echo "ifup: ${1}: invalid option" >&2 - echo "${USAGE}" >& 2 - exit 2 ;; - - *) break ;; - esac -done - -if [ -n "$help" ]; then - echo "${VERSTR}" - echo "${USAGE}" - echo - cat << HERE_EOF -ifup is used to bring up a network interface. The interface -parameter, e.g. eth0 or eth0:2, must match the trailing part of the -interface specifications file, e.g. /etc/sysconfig/ifconfig.eth0:2. - -HERE_EOF - exit 0 -fi - -file=/etc/sysconfig/ifconfig.${1} - -# Skip backup files -[ "${file}" = "${file%""~""}" ] || exit 0 - -. /lib/lsb/init-functions - -if [ ! -r "${file}" ]; then - log_failure_msg "Unable to bring up ${1} interface! ${file} is missing or can -not be accessed." - exit 1 -fi - -. $file - -if [ "$IFACE" = "" ]; then - log_failure_msg "Unable to bring up ${1} interface! ${file} does not define a -n interface [IFACE]." - exit 1 -fi - -# Do not process this service if started by boot, and ONBOOT -# is not set to yes -if [ "${IN_BOOT}" = "1" -a "${ONBOOT}" != "yes" ]; then - exit 0 -fi - -# Bring up the interface -if [ "$VIRTINT" != "yes" ]; then - up ${IFACE} -fi - -for S in ${SERVICE}; do - if [ ! -x "/lib/services/${S}" ]; then - MSG="\nUnable to process ${file}. Either " - MSG="${MSG}the SERVICE '${S} was not present " - MSG="${MSG}or cannot be executed." - log_failure_msg "$MSG" - exit 1 - fi -done - -if [ "${SERVICE}" = "wpa" ]; then log_success_msg; fi - -# Create/configure the interface -for S in ${SERVICE}; do - IFCONFIG=${file} /lib/services/${S} ${IFACE} up -done - -# Set link up virtual interfaces -if [ "${VIRTINT}" == "yes" ]; then - up ${IFACE} -fi - -# Bring up any additional interface components -for I in $INTERFACE_COMPONENTS; do up $I; done - -# Set MTU if requested. Check if MTU has a "good" value. -if test -n "${MTU}"; then - if [[ ${MTU} =~ ^[0-9]+$ ]] && [[ $MTU -ge 68 ]] ; then - for I in $IFACE $INTERFACE_COMPONENTS; do - ip link set dev $I mtu $MTU; - done - else - log_info_msg2 "Invalid MTU $MTU" - fi -fi - -# Set the route default gateway if requested -if [ -n "${GATEWAY}" ]; then - if ip route | grep -q default; then - log_warning_msg "Gateway already setup; skipping." - else - log_info_msg "Adding default gateway ${GATEWAY} to the ${IFACE} interface. -.." - ip route add default via ${GATEWAY} dev ${IFACE} - evaluate_retval - fi -fi - -# End /sbin/ifup - -D.25. /sbin/ifdown - -#!/bin/bash -######################################################################## -# Begin /sbin/ifdown -# -# Description : Interface Down -# -# Authors : Nathan Coulson - nathan AT linuxfromscratch D0T org -# Kevin P. Fleming - kpfleming@linuxfromscratch.org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -# Notes : the IFCONFIG variable is passed to the scripts found -# in the /lib/services directory, to indicate what file the -# service should source to get interface specifications. -# -######################################################################## - -RELEASE="7.0" - -USAGE="Usage: $0 [ -hV ] [--help] [--version] interface" -VERSTR="LFS ifdown, version ${RELEASE}" - -while [ $# -gt 0 ]; do - case "$1" in - --help | -h) help="y"; break ;; - - --version | -V) echo "${VERSTR}"; exit 0 ;; - - -*) echo "ifup: ${1}: invalid option" >&2 - echo "${USAGE}" >& 2 - exit 2 ;; - - *) break ;; - esac -done - -if [ -n "$help" ]; then - echo "${VERSTR}" - echo "${USAGE}" - echo - cat << HERE_EOF -ifdown is used to bring down a network interface. The interface -parameter, e.g. eth0 or eth0:2, must match the trailing part of the -interface specifications file, e.g. /etc/sysconfig/ifconfig.eth0:2. - -HERE_EOF - exit 0 -fi - -file=/etc/sysconfig/ifconfig.${1} - -# Skip backup files -[ "${file}" = "${file%""~""}" ] || exit 0 - -. /lib/lsb/init-functions - -if [ ! -r "${file}" ]; then - log_warning_msg "${file} is missing or cannot be accessed." - exit 1 -fi - -. ${file} - -if [ "$IFACE" = "" ]; then - log_failure_msg "${file} does not define an interface [IFACE]." - exit 1 -fi - -# We only need to first service to bring down the interface -S=`echo ${SERVICE} | cut -f1 -d" "` - -if ip link show ${IFACE} > /dev/null 2>&1; then - if [ -n "${S}" -a -x "/lib/services/${S}" ]; then - IFCONFIG=${file} /lib/services/${S} ${IFACE} down - else - MSG="Unable to process ${file}. Either " - MSG="${MSG}the SERVICE variable was not set " - MSG="${MSG}or the specified service cannot be executed." - log_failure_msg "$MSG" - exit 1 - fi -else - log_warning_msg "Interface ${1} doesn't exist." -fi - -# Leave the interface up if there are additional interfaces in the device -link_status=`ip link show ${IFACE} 2>/dev/null` - -if [ -n "${link_status}" ]; then - if [ "$(echo "${link_status}" | grep UP)" != "" ]; then - if [ "$(ip addr show ${IFACE} | grep 'inet ')" == "" ]; then - log_info_msg "Bringing down the ${IFACE} interface..." - ip link set ${IFACE} down - evaluate_retval - fi - fi -fi - -# End /sbin/ifdown - -D.26. /lib/services/ipv4-static - -#!/bin/sh -######################################################################## -# Begin /lib/services/ipv4-static -# -# Description : IPV4 Static Boot Script -# -# Authors : Nathan Coulson - nathan AT linuxfromscratch D0T org -# Kevin P. Fleming - kpfleming@linuxfromscratch.org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -. /lib/lsb/init-functions -. ${IFCONFIG} - -if [ -z "${IP}" ]; then - log_failure_msg "\nIP variable missing from ${IFCONFIG}, cannot continue." - exit 1 -fi - -if [ -z "${PREFIX}" -a -z "${PEER}" ]; then - log_warning_msg "\nPREFIX variable missing from ${IFCONFIG}, assuming 24." - PREFIX=24 - args="${args} ${IP}/${PREFIX}" - -elif [ -n "${PREFIX}" -a -n "${PEER}" ]; then - log_failure_msg "\nPREFIX and PEER both specified in ${IFCONFIG}, cannot cont -inue." - exit 1 - -elif [ -n "${PREFIX}" ]; then - args="${args} ${IP}/${PREFIX}" - -elif [ -n "${PEER}" ]; then - args="${args} ${IP} peer ${PEER}" -fi - -if [ -n "${LABEL}" ]; then - args="${args} label ${LABEL}" -fi - -if [ -n "${BROADCAST}" ]; then - args="${args} broadcast ${BROADCAST}" -fi - -case "${2}" in - up) - if [ "$(ip addr show ${1} 2>/dev/null | grep ${IP}/)" = "" ]; then - log_info_msg "Adding IPv4 address ${IP} to the ${1} interface..." - ip addr add ${args} dev ${1} - evaluate_retval - else - log_warning_msg "Cannot add IPv4 address ${IP} to ${1}. Already presen -t." - fi - ;; - - down) - if [ "$(ip addr show ${1} 2>/dev/null | grep ${IP}/)" != "" ]; then - log_info_msg "Removing IPv4 address ${IP} from the ${1} interface..." - ip addr del ${args} dev ${1} - evaluate_retval - fi - - if [ -n "${GATEWAY}" ]; then - # Only remove the gateway if there are no remaining ipv4 addresses - if [ "$(ip addr show ${1} 2>/dev/null | grep 'inet ')" != "" ]; then - log_info_msg "Removing default gateway..." - ip route del default - evaluate_retval - fi - fi - ;; - - *) - echo "Usage: ${0} [interface] {up|down}" - exit 1 - ;; -esac - -# End /lib/services/ipv4-static - -D.27. /lib/services/ipv4-static-route - -#!/bin/sh -######################################################################## -# Begin /lib/services/ipv4-static-route -# -# Description : IPV4 Static Route Script -# -# Authors : Kevin P. Fleming - kpfleming@linuxfromscratch.org -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -. /lib/lsb/init-functions -. ${IFCONFIG} - -case "${TYPE}" in - ("" | "network") - need_ip=1 - need_gateway=1 - ;; - - ("default") - need_gateway=1 - args="${args} default" - desc="default" - ;; - - ("host") - need_ip=1 - ;; - - ("unreachable") - need_ip=1 - args="${args} unreachable" - desc="unreachable " - ;; - - (*) - log_failure_msg "Unknown route type (${TYPE}) in ${IFCONFIG}, cannot conti -nue." - exit 1 - ;; -esac - -if [ -n "${GATEWAY}" ]; then - MSG="The GATEWAY variable cannot be set in ${IFCONFIG} for static routes.\n" - log_failure_msg "$MSG Use STATIC_GATEWAY only, cannot continue" - exit 1 -fi - -if [ -n "${need_ip}" ]; then - if [ -z "${IP}" ]; then - log_failure_msg "IP variable missing from ${IFCONFIG}, cannot continue." - exit 1 - fi - - if [ -z "${PREFIX}" ]; then - log_failure_msg "PREFIX variable missing from ${IFCONFIG}, cannot continue -." - exit 1 - fi - - args="${args} ${IP}/${PREFIX}" - desc="${desc}${IP}/${PREFIX}" -fi - -if [ -n "${need_gateway}" ]; then - if [ -z "${STATIC_GATEWAY}" ]; then - log_failure_msg "STATIC_GATEWAY variable missing from ${IFCONFIG}, cannot -continue." - exit 1 - fi - args="${args} via ${STATIC_GATEWAY}" -fi - -if [ -n "${SOURCE}" ]; then - args="${args} src ${SOURCE}" -fi - -case "${2}" in - up) - log_info_msg "Adding '${desc}' route to the ${1} interface..." - ip route add ${args} dev ${1} - evaluate_retval - ;; - - down) - log_info_msg "Removing '${desc}' route from the ${1} interface..." - ip route del ${args} dev ${1} - evaluate_retval - ;; - - *) - echo "Usage: ${0} [interface] {up|down}" - exit 1 - ;; -esac - -# End /lib/services/ipv4-static-route - -Apêndice E. Regras de configuração do Udev - - As regras neste anexo estão listadas por conveniência. A instalação - normalmente é feita via instruções na [801]Seção 8.69, “Eudev-3.2.11â€. - -E.1. 55-lfs.rules - -# /etc/udev/rules.d/55-lfs.rules: Rule definitions for LFS. - -# Core kernel devices - -# This causes the system clock to be set as soon as /dev/rtc becomes available. -SUBSYSTEM=="rtc", ACTION=="add", MODE="0644", RUN+="/etc/rc.d/init.d/setclock st -art" -KERNEL=="rtc", ACTION=="add", MODE="0644", RUN+="/etc/rc.d/init.d/setclock start -" - -# Comms devices - -KERNEL=="ippp[0-9]*", GROUP="dialout" -KERNEL=="isdn[0-9]*", GROUP="dialout" -KERNEL=="isdnctrl[0-9]*", GROUP="dialout" -KERNEL=="dcbri[0-9]*", GROUP="dialout" - -Apêndice F. Licenças do LFS - - Este livro [escrito originalmente em inglês] está licenciado sob a - licença da Creative Commons Attribution-NonCommercial-ShareAlike 2.0. - - A "versão modificada" do livro (traduzida para o idioma português - escrito e falado no Brasil) ("Obra derivada") está licenciada sob a - Licença de Documentação Livre GNU, versão 1.3 ou qualquer versão - posterior publicada pela Free Software Foundation. - - As instruções de computador tem permissão para serem extraídas a partir - do livro sob a Licença do MIT. - -F.1. Licença da Creative Commons - - Creative Commons Legal Code - - Atribuição - Uso não-Comercial - Compartilhamento pela mesma licença - 2.0 - -Importante - - A INSTITUIÇÃO CREATIVE COMMONS NÃO É UM ESCRITÓRIO DE ADVOCACIA E NÃO - PRESTA SERVIÇOS JURÃDICOS. A DISTRIBUIÇÃO DESTA LICENÇA NÃO ESTABELECE - QUALQUER RELAÇÃO ADVOCATÃCIA. O CREATIVE COMMONS DISPONIBILIZA ESTA - INFORMAÇÃO "NO ESTADO EM QUE SE ENCONTRA". O CREATIVE COMMONS NÃO FAZ - QUALQUER GARANTIA QUANTO ÀS INFORMAÇÕES DISPONIBILIZADAS E SE EXONERA - DE QUALQUER RESPONSABILIDADE POR DANOS RESULTANTES DO SEU USO. - - Licença - - A OBRA (CONFORME DEFINIDA ABAIXO) É DISPONIBILIZADA DE ACORDO COM OS - TERMOS DESTA LICENÇA PÚBLICA CREATIVE COMMONS ("CCPL" OU "LICENÇA"). A - OBRA É PROTEGIDA POR DIREITO AUTORAL E/OU OUTRAS LEIS APLICÃVEIS. - QUALQUER USO DA OBRA QUE NÃO O AUTORIZADO SOB ESTA LICENÇA OU PELA - LEGISLAÇÃO AUTORAL É PROIBIDO. - - AO EXERCER QUAISQUER DOS DIREITOS À OBRA AQUI CONCEDIDOS, VOCÊ ACEITA E - CONCORDA FICAR OBRIGADO NOS TERMOS DESTA LICENÇA. O LICENCIANTE CONCEDE - A VOCÊ OS DIREITOS AQUI CONTIDOS EM CONTRAPARTIDA À SUA ACEITAÇÃO - DESTES TERMOS E CONDIÇÕES. - 1. Definições - 1. "Obra Coletiva" significa uma obra, tal como uma edição - periódica, antologia ou enciclopédia, na qual a Obra em sua - totalidade e de forma inalterada, em conjunto com um número de - outras contribuições, constituindo obras independentes e - separadas em si mesmas, são agregadas em um trabalho coletivo. - Uma obra que constitua uma Obra Coletiva não será considerada - Obra Derivada (conforme definido abaixo) para os propósitos - desta licença. - 2. "Obra Derivada" significa uma obra baseada sobre a Obra ou - sobre a Obra e outras obras pré-existentes, tal como uma - tradução, arranjo musical, dramatização, romantização, versão - de filme, gravação de som, reprodução de obra artística, - resumo, condensação ou qualquer outra forma na qual a Obra - possa ser refeita, transformada ou adaptada, com a exceção de - que uma obra que constitua uma Obra Coletiva não será - considerada Obra Derivada para fins desta licença. Para evitar - dúvidas, quando a Obra for uma composição musical ou gravação - de som, a sincronização da Obra em relação cronometrada com - uma imagem em movimento (“synchingâ€) será considerada uma Obra - Derivada para os propósitos desta licença. - 3. "Licenciante" significa a pessoa física ou a jurídica que - oferece a Obra sob os termos desta licença. - 4. "Autor Original" significa a pessoa física ou jurídica que - criou a Obra. - 5. "Obra" significa a obra autoral, passível de proteção pelo - direito autoral, oferecida sob os termos desta licença. - 6. "Você" significa a pessoa física ou jurídica exercendo - direitos sob esta Licença que não tenha previamente violado os - termos desta Licença com relação à Obra, ou que tenha recebido - permissão expressa do Licenciante para exercer direitos sob - esta Licença apesar de uma violação prévia. - 7. "Elementos da Licença" significa os principais atributos da - licença correspondente, conforme escolhidos pelo licenciante e - indicados no título desta licença: Atribuição, - Compartilhamento pela Mesma Licença. - 2. Direitos de Uso Legítimo. Nada nesta licença deve ser interpretado - de modo a reduzir, limitar ou restringir quaisquer direitos - relativos ao uso legítimo, ou outras limitações sobre os direitos - exclusivos do titular de direitos autorais sob a legislação autoral - ou quaisquer outras leis aplicáveis. - 3. Concessão da Licença. O Licenciante concede a Você uma licença de - abrangência mundial, sem royalties, não-exclusiva, perpétua (pela - duração do direito autoral aplicável), sujeita aos termos e - condições desta Licença, para exercer os direitos sobre a Obra - definidos abaixo: - 1. reproduzir a Obra, incorporar a Obra em uma ou mais Obras - Coletivas e reproduzir a Obra quando incorporada em Obra - Coletiva; - 2. criar e reproduzir Obras Derivadas; - 3. distribuir cópias ou gravações da Obra, exibir publicamente, - executar publicamente e executar publicamente por meio de uma - transmissão de áudio digital a Obra, inclusive quando - incorporada em Obras Coletivas; - 4. distribuir cópias ou gravações de Obras Derivadas, exibir - publicamente, executar publicamente e executar publicamente - por meio de uma transmissão digital de áudio Obras Derivadas. - Os direitos acima podem ser exercidos em todas as mídias e - formatos, independente de serem conhecidos agora ou concebidos - posteriormente. Os direitos acima incluem o direito de fazer - modificações que forem tecnicamente necessárias para exercer os - direitos em outras mídias, meios e formatos. Todos os direitos não - concedidos expressamente pelo Licenciante ficam aqui reservados, - incluindo, mas não se limitando, os direitos definidos nas Seções - 4(e) e 4(f). - 4. Restrições. A licença concedida na Seção 3 acima está expressamente - sujeita e limitada aos seguintes termos: - 1. Você pode distribuir, exibir publicamente, executar - publicamente ou executar publicamente por meios digitais a - Obra apenas sob os termos desta Licença, e Você deve incluir - uma cópia desta licença, ou o Identificador Uniformizado de - Recursos (Uniform Resource Identifier) para esta Licença, com - cada cópia ou gravação da Obra que Você distribuir, exibir - publicamente, executar publicamente, ou executar publicamente - por meios digitais. Você não poderá oferecer ou impor - quaisquer termos sobre a Obra que alterem ou restrinjam os - termos desta Licença ou o exercício dos direitos aqui - concedidos aos destinatários. Você não poderá sub-licenciar a - Obra. Você deverá manter intactas todas as informações que se - referem a esta Licença e à exclusão de garantias. Você não - pode distribuir, exibir publicamente, executar publicamente ou - executar publicamente por meios digitais a Obra com qualquer - medida tecnológica que controle o acesso ou o uso da Obra de - maneira inconsistente com os termos deste Acordo de Licença. O - disposto acima se aplica à Obra enquanto incorporada em uma - Obra Coletiva, mas isto não requer que a Obra Coletiva, à - parte da Obra em si, esteja sujeita aos termos desta Licença. - Se Você criar uma Obra Coletiva, em havendo notificação de - qualquer Licenciante, Você deve, na medida do razoável, - remover da Obra Coletiva qualquer referência a este - Licenciante ou Autor Original, conforme solicitado. Se você - criar uma Obra Derivada, em havendo notificação de qualquer - Licenciante, Você deve, na medida do razoável, remover da Obra - Derivada qualquer referência a este Licenciante ou ao Autor - Original, conforme solicitado. - 2. Você pode distribuir, exibir publicamente, executar - publicamente ou executar publicamente por meios digitais uma - Obra Derivada somente sob os termos desta Licença, ou de uma - versão posterior desta licença com os mesmos Elementos da - Licença desta licença, ou de uma licença do internacional do - Creative Commons (iCommons) que contenha os mesmos Elementos - da Licença desta Licença (por exemplo, Atribuição, Uso Não - Comercial, Compartilhamento pela Mesma Licença Japão). Você - deve incluir uma cópia desta licença ou de outra licença - especificada na sentença anterior, ou o Identificador - Uniformizado de Recursos (Uniform Resource Identifier) para - esta licença ou de outra licença especificada na sentença - anterior, com cada cópia ou gravação de cada Obra Derivada que - Você distribuir, exibir publicamente, executar publicamente ou - executar publicamente por meios digitais. Você não poderá - oferecer ou impor quaisquer termos sobre a Obra Derivada que - alterem ou restrinjam os termos desta Licença ou o exercício - dos direitos aqui concedidos aos destinatários, e Você deverá - manter intactas todas as informações que se refiram a esta - Licença e à exclusão de garantias. Você não poderá distribuir, - exibir publicamente, executar publicamente ou executar - publicamente por meios digitais a Obra Derivada com qualquer - medida tecnológica que controle o acesso ou o uso da Obra de - maneira inconsistente com os termos deste Acordo de Licença. O - disposto acima se aplica à Obra Derivada quando incorporada em - uma Obra Coletiva, mas isto não requer que a Obra Coletiva, à - parte da Obra em si, esteja sujeita aos termos desta Licença. - 3. Você não poderá exercer nenhum dos direitos acima concedidos a - Você na Seção 3 de qualquer maneira que seja predominantemente - intencionada ou direcionada à obtenção de vantagem comercial - ou compensação monetária privada. A troca da Obra por outros - materiais protegidos por direito autoral através de - compartilhamento digital de arquivos ou de outras formas não - deverá ser considerada como intencionada ou direcionada à - obtenção de vantagens comerciais ou compensação monetária - privada, desde que não haja pagamento de nenhuma compensação - monetária com relação à troca de obras protegidas por direito - de autor. - 4. Se Você distribuir, exibir publicamente, executar publicamente - ou executar publicamente por meios digitais a Obra ou qualquer - Obra Derivada ou Obra Coletiva, Você deve manter intactas - todas as informações relativas a direitos autorais sobre a - Obra e atribuir ao Autor Original crédito razoável com relação - ao meio ou mídia que Você está utilizando, através da - veiculação do nome (ou pseudônimo, se for o caso) do Autor - Original, se fornecido; o título da Obra, se fornecido; na - medida do razoável, o Identificador Uniformizado de Recursos - (URI) que o Licenciante especificar para estar associado à - Obra, se houver, exceto se o URI não se referir ao aviso de - direitos autorais ou à informação sobre o regime de - licenciamento da Obra; e no caso de Obra Derivada, crédito - identificando o uso da Obra na Obra Derivada (exemplo: - "Tradução Francesa da Obra de Autor Original", ou "Roteiro - baseado na Obra original de Autor Original"). Tal crédito pode - ser implementado de qualquer forma razoável; entretanto, no - caso de Obra Derivada ou Obra Coletiva, este crédito aparecerá - no mínimo onde qualquer outro crédito comparável de autoria - aparece e de modo ao menos tão proeminente quanto este outro - crédito de autoria comparável. - 5. De modo a tornar claras estas disposições, quando uma Obra for - uma composição musical: - 1. Royalties e execução pública. O Licenciante reserva o seu - direito exclusivo de coletar, seja individualmente ou - através de entidades coletoras de direitos de execução - (por exemplo, ECAD, ASCAP, BMI, SESAC), o valor dos seus - direitos autorais pela execução pública da obra ou - execução pública digital (por exemplo, webcasting) da - Obra se esta execução for predominantemente intencionada - ou direcionada à obtenção de vantagem comercial ou - compensação monetária privada. - 2. Royalties e Direitos fonomecânicos. O Licenciante reserva - o seu direito exclusivo de coletar, seja individualmente - ou através de uma entidade designada como seu agente (por - exemplo, a agência Harry Fox), royalties relativos a - quaisquer gravações que Você criar da Obra (por exemplo, - uma versão “coverâ€) e distribuir, conforme as disposições - aplicáveis de direito autoral, se a distribuição feita - por Você de versão “cover†for predominantemente - intencionada ou direcionada à obtenção de vantagem - comercial ou compensação monetária privada. - 6. Direitos de Execução Digital pela Internet (Webcasting) e - royalties. De modo a evitar dúvidas, quando a Obra for uma - gravação de som, o Licenciante reserva o seu direito exclusivo - de coletar, seja individualmente ou através de entidades - coletoras de direitos de execução (por exemplo, SoundExchange - ou ECAD), royalties e direitos autorais pela execução digital - pública (por exemplo, Webcasting) da Obra, conforme as - disposições aplicáveis de direito autoral, se a execução - digital pública feita por Você for predominantemente - intencionada ou direcionada à obtenção de vantagem comercial - ou compensação monetária privada. - 5. Declarações, Garantias e Exoneração - EXCETO QUANDO FOR DE OUTRA FORMA MUTUAMENTE ACORDADO PELAS PARTES - POR ESCRITO, O LICENCIANTE OFERECE A OBRA “NO ESTADO EM QUE SE - ENCONTRA†(AS IS) E NÃO PRESTA QUAISQUER GARANTIAS OU DECLARAÇÕES - DE QUALQUER ESPÉCIE RELATIVAS À OBRA, SEJAM ELAS EXPRESSAS OU - IMPLÃCITAS, DECORRENTES DA LEI OU QUAISQUER OUTRAS, INCLUINDO, SEM - LIMITAÇÃO, QUAISQUER GARANTIAS SOBRE A TITULARIDADE DA OBRA, - ADEQUAÇÃO PARA QUAISQUER PROPÓSITOS, NÃO-VIOLAÇÃO DE DIREITOS, OU - INEXISTÊNCIA DE QUAISQUER DEFEITOS LATENTES, ACURACIDADE, PRESENÇA - OU AUSÊNCIA DE ERROS, SEJAM ELES APARENTES OU OCULTOS. EM - JURISDIÇÕES QUE NÃO ACEITEM A EXCLUSÃO DE GARANTIAS IMPLÃCITAS, - ESTAS EXCLUSÕES PODEM NÃO SE APLICAR A VOCÊ. - 6. Limitação de Responsabilidade. EXCETO NA EXTENSÃO EXIGIDA PELA LEI - APLICÃVEL, EM NENHUMA CIRCUNSTÂNCIA O LICENCIANTE SERà RESPONSÃVEL - PARA COM VOCÊ POR QUAISQUER DANOS, ESPECIAIS, INCIDENTAIS, - CONSEQUENCIAIS, PUNITIVOS OU EXEMPLARES, ORIUNDOS DESTA LICENÇA OU - DO USO DA OBRA, MESMO QUE O LICENCIANTE TENHA SIDO AVISADO SOBRE A - POSSIBILIDADE DE TAIS DANOS. - 7. Terminação - 1. Esta Licença e os direitos aqui concedidos terminarão - automaticamente no caso de qualquer violação dos termos desta - Licença por Você. Pessoas físicas ou jurídicas que tenham - recebido Obras Derivadas ou Obras Coletivas de Você sob esta - Licença, entretanto, não terão suas licenças terminadas desde - que tais pessoas físicas ou jurídicas permaneçam em total - cumprimento com essas licenças. As Seções 1, 2, 5, 6, 7 e 8 - subsistirão a qualquer terminação desta Licença. - 2. Sujeito aos termos e condições dispostos acima, a licença aqui - concedida é perpétua (pela duração do direito autoral - aplicável à Obra). Não obstante o disposto acima, o - Licenciante reserva-se o direito de difundir a Obra sob termos - diferentes de licença ou de cessar a distribuição da Obra a - qualquer momento; desde que, no entanto, quaisquer destas - ações não sirvam como meio de retratação desta Licença (ou de - qualquer outra licença que tenha sido concedida sob os termos - desta Licença, ou que deva ser concedida sob os termos desta - Licença) e esta Licença continuará válida e eficaz a não ser - que seja terminada de acordo com o disposto acima. - 8. Outras Disposições - 1. Cada vez que Você distribuir ou executar publicamente por - meios digitais a Obra ou uma Obra Coletiva, o Licenciante - oferece ao destinatário uma licença da Obra nos mesmos termos - e condições que a licença concedida a Você sob esta Licença. - 2. Cada vez que Você distribuir ou executar publicamente por - meios digitais uma Obra Derivada, o Licenciante oferece ao - destinatário uma licença à Obra original nos mesmos termos e - condições que foram concedidos a Você sob esta Licença. - 3. Se qualquer disposição desta Licença for tida como inválida ou - não-executável sob a lei aplicável, isto não afetará a - validade ou a possibilidade de execução do restante dos termos - desta Licença e, sem a necessidade de qualquer ação adicional - das partes deste acordo, tal disposição será reformada na - mínima extensão necessária para tal disposição tornar-se - válida e executável. - 4. Nenhum termo ou disposição desta Licença será considerado - renunciado e nenhuma violação será considerada consentida, a - não ser que tal renúncia ou consentimento seja feito por - escrito e assinado pela parte que será afetada por tal - renúncia ou consentimento. - 5. Esta Licença representa o acordo integral entre as partes com - respeito à Obra aqui licenciada. Não há entendimentos, acordos - ou declarações relativas à Obra que não estejam especificadas - aqui. O Licenciante não será obrigado por nenhuma disposição - adicional que possa aparecer em quaisquer comunicações - provenientes de Você. Esta Licença não pode ser modificada sem - o mútuo acordo, por escrito, entre o Licenciante e Você. - -Importante - - O Creative Commons não é uma parte desta Licença e não presta qualquer - garantia relacionada à Obra. O Creative Commons não será responsável - perante Você ou qualquer outra parte por quaisquer danos, incluindo, - sem limitação, danos gerais, especiais, incidentais ou consequentes, - originados com relação a esta licença. Não obstante as duas frases - anteriores, se o Creative Commons tiver expressamente se identificado - como o Licenciante, ele deverá ter todos os direitos e obrigações do - Licenciante. - - Exceto para o propósito delimitado de indicar ao público que a Obra é - licenciada sob a CCPL (Licença Pública Creative Commons), nenhuma parte - deverá utilizar a marca "Creative Commons" ou qualquer outra marca ou - logo relacionado ao Creative Commons sem consentimento prévio e por - escrito do Creative Commons. Qualquer uso permitido deverá ser de - acordo com as diretrizes do Creative Commons de utilização da marca - então válidas, conforme sejam publicadas em seu website ou de outro - modo disponibilizadas periodicamente mediante solicitação. - - O Creative Commons pode ser contactado pelo endereço: - [802]http://creativecommons.org/. - -F.2. A Licença do MIT - - Direitos autorais © 1999-2022 Gerard Beekmans - - Permissão é aqui concedida, gratuitamente, para qualquer pessoa que - obtenha uma cópia deste software e arquivos de documentação associados - (o "Software"), para lidar com o Software sem restrição, incluindo, sem - limitação, os direitos para usar, copiar, modificar, mesclar, publicar, - distribuir, sublicenciar, e (ou) vender cópias do Software, e para - permitir para as pessoas para quem o Software é fornecido para fazer o - mesmo, sujeito às seguintes condições: - - O aviso de direitos autorais acima e este aviso de permissão deveria - ser incluído em todas as cópias ou porções substanciais do Software. - - O SOFTWARE É FORNECIDO “NO ESTADO EM QUE SE ENCONTRAâ€, SEM GARANTIAS DE - QUALQUER ESPÉCIE, EXPLÃCITAS OU IMPLÃCITAS, INCLUINDO, PORÉM NÃO - LIMITADA A, AS GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO PARA UM - PROPÓSITO PARTICULAR E NÃO-VIOLAÇÃO. EM NENHUMA CIRCUNSTÂNCIA OS - AUTORES OU TITULARES DE DIREITOS AUTORAIS SERÃO RESPONSÃVEIS POR - QUAISQUER ALEGAÇÕES, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM UMA AÇÃO - DE CONTRATO, ATO ILÃCITO OU DE OUTRA FORMA, DECORRENTE DE, OU EM - CONEXÃO COM, O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO SOFTWARE. - -F.3. A Licença de Documentação Livre GNU - - Direitos autorais © 1999-2022 Jamenson Espindula - - Versão 1.3, 03 de novembro de 2008 - - Direitos autorais © 2000, 2001, 2002, 2007, 2008 Free Software - Foundation, Inc. http://fsf.org/ - - A qualquer pessoa é permitido copiar e distribuir cópias literais deste - documento de licença, porém modificá-lo não é permitido. - 1. PREÂMBULO - O propósito desta licença é tornar um manual, livro de texto, ou - outro documento funcional e útil livre no sentido da liberdade: - para assegurar a qualquer pessoa a liberdade efetiva para copiar e - redistribuí-lo, com ou sem modificações, ambos comercialmente ou - não comercialmente. Secundariamente, esta Licença preserva para o - autor e editor uma maneira de obter crédito pelos seus trabalhos, - ao mesmo tempo não sendo considerado responsável por modificações - feitas por outros. Esta Licença é uma espécie de “copyleft†- (“esquerdos autoraisâ€), o que significa que trabalhos derivados do - documento devem necessariamente eles mesmos serem livres no mesmo - sentido. Ela complementa a Licença Pública Geral GNU, a qual é uma - licença de esquerdos autorais projetada para software livre. Nós - projetamos esta Licença para utilizá-la para manuais para software - livre, porque software livre precisa de documentação livre: um - programa livre deveria vir com manuais provendo as mesmas - liberdades que o software provê. Porém esta Licença não é limitada - a manuais de software; ela pode ser utilizada para qualquer - trabalho textual, independentemente de questões de assunto ou se o - trabalho textual for publicado como um livro impresso. Nós - recomendamos esta Licença principalmente para trabalhos cujo - propósito seja instrução ou referência. - 2. APLICABILIDADE E DEFINIÇÕES - Esta Licença se aplica a qualquer manual ou outro trabalho, em - qualquer meio, que contenha um aviso colocado pelo detentor dos - direitos autorais dizendo que ele pode ser distribuído sob os - termos desta Licença. Tal aviso concede uma licença mundial, livre - de patente, ilimitada na duração, para utilizar aquele trabalho sob - as condições nela declaradas. O “Documentoâ€, abaixo, se refere a - quaisquer desses manuais ou trabalhos. Qualquer membro do publico é - um titular da licença, e é mencionado como “vocêâ€. Você aceita a - licença se você copiar, modificar ou distribuir o trabalho em uma - forma que exija permissão sob lei de direitos autorais. Uma “Versão - Modificada†do Documento significa qualquer trabalho contendo o - Documento ou uma porção dele, seja literalmente copiado, ou com - modificações e/ou traduzido em outra língua. Uma “Seção Secundária†- é um apêndice nomeado ou uma seção pré-textual do Documento que - lida exclusivamente com o relacionamento dos editores ou autores do - Documento para com o assunto global do Documento (ou com questões - relacionadas) e não contém nada que possa se conformar diretamente - com aquele assunto global. (Assim, se o Documento for em parte um - livro texto de matemática, uma Seção Secundária não pode explanar - nada acerca de cálculos matemáticos). O relacionamento poderia ser - uma questão de conexão histórica com o assunto ou com questões - relacionadas, ou de posicionamento legal, comercial, filosófico, - ético ou político respeitante a eles. As “Seções Invariantes†são - certas Seções Secundárias cujos títulos são projetados, como sendo - aqueles de Seções Invariantes, no aviso que diz que o Documento é - publicado sob esta Licença. Se uma seção não se encaixa na - definição de Secundária acima, então a seção não está autorizada a - ser designada como Invariante. O Documento pode conter zero Seções - Invariantes. Se o Documento não identifica quaisquer Seções - Invariantes, então não existe nenhuma. Os “Textos de Capa†são - certas passagens curtas de texto que são listadas, como Textos de - Primeira Capa ou Textos de Quarta-Capa, no aviso que diz que o - Documento é publicado sob esta Licença. Um Texto de Primeira Capa - pode ter no máximo cinco (05) palavras, e um Texto de Quarta Capa - pode ter no máximo vinte e cinco (25) palavras. Uma cópia - “Transparente†do Documento significa uma cópia legível por - máquina, representada em um formato cuja especificação está - disponível para o público em geral, que é adequada para revisar o - documento diretamente com editores de texto genéricos ou (para - imagens compostas de pixeis) programas de pintura genéricos ou - (para desenhos) algum editor de desenho disponível amplamente, e - que seja adequado para entrada a formatadores de texto ou para - tradução automática a uma variedade de formatos próprios para - entrada a formatadores de texto. Uma cópia feita em um formato de - arquivo contrário ao Transparente, cuja linguagem de marcação, ou - ausência de linguagem de marcação, tenha sido organizada para - frustrar ou desencorajar modificações subsequentes por leitores, - não é Transparente. Um formato de imagem não é Transparente se - utilizado para qualquer quantidade substancial de texto. Uma cópia - que não é “Transparente†é chamada “Opacaâ€. Exemplos de formatos - adequados para cópias Transparentes incluem ASCII puro sem - marcações; formato de entrada Texinfo; formato de entrada LaTeX; - SGML ou XML utilizando um DTD disponível publicamente; HTML simples - conformante com o padrão; PostScript ou PDF projetado para - modificação humana. Exemplos de formatos transparantes de imagens - incluem PNG, XCF e JPG. Formatos opacos incluem formatos - proprietários que podem ser lidos e editados somente por - processadores proprietários de palavra; SGML ou XML para os quais o - DTD e/ou as ferramentas de processamentos não estejam disponíveis - genericamente; e o HTML gerado por máquina; PostScript ou PDF - produzidos por alguns processadores de palavra apenas para - propósitos de saída. A “Página de Título†significa, para um livro - impresso, a própria página de título, mais tantas páginas seguintes - quantas sejam necessárias para manter, legivelmente, o material que - esta Licença exige para aparecer na página de título. Para - trabalhos em formatos que não tenham qualquer página de título como - tal, “Página de Título†significa o texto próximo da mais - proeminente aparição do título do trabalho, precedendo o início do - corpo do texto. O “editor†significa qualquer pessoa ou entidade - que distribui cópias do Documento ao público. Uma seção “Intitulada - XYZ†significa uma subunidade nomeada do Documento cujo título ou é - precisamente XYZ ou contém XYZ entre parênteses seguinte ao texto - que traduz XYZ em outra linguagem. (Aqui XYZ significa um nome - específico de seção mencionado abaixo, tais como “Agradecimentosâ€; - “Dedicatóriasâ€; “Patrocíniosâ€; ou “Históricoâ€). “Preservar o - Título†de tal seção quando você modificar o Documento significa - que ele permanece uma seção “Intitulada XYZ†de acordo com essa - definição. O Documento pode incluir Declarações de Garantia - próximas ao aviso que declara que esta Licença se aplica ao - Documento. Essas Declarações de Garantia são consideradas como - inclusas por referência nesta Licença, porém somente com relação à - negação de garantias: qualquer outra implicação que essas - Declarações de Garantia possam ter é inválida e não tem efeito - sobre o significado desta Licença. - 3. CÓPIA LITERAL - Você pode copiar e distribuir o Documento em qualquer meio, ambos - comercialmente e não comercialmente, contanto que esta Licença, os - avisos de direitos autorais, e o aviso de licença dizendo que esta - Licença se aplica ao Documento estejam reproduzidas em todas as - cópias, e que você não adiciona quaisquer outras condições, - quaisquer que sejam, àquelas desta Licença. Você não pode utilizar - medidas técnicas para obstruir ou controlar a leitura ou - posteriores cópias das cópias que você fizer ou distribuir. - Entretanto, você pode aceitar remuneração em troca das cópias. Se - você distribui um número de cópias grande o suficiente, você deve - necessariamente também seguir as condições na seção três (3). Você - também pode ceder cópias, sob as mesmas condições declaradas acima, - e você pode publicamente exibir cópias. - 4. CÓPIAS EM QUANTIDADE - Se você publicar cópias impressas (ou cópias em mídia que - geralmente tem capas impressas) do Documento, em número maior que - cem (100), e o aviso de licença do Documento exigir Textos de Capa, - você deve necessariamente encartar as cópias em capas que - transportem, claramente e legivelmente, todos estes Textos de Capa: - Textos de Primeira Capa na primeira capa, e Textos de Quarta Capa - na capa traseira. Ambas as capas devem necessariamente também - claramente e legivelmente identificar você como o editor dessas - cópias. A capa frontal deve necessariamente apresentar o título - completo com todas as palavras do título igualmente proeminentes e - visíveis. Você pode adicionar outros materiais nas capas - adicionalmente. As cópias com modificações limitadas às capas, - tanto quanto preservem o título do Documento e satisfaçam essas - condições, podem ser tratadas como cópias literais em relação a - outros aspectos. Se os textos exigidos para ambas as capas forem - muito volumosos para caber legivelmente, você deveria colocar os - primeiros listados (tantos quantos caibam razoavelmente) na capa - atual, e continuar o restante em páginas adjacentes. Se você - publicar ou distribuir cópias Opacas do Documento em número maior - que cem (100), você deve necessariamente ou incluir uma cópia - Transparente, legível por máquina, junto com cada cópia Opaca, ou - declarar, na ou com cada cópia Opaca, uma localização de rede de - computador, a partir da qual o público usuário de rede geral tenha - acesso para baixar, utilizando protocolos de rede de padrão - público, uma cópia Transparente completa do Documento, livre do - material adicionado. Se você se utilizar da última opção, você deve - necessariamente adotar razoavelmente passos prudentes, quando você - iniciar a distribuição de cópias Opacas em quantidade, para se - assegurar que essa cópia Transparente permanecerá então acessível - na localização declarada até pelo menos um ano após a última vez - que você distribuiu uma cópia Opaca (diretamente ou por intermédio - dos seus agentes ou varejistas) daquela edição ao público. É - pedido, mas não exigido, que você contate os autores do Documento - bem antes de redistribuir qualquer número grande de cópias, para - dá-los a oportunidade de lhe fornecer uma versão atualizada do - Documento. - 5. MODIFICAÇÕES - Você pode copiar e distribuir uma Versão Modificada do Documento - sob as condições das seções dois (2) e três (3) acima, contanto que - você publique a Versão Modificada precisamente sob esta Licença, - com a Versão Modificada preenchendo a função do Documento, portanto - licenciando a distribuição e modificação da Versão Modificada a - quem quer que possua uma cópia dela. Adicionalmente, você deve - necessariamente fazer estas coisas na Versão Modificada: - 1. Utilize na Página de Título (e nas capas, se existentes) um - título distinto daquele do Documento, e daqueles das versões - prévias (as quais deveriam, se existiu alguma, serem listadas - na seção Histórico do Documento). Você pode utilizar o mesmo - título que uma versão prévia, se o editor original daquela - versão conceder permissão. - 2. Liste na Página de Título, como autores, uma ou mais pessoas - ou entidades responsáveis pela autoria das modificações na - Versão Modificada, junto com ao menos cinco dos autores - principais do Documento (todos os autores principais, se tiver - menos que cinco), a menos que eles liberem você dessa - exigência. - 3. Declare na Página de Título o nome do editor da Versão - Modificada, como o editor. - 4. Preserve todos os avisos de direitos autorais do Documento. - 5. Adicione um aviso apropriado de direitos autorais para suas - modificações, adjacente aos outros avisos de direitos - autorais. - 6. Inclua, imediatamente após os avisos de direitos autorais, um - aviso de licença concedendo ao público permissão para utilizar - a Versão Modificada sob os termos desta Licença, na forma - mostrada no Adendo abaixo. - 7. Preserve, naquele aviso de licença, as listas completas de - Seções Invariantes e Textos de Capa exigidos dados no aviso de - licença do Documento. - 8. Inclua uma cópia inalterada desta Licença. - 9. Preserve a seção intitulada “Históricoâ€, Preserve seu Título, - e adicione a ele um item declarando ao menos o título, ano, - novos autores, e editor da Versão Modificada, conforme dado na - Página de Título. Se não existir uma seção intitulada - “Histórico†no Documento, crie uma declarando o título, ano, - autores, e editor do Documento, conforme dado em sua Página de - Título, então adicione um item descrevendo a Versão - Modificada, conforme declarado na frase prévia. - 10. Preserve a localização de rede, se existente, dada no - Documento para acesso público a uma cópia Transparente do - Documento, e da mesma forma as localizações de rede dadas no - Documento para versões prévias nas quais foi baseado. Essas - podem ser colocadas na seção “Históricoâ€. Você pode omitir uma - localização de rede para um trabalho que foi publicado nos - últimos quatro anos anteriores à publicação do próprio do - Documento, ou se o editor original da versão à qual a - localização de rede se refere conceder permissão. - 11. Para cada seção Intitulada “Agradecimentos†ou “Dedicatóriasâ€, - Preserve o Título da seção, e preserve na seção toda a - substância e tonalidade de cada um dos agradecimentos a - contribuidores e/ou dedicatórias dadas nela. - 12. Preserve todas as Seções Invariantes do Documento, inalteradas - em seus textos e em seus títulos. Os números de Seção ou o - equivalente não são considerados parte dos títulos de seção. - 13. Delete quaisquer seções Intituladas “Patrocíniosâ€. Tal seção - não pode ser incluída na Versão Modificada. - 14. Não reintitule qualquer seção existente para Intitulada - “Patrocínios†ou para conflitar no título com qualquer Seção - Invariante. - 15. Preserve quaisquer Declarações de Garantia. - Se a Versão Modificada incluir novas seções pré textuais ou - apêndices que se qualifiquem como Seções Secundárias e não - contenham material copiado a partir do Documento, você pode, a sua - escolha, designar algumas ou todas essas seções como Invariantes. - Para fazer isso, adicione seus títulos à lista das Seções - Invariantes no aviso de licença da Versão Modificada. Esses títulos - devem necessariamente serem distintos de quaisquer outros títulos - de seções. Você pode adicionar uma seção Intitulada “Patrocíniosâ€, - contanto que ela não contenha nada além de patrocínios da sua - Versão Modificada por vários patrocinadores—por exemplo, - declarações de avaliadores ou aquelas de que o texto foi aprovado - por uma organização como a definição autorizativa de um padrão. - Você pode adicionar uma passagem de até cinco palavras, como um - Texto de Primeira Capa, e uma passagem de até vinte e cinco - palavras, como um Texto de Quarta Capa, ao final da lista dos - Textos de Capa na Versão Modificada. Somente uma passagem de Texto - de Primeira Capa e uma de Texto de Quarta Capa podem ser - adicionadas por (ou mediante acordos feitos por) qualquer uma - entidade. Se o Documento já inclui um texto de capa para a mesma - capa, previamente adicionado por você ou por acordo feito pela - mesma entidade pela qual você está atuando, você não pode adicionar - outro; porém você pode substituir o antigo, na permissão explícita - do editor prévio que adicionou o antigo. O(s) autor(s) e editor(s) - do Documento, por esta Licença, não concedem permissão para - utilizar seus nomes para publicidade para ou para afirmar ou - implicar patrocínio de qualquer Versão Modificada. - 6. COMBINANDO DOCUMENTOS - Você pode combinar o Documento com outros documentos publicados sob - esta Licença, sob os termos definidos na seção quatro (4) acima - para versões modificadas, contanto que você inclua na combinação - todas as Seções Invariantes de todos os documentos originais, não - modificados, e listá-los todos como Seções Invariantes do seu - trabalho combinado no seu aviso de licença, e você preserva todas - as Declarações de Garantias deles. O trabalho combinado precisa - conter somente uma cópia desta Licença, e múltiplas Seções - Invariantes idênticas podem ser substituídas por uma cópia única. - Se existirem múltiplas Seções Invariantes com o mesmo nome, mas - conteúdos diferentes, torne o título de cada uma de tal seção único - adicionando ao final dele, entre parênteses, o nome do autor ou - editor original daquela seção se conhecido, ou, do contrário, um - número único. Faça o mesmo ajuste aos títulos da seção na lista de - Seções Invariantes no aviso de licença do trabalho combinado. Na - combinação, você deve necessariamente combinar quaisquer seções - Intituladas “Histórico†nos vários documentos originais, formando - uma seção Intitulada “Históricoâ€; de mesma maneira, combine - quaisquer seções Intituladas “Agradecimentosâ€, e quaisquer seções - Intituladas “Dedicatóriasâ€. Você deve necessariamente deletar todas - as seções Intituladas “Patrocíniosâ€. - 7. COLEÇÕES DE DOCUMENTOS - Você pode produzir uma coleção consistente do Documento e outros - documentos publicados sob esta Licença, e substitua as cópias - individuais desta Licença nos vários documentos por uma cópia única - que esteja incluída na coleção, contanto que você siga as regras - desta Licença para cópias literais de cada um dos documentos em - todos os outros aspectos. Você pode extrair um documento único de - tal coleção, e distribuí-lo individualmente sob esta Licença, - contanto que você insira uma cópia desta Licença no documento - extraído, e siga esta Licença em todos os outros aspectos relativos - à cópias literais daquele documento. - 8. AGREGAÇÃO COM TRABALHOS INDEPENDENTES - Uma compilação do Documento ou seus derivados com outros documentos - separados e independentes ou trabalhos, dentro ou junto a volume de - armazenamento ou meio de distribuição, é chamado em “agregado†se - os direitos autorais resultantes da compilação não forem utilizados - para limitar os direitos legais dos usuários da compilação além do - que os trabalhos individuais permitem. Quando o Documento for - incluído em um agregado, esta Licença não se aplica aos outros - trabalhos no agregado, os quais não são eles próprios trabalhos - derivados do Documento. Se a exigência do Texto de Capa da seção - três (3) for aplicável a essas cópias do Documento, então se o - Documento for menor que a metade do agregado inteiro, os Textos de - Capa do Documento podem ser colocados em capas que encartem o - Documento dentro do agregado, ou o equivalente eletrônico de capas - se o Documento estiver em formato eletrônico. Do contrário, eles - devem necessariamente aparecer nas capas impressas que encartem o - agregado inteiro. - 9. TRADUÇÃO - Tradução é considerada um tipo de modificação, de forma que você - pode distribuir traduções do Documento sob os termos da seção - quatro (4). A substituição de Seções Invariantes por traduções - exige permissão especial de seus detentores dos direitos autorais, - porém você pode incluir traduções de algumas ou todas as Seções - Invariantes adicionalmente às versões originais dessas Seções - Invariantes. Você pode incluir uma tradução desta Licença, e todos - os avisos de licença no Documento, e quaisquer Declarações de - Garantia, contanto que você inclua também a versão original em - Inglês desta Licença e as versões originais daqueles avisos e - declarações. No caso de uma divergência entre a tradução e a versão - original desta Licença ou um aviso ou declaração, a versão original - prevalecerá. Se uma seção no Documento for Intitulada - “Agradecimentosâ€, “Dedicatóriasâ€, ou “Históricoâ€, a exigência - (seção 4) de Preservar seu Título (seção 1) tipicamente exigirá a - modificação do título atual. - 10. FINALIZAÇÃO - Você não pode copiar, modificar, sublicenciar, ou distribuir o - Documento, exceto conforme expressamente provido sob esta Licença. - Qualquer tentativa clandestina de copiar, modificar, sublicenciar, - ou distribuir o Documento é inválida, e automaticamente finalizará - seus direitos sob esta Licença. Entretanto, se você cessar todas as - violações a esta Licença, então a sua licença oriunda de um - detentor de direitos autorais em particular está restabelecida (a) - provisoriamente, a menos e até que o detentor dos direitos autorais - explicita e finalmente cancele sua licença; e (b) permanentemente, - se o detentor dos direitos autorais falhar em notificar você da - violação, por algum meio razoável, antes de sessenta (60) dias após - a cessação. Além disso, a sua licença oriunda de um detentor de - direitos autorais em particular está restabelecida permanentemente - se o detentor dos direitos autorais notificar você sobre a violação - por algum meio razoável, essa for a primeira vez que você recebeu - um aviso de violação desta Licença (para qualquer trabalho) oriunda - daquele detentor de direitos autorais, e você sanar a violação - antes de decorridos trinta (30) dias após o seu recebimento do - aviso. A finalização dos seus direitos sob esta seção não finaliza - as licenças de varejistas que tenham recebido cópias ou direitos de - você sob esta Licença. Se os seus direitos tiverem sido finalizados - e não permanentemente restabelecidos, o recebimento de uma cópia de - algum ou de tudo do mesmo material não concede a você direitos de - utilizá-lo. - 11. REVISÕES FUTURAS DESTA LICENÇA - A Free Software Foundation pode publicar novas, revisadas versões - da Licença de Documentação Livre GNU de tempos em tempos. Tais - novas versões serão similares na essência à presente versão, porém - podem diferir em detalhes para abarcar novos problemas ou assuntos. - Veja-se http://www.gnu.org/copyleft/. Para cada versão da Licença é - dado um número distintivo de versão. Se o Documento especifica que - uma versão numerada em particular desta Licença “ou qualquer versão - posterior†se aplica a ele, você tem a opção de seguir os termos e - condições ou da versão especificada ou de qualquer versão posterior - que tenha sido publicada (não como um rascunho) pela Free Software - Foundation. Se o Documento não especifica um número de versão desta - Licença, você pode escolher qualquer versão já publicada (não como - um rascunho) pela Free Software Foundation. Se o Documento - especifica que um procurador pode decidir quais versões futuras - desta Licença podem ser utilizadas, essa declaração pública do - procurador de aceitação de uma versão permanentemente autoriza você - a escolher aquela versão para o Documento. - 12. RELICENCIAMENTO - “Sítio de Colaboração Massiva Multi autor†(ou “Sítio MMCâ€) - significa qualquer servidor da Rede Mundial de Computadores que - publica trabalhos sujeitos a direitos autorais e também provê - facilidades proeminentes para qualquer pessoa editar esses - trabalhos. Um wiki público que qualquer pessoa pode editar é um - exemplo de tal servidor. Uma “Colaboração Massiva Multi autor†(ou - “MMCâ€) contida no sítio significa qualquer conjunto de trabalhos - sujeitos a direitos autorais assim publicados no sítio MMC. - “CC-BY-SA†significa a licença Creative Commons Attribution-Share - Alike 3.0 publicada pela Creative Commons Corporation, uma - corporação sem fins lucrativos com seu domicílio empresarial - situado em São Francisco, Califórnia, Estados Unidos da América do - Norte, bem como versões futuras de esquerdos autorais dessa licença - publicadas pela mesma organização. “Incorporar†significa publicar - ou republicar um Documento, no todo ou em parte, como parte de - outro Documento. Um MMC é “elegível para relicenciamento†se ele - for licenciado sob esta Licença, e se todos os trabalhos que foram - primeiro publicados sob esta Licença em algum lugar que não esse - MMC, e subsequentemente incorporados, no todo ou em parte, no MMC, - (1) não tinham textos de capa ou seções invariantes; e (2) estavam - assim incorporados antes de 01 de novembro de 2008. O operador de - um Sítio MMC pode republicar um MMC contido no sítio sob CC-BY-SA, - no mesmo sítio, a qualquer tempo antes de 01 de agosto de 2009, - contanto que o MMC seja elegível para relicenciamento. - - ADENDO: Como utilizar esta Licença para seus documentos - - Para utilizar esta Licença em um documento que você escreveu, inclua - uma cópia da Licença no documento e coloque os seguintes avisos de - direitos autorais e licença pouco depois da página de título: - - Direitos autorais (C) ano seu nome. - Permissão é concedida para copiar, distribuir e/ou modificar este - documento sob os termos da Licença de Documentação Livre GNU, Versão - 1.3 ou qualquer versão posterior publicada pela Free Software - Foundation; sem Seções Invariantes, sem Textos de Primeira Capa, e sem - Textos de Quarta Capa. Uma cópia da licença está inclusa na seção - intitulada ``Licença de Documentação Livre GNU''. - - - Se você tiver Seções Invariantes, Textos de Primeira Capa e Textos de - Quarta Capa, substitua a linha ``sem ... Capa'' por isto: - - com as Seções Invariantes sendo liste seus títulos, com os - Textos de Primeira Capa sendo lista, e com os Textos de Quarta - Capa sendo lista. - - - Se você tiver Seções Invariantes sem Textos de Capa, ou alguma outra - combinação dos três, mescle essas duas alternativas para adequar a - situação. - - Se o seu documento contém exemplos não triviais de código de - programação, nós recomendamos publicar esses exemplos em paralelo, sob - sua escolha de licença de software livre, tal como a Licença Pública - Geral GNU, para permitir seu uso em software livre. - -Ãndice Remissivo - - * Acl: [803]Acl-2.3.1 - * Attr: [804]Attr-2.5.1 - * Autoconf: [805]Autoconf-2.71 - * Automake: [806]Automake-1.16.5 - * Bash: [807]Bash-5.1.16 - + tools: [808]Bash-5.1.16 - * Bc: [809]Bc-5.2.2 - * Binutils: [810]Binutils-2.38 - + tools, pass 1: [811]Binutils-2.38 - Passagem 1 - + tools, pass 2: [812]Binutils-2.38 - Passagem 2 - * Bison: [813]Bison-3.8.2 - + tools: [814]Bison-3.8.2 - * Bootscripts: [815]LFS-Bootscripts-20210608 - + usage: [816]Uso e Configuração do Script de Inicialização do - System V - * Bzip2: [817]Bzip2-1.0.8 - * Check: [818]Check-0.15.2 - * Coreutils: [819]Coreutils-9.0 - + tools: [820]Coreutils-9.0 - * DejaGNU: [821]DejaGNU-1.6.3 - * Diffutils: [822]Diffutils-3.8 - + tools: [823]Diffutils-3.8 - * E2fsprogs: [824]E2fsprogs-1.46.5 - * Eudev: [825]Eudev-3.2.11 - + configuring: [826]Configurando Eudev - * Expat: [827]Expat-2.4.6 - * Expect: [828]Expect-5.45.4 - * File: [829]File-5.41 - + tools: [830]File-5.41 - * Findutils: [831]Findutils-4.9.0 - + tools: [832]Findutils-4.9.0 - * Flex: [833]Flex-2.6.4 - * Gawk: [834]Gawk-5.1.1 - + tools: [835]Gawk-5.1.1 - * GCC: [836]GCC-11.2.0 - + tools, libstdc++ pass 1: [837]Libstdc++ oriundo de GCC-11.2.0, - Passagem 1 - + tools, libstdc++ pass 2: [838]Libstdc++ oriundo de GCC-11.2.0, - Passagem 2 - + tools, pass 1: [839]GCC-11.2.0 - Passagem 1 - + tools, pass 2: [840]GCC-11.2.0 - Passagem 2 - * GDBM: [841]GDBM-1.23 - * Gettext: [842]Gettext-0.21 - + tools: [843]Gettext-0.21 - * Glibc: [844]Glibc-2.35 - + tools: [845]Glibc-2.35 - * GMP: [846]GMP-6.2.1 - * Gperf: [847]Gperf-3.1 - * Grep: [848]Grep-3.7 - + tools: [849]Grep-3.7 - * Groff: [850]Groff-1.22.4 - * GRUB: [851]GRUB-2.06 - * Gzip: [852]Gzip-1.11 - + tools: [853]Gzip-1.11 - * Iana-Etc: [854]Iana-Etc-20220207 - * Inetutils: [855]Inetutils-2.2 - * Intltool: [856]Intltool-0.51.0 - * IPRoute2: [857]IPRoute2-5.16.0 - * Kbd: [858]Kbd-2.4.0 - * Kmod: [859]Kmod-29 - * Less: [860]Less-590 - * Libcap: [861]Libcap-2.63 - * Libelf: [862]Libelf oriundo de Elfutils-0.186 - * libffi: [863]Libffi-3.4.2 - * Libpipeline: [864]Libpipeline-1.5.5 - * Libtool: [865]Libtool-2.4.6 - * Linux: [866]Linux-5.16.9 - + tools, API headers: [867]Cabeçalhos da API do Linux-5.16.9 - * M4: [868]M4-1.4.19 - + tools: [869]M4-1.4.19 - * Make: [870]Make-4.3 - + tools: [871]Make-4.3 - * Man-DB: [872]Man-DB-2.10.1 - * Man-pages: [873]Man-pages-5.13 - * Meson: [874]Meson-0.61.1 - * MPC: [875]MPC-1.2.1 - * MPFR: [876]MPFR-4.1.0 - * Ncurses: [877]Ncurses-6.3 - + tools: [878]Ncurses-6.3 - * Ninja: [879]Ninja-1.10.2 - * OpenSSL: [880]OpenSSL-3.0.1 - * Patch: [881]Patch-2.7.6 - + tools: [882]Patch-2.7.6 - * Perl: [883]Perl-5.34.0 - + tools: [884]Perl-5.34.0 - * Pkgconfig: [885]Pkg-config-0.29.2 - * Procps-ng: [886]Procps-ng-3.3.17 - * Psmisc: [887]Psmisc-23.4 - * Python: [888]Python-3.10.2 - + temporary: [889]Python-3.10.2 - * rc.site: [890]O Arquivo rc.site - * Readline: [891]Readline-8.1.2 - * Sed: [892]Sed-4.8 - + tools: [893]Sed-4.8 - * Shadow: [894]Shadow-4.11.1 - + configuring: [895]Configurando Shadow - * Sysklogd: [896]Sysklogd-1.5.1 - + configuring: [897]Configurando Sysklogd - * Sysvinit: [898]Sysvinit-3.01 - + configuring: [899]Configurando o Sysvinit - * Tar: [900]Tar-1.34 - + tools: [901]Tar-1.34 - * Tcl: [902]Tcl-8.6.12 - * Texinfo: [903]Texinfo-6.8 - + temporary: [904]Texinfo-6.8 - * Udev: - + usage: [905]Visão Geral do Manuseio de Dispositivos e Módulos - * Util-linux: [906]Util-linux-2.37.4 - + tools: [907]Util-linux-2.37.4 - * Vim: [908]Vim-8.2.4383 - * XML::Parser: [909]XML::Parser-2.46 - * Xz: [910]Xz-5.2.5 - + tools: [911]Xz-5.2.5 - * Zlib: [912]Zlib-1.2.11 - * zstd: [913]Zstd-1.5.2 - - * [: [914]Coreutils-9.0 -- - * 2to3: [915]Python-3.10.2 - * accessdb: [916]Man-DB-2.10.1 -- - * aclocal: [917]Automake-1.16.5 -- - * aclocal-1.16: [918]Automake-1.16.5 -- - * addftinfo: [919]Groff-1.22.4 -- - * addpart: [920]Util-linux-2.37.4 -- - * addr2line: [921]Binutils-2.38 -- - * afmtodit: [922]Groff-1.22.4 -- - * agetty: [923]Util-linux-2.37.4 -- - * apropos: [924]Man-DB-2.10.1 -- - * ar: [925]Binutils-2.38 -- - * as: [926]Binutils-2.38 -- - * attr: [927]Attr-2.5.1 -- - * autoconf: [928]Autoconf-2.71 -- - * autoheader: [929]Autoconf-2.71 -- - * autom4te: [930]Autoconf-2.71 -- - * automake: [931]Automake-1.16.5 -- - * automake-1.16: [932]Automake-1.16.5 -- - * autopoint: [933]Gettext-0.21 -- - * autoreconf: [934]Autoconf-2.71 -- - * autoscan: [935]Autoconf-2.71 -- - * autoupdate: [936]Autoconf-2.71 -- - * awk: [937]Gawk-5.1.1 -- - * b2sum: [938]Coreutils-9.0 -- - * badblocks: [939]E2fsprogs-1.46.5 -- - * base64: [940]Coreutils-9.0 -- - * basename: [941]Coreutils-9.0 -- - * basenc: [942]Coreutils-9.0 -- - * bash: [943]Bash-5.1.16 -- - * bashbug: [944]Bash-5.1.16 -- - * bc: [945]Bc-5.2.2 -- - * bison: [946]Bison-3.8.2 -- - * blkdiscard: [947]Util-linux-2.37.4 -- - * blkid: [948]Util-linux-2.37.4 -- - * blkzone: [949]Util-linux-2.37.4 -- - * blockdev: [950]Util-linux-2.37.4 -- - * bootlogd: [951]Sysvinit-3.01 -- - * bridge: [952]IPRoute2-5.16.0 -- - * bunzip2: [953]Bzip2-1.0.8 -- - * bzcat: [954]Bzip2-1.0.8 -- - * bzcmp: [955]Bzip2-1.0.8 -- - * bzdiff: [956]Bzip2-1.0.8 -- - * bzegrep: [957]Bzip2-1.0.8 -- - * bzfgrep: [958]Bzip2-1.0.8 -- - * bzgrep: [959]Bzip2-1.0.8 -- - * bzip2: [960]Bzip2-1.0.8 -- - * bzip2recover: [961]Bzip2-1.0.8 -- - * bzless: [962]Bzip2-1.0.8 -- - * bzmore: [963]Bzip2-1.0.8 -- - * c++: [964]GCC-11.2.0 -- - * c++filt: [965]Binutils-2.38 -- - * cal: [966]Util-linux-2.37.4 -- - * capsh: [967]Libcap-2.63 -- - * captoinfo: [968]Ncurses-6.3 -- - * cat: [969]Coreutils-9.0 -- - * catman: [970]Man-DB-2.10.1 -- - * cc: [971]GCC-11.2.0 -- - * cfdisk: [972]Util-linux-2.37.4 -- - * chacl: [973]Acl-2.3.1 -- - * chage: [974]Shadow-4.11.1 -- - * chattr: [975]E2fsprogs-1.46.5 -- - * chcon: [976]Coreutils-9.0 -- - * chcpu: [977]Util-linux-2.37.4 -- - * checkmk: [978]Check-0.15.2 -- - * chem: [979]Groff-1.22.4 -- - * chfn: [980]Shadow-4.11.1 -- - * chgpasswd: [981]Shadow-4.11.1 -- - * chgrp: [982]Coreutils-9.0 -- - * chmem: [983]Util-linux-2.37.4 -- - * chmod: [984]Coreutils-9.0 -- - * choom: [985]Util-linux-2.37.4 -- - * chown: [986]Coreutils-9.0 -- - * chpasswd: [987]Shadow-4.11.1 -- - * chroot: [988]Coreutils-9.0 -- - * chrt: [989]Util-linux-2.37.4 -- - * chsh: [990]Shadow-4.11.1 -- - * chvt: [991]Kbd-2.4.0 -- - * cksum: [992]Coreutils-9.0 -- - * clear: [993]Ncurses-6.3 -- - * cmp: [994]Diffutils-3.8 -- - * col: [995]Util-linux-2.37.4 -- - * colcrt: [996]Util-linux-2.37.4 -- - * colrm: [997]Util-linux-2.37.4 -- - * column: [998]Util-linux-2.37.4 -- - * comm: [999]Coreutils-9.0 -- - * compile_et: [1000]E2fsprogs-1.46.5 -- - * corelist: [1001]Perl-5.34.0 -- - * cp: [1002]Coreutils-9.0 -- - * cpan: [1003]Perl-5.34.0 -- - * cpp: [1004]GCC-11.2.0 -- - * csplit: [1005]Coreutils-9.0 -- - * ctrlaltdel: [1006]Util-linux-2.37.4 -- - * ctstat: [1007]IPRoute2-5.16.0 -- - * cut: [1008]Coreutils-9.0 -- - * c_rehash: [1009]OpenSSL-3.0.1 -- - * date: [1010]Coreutils-9.0 -- - * dc: [1011]Bc-5.2.2 -- - * dd: [1012]Coreutils-9.0 -- - * deallocvt: [1013]Kbd-2.4.0 -- - * debugfs: [1014]E2fsprogs-1.46.5 -- - * dejagnu: [1015]DejaGNU-1.6.3 -- - * delpart: [1016]Util-linux-2.37.4 -- - * depmod: [1017]Kmod-29 -- - * df: [1018]Coreutils-9.0 -- - * diff: [1019]Diffutils-3.8 -- - * diff3: [1020]Diffutils-3.8 -- - * dir: [1021]Coreutils-9.0 -- - * dircolors: [1022]Coreutils-9.0 -- - * dirname: [1023]Coreutils-9.0 -- - * dmesg: [1024]Util-linux-2.37.4 -- - * dnsdomainname: [1025]Inetutils-2.2 -- - * du: [1026]Coreutils-9.0 -- - * dumpe2fs: [1027]E2fsprogs-1.46.5 -- - * dumpkeys: [1028]Kbd-2.4.0 -- - * e2freefrag: [1029]E2fsprogs-1.46.5 -- - * e2fsck: [1030]E2fsprogs-1.46.5 -- - * e2image: [1031]E2fsprogs-1.46.5 -- - * e2label: [1032]E2fsprogs-1.46.5 -- - * e2mmpstatus: [1033]E2fsprogs-1.46.5 -- - * e2scrub: [1034]E2fsprogs-1.46.5 -- - * e2scrub_all: [1035]E2fsprogs-1.46.5 -- - * e2undo: [1036]E2fsprogs-1.46.5 -- - * e4crypt: [1037]E2fsprogs-1.46.5 -- - * e4defrag: [1038]E2fsprogs-1.46.5 -- - * echo: [1039]Coreutils-9.0 -- - * egrep: [1040]Grep-3.7 -- - * eject: [1041]Util-linux-2.37.4 -- - * elfedit: [1042]Binutils-2.38 -- - * enc2xs: [1043]Perl-5.34.0 -- - * encguess: [1044]Perl-5.34.0 -- - * env: [1045]Coreutils-9.0 -- - * envsubst: [1046]Gettext-0.21 -- - * eqn: [1047]Groff-1.22.4 -- - * eqn2graph: [1048]Groff-1.22.4 -- - * ex: [1049]Vim-8.2.4383 -- - * expand: [1050]Coreutils-9.0 -- - * expect: [1051]Expect-5.45.4 -- - * expiry: [1052]Shadow-4.11.1 -- - * expr: [1053]Coreutils-9.0 -- - * factor: [1054]Coreutils-9.0 -- - * faillog: [1055]Shadow-4.11.1 -- - * fallocate: [1056]Util-linux-2.37.4 -- - * false: [1057]Coreutils-9.0 -- - * fdisk: [1058]Util-linux-2.37.4 -- - * fgconsole: [1059]Kbd-2.4.0 -- - * fgrep: [1060]Grep-3.7 -- - * file: [1061]File-5.41 -- - * filefrag: [1062]E2fsprogs-1.46.5 -- - * fincore: [1063]Util-linux-2.37.4 -- - * find: [1064]Findutils-4.9.0 -- - * findfs: [1065]Util-linux-2.37.4 -- - * findmnt: [1066]Util-linux-2.37.4 -- - * flex: [1067]Flex-2.6.4 -- - * flex++: [1068]Flex-2.6.4 -- - * flock: [1069]Util-linux-2.37.4 -- - * fmt: [1070]Coreutils-9.0 -- - * fold: [1071]Coreutils-9.0 -- - * free: [1072]Procps-ng-3.3.17 -- - * fsck: [1073]Util-linux-2.37.4 -- - * fsck.cramfs: [1074]Util-linux-2.37.4 -- - * fsck.ext2: [1075]E2fsprogs-1.46.5 -- - * fsck.ext3: [1076]E2fsprogs-1.46.5 -- - * fsck.ext4: [1077]E2fsprogs-1.46.5 -- - * fsck.minix: [1078]Util-linux-2.37.4 -- - * fsfreeze: [1079]Util-linux-2.37.4 -- - * fstab-decode: [1080]Sysvinit-3.01 -- - * fstrim: [1081]Util-linux-2.37.4 -- - * ftp: [1082]Inetutils-2.2 -- - * fuser: [1083]Psmisc-23.4 -- - * g++: [1084]GCC-11.2.0 -- - * gawk: [1085]Gawk-5.1.1 -- - * gawk-5.1.1: [1086]Gawk-5.1.1 -- - * gcc: [1087]GCC-11.2.0 -- - * gc-ar: [1088]GCC-11.2.0 -- - * gc-nm: [1089]GCC-11.2.0 -- - * gc-ranlib: [1090]GCC-11.2.0 -- - * gcov: [1091]GCC-11.2.0 -- - * gcov-dump: [1092]GCC-11.2.0 -- - * gcov-tool: [1093]GCC-11.2.0 -- - * gdbmtool: [1094]GDBM-1.23 -- - * gdbm_dump: [1095]GDBM-1.23 -- - * gdbm_load: [1096]GDBM-1.23 -- - * gdiffmk: [1097]Groff-1.22.4 -- - * gencat: [1098]Glibc-2.35 -- - * genl: [1099]IPRoute2-5.16.0 -- - * getcap: [1100]Libcap-2.63 -- - * getconf: [1101]Glibc-2.35 -- - * getent: [1102]Glibc-2.35 -- - * getfacl: [1103]Acl-2.3.1 -- - * getfattr: [1104]Attr-2.5.1 -- - * getkeycodes: [1105]Kbd-2.4.0 -- - * getopt: [1106]Util-linux-2.37.4 -- - * getpcaps: [1107]Libcap-2.63 -- - * getsubids: [1108]Shadow-4.11.1 -- - * gettext: [1109]Gettext-0.21 -- - * gettext.sh: [1110]Gettext-0.21 -- - * gettextize: [1111]Gettext-0.21 -- - * glilypond: [1112]Groff-1.22.4 -- - * gpasswd: [1113]Shadow-4.11.1 -- - * gperf: [1114]Gperf-3.1 -- - * gperl: [1115]Groff-1.22.4 -- - * gpinyin: [1116]Groff-1.22.4 -- - * gprof: [1117]Binutils-2.38 -- - * grap2graph: [1118]Groff-1.22.4 -- - * grep: [1119]Grep-3.7 -- - * grn: [1120]Groff-1.22.4 -- - * grodvi: [1121]Groff-1.22.4 -- - * groff: [1122]Groff-1.22.4 -- - * groffer: [1123]Groff-1.22.4 -- - * grog: [1124]Groff-1.22.4 -- - * grolbp: [1125]Groff-1.22.4 -- - * grolj4: [1126]Groff-1.22.4 -- - * gropdf: [1127]Groff-1.22.4 -- - * grops: [1128]Groff-1.22.4 -- - * grotty: [1129]Groff-1.22.4 -- - * groupadd: [1130]Shadow-4.11.1 -- - * groupdel: [1131]Shadow-4.11.1 -- - * groupmems: [1132]Shadow-4.11.1 -- - * groupmod: [1133]Shadow-4.11.1 -- - * groups: [1134]Coreutils-9.0 -- - * grpck: [1135]Shadow-4.11.1 -- - * grpconv: [1136]Shadow-4.11.1 -- - * grpunconv: [1137]Shadow-4.11.1 -- - * grub-bios-setup: [1138]GRUB-2.06 -- - * grub-editenv: [1139]GRUB-2.06 -- - * grub-file: [1140]GRUB-2.06 -- - * grub-fstest: [1141]GRUB-2.06 -- - * grub-glue-efi: [1142]GRUB-2.06 -- - * grub-install: [1143]GRUB-2.06 -- - * grub-kbdcomp: [1144]GRUB-2.06 -- - * grub-macbless: [1145]GRUB-2.06 -- - * grub-menulst2cfg: [1146]GRUB-2.06 -- - * grub-mkconfig: [1147]GRUB-2.06 -- - * grub-mkimage: [1148]GRUB-2.06 -- - * grub-mklayout: [1149]GRUB-2.06 -- - * grub-mknetdir: [1150]GRUB-2.06 -- - * grub-mkpasswd-pbkdf2: [1151]GRUB-2.06 -- - * grub-mkrelpath: [1152]GRUB-2.06 -- - * grub-mkrescue: [1153]GRUB-2.06 -- - * grub-mkstandalone: [1154]GRUB-2.06 -- - * grub-ofpathname: [1155]GRUB-2.06 -- - * grub-probe: [1156]GRUB-2.06 -- - * grub-reboot: [1157]GRUB-2.06 -- - * grub-render-label: [1158]GRUB-2.06 -- - * grub-script-check: [1159]GRUB-2.06 -- - * grub-set-default: [1160]GRUB-2.06 -- - * grub-setup: [1161]GRUB-2.06 -- - * grub-syslinux2cfg: [1162]GRUB-2.06 -- - * gunzip: [1163]Gzip-1.11 -- - * gzexe: [1164]Gzip-1.11 -- - * gzip: [1165]Gzip-1.11 -- - * h2ph: [1166]Perl-5.34.0 -- - * h2xs: [1167]Perl-5.34.0 -- - * halt: [1168]Sysvinit-3.01 -- - * head: [1169]Coreutils-9.0 -- - * hexdump: [1170]Util-linux-2.37.4 -- - * hostid: [1171]Coreutils-9.0 -- - * hostname: [1172]Inetutils-2.2 -- - * hpftodit: [1173]Groff-1.22.4 -- - * hwclock: [1174]Util-linux-2.37.4 -- - * i386: [1175]Util-linux-2.37.4 -- - * iconv: [1176]Glibc-2.35 -- - * iconvconfig: [1177]Glibc-2.35 -- - * id: [1178]Coreutils-9.0 -- - * idle3: [1179]Python-3.10.2 - * ifcfg: [1180]IPRoute2-5.16.0 -- - * ifconfig: [1181]Inetutils-2.2 -- - * ifnames: [1182]Autoconf-2.71 -- - * ifstat: [1183]IPRoute2-5.16.0 -- - * indxbib: [1184]Groff-1.22.4 -- - * info: [1185]Texinfo-6.8 -- - * infocmp: [1186]Ncurses-6.3 -- - * infotocap: [1187]Ncurses-6.3 -- - * init: [1188]Sysvinit-3.01 -- - * insmod: [1189]Kmod-29 -- - * install: [1190]Coreutils-9.0 -- - * install-info: [1191]Texinfo-6.8 -- - * instmodsh: [1192]Perl-5.34.0 -- - * intltool-extract: [1193]Intltool-0.51.0 -- - * intltool-merge: [1194]Intltool-0.51.0 -- - * intltool-prepare: [1195]Intltool-0.51.0 -- - * intltool-update: [1196]Intltool-0.51.0 -- - * intltoolize: [1197]Intltool-0.51.0 -- - * ionice: [1198]Util-linux-2.37.4 -- - * ip: [1199]IPRoute2-5.16.0 -- - * ipcmk: [1200]Util-linux-2.37.4 -- - * ipcrm: [1201]Util-linux-2.37.4 -- - * ipcs: [1202]Util-linux-2.37.4 -- - * irqtop: [1203]Util-linux-2.37.4 -- - * isosize: [1204]Util-linux-2.37.4 -- - * join: [1205]Coreutils-9.0 -- - * json_pp: [1206]Perl-5.34.0 -- - * kbdinfo: [1207]Kbd-2.4.0 -- - * kbdrate: [1208]Kbd-2.4.0 -- - * kbd_mode: [1209]Kbd-2.4.0 -- - * kill: [1210]Util-linux-2.37.4 -- - * killall: [1211]Psmisc-23.4 -- - * killall5: [1212]Sysvinit-3.01 -- - * klogd: [1213]Sysklogd-1.5.1 -- - * kmod: [1214]Kmod-29 -- - * last: [1215]Util-linux-2.37.4 -- - * lastb: [1216]Util-linux-2.37.4 -- - * lastlog: [1217]Shadow-4.11.1 -- - * ld: [1218]Binutils-2.38 -- - * ld.bfd: [1219]Binutils-2.38 -- - * ld.gold: [1220]Binutils-2.38 -- - * ldattach: [1221]Util-linux-2.37.4 -- - * ldconfig: [1222]Glibc-2.35 -- - * ldd: [1223]Glibc-2.35 -- - * lddlibc4: [1224]Glibc-2.35 -- - * less: [1225]Less-590 -- - * lessecho: [1226]Less-590 -- - * lesskey: [1227]Less-590 -- - * lex: [1228]Flex-2.6.4 -- - * lexgrog: [1229]Man-DB-2.10.1 -- - * lfskernel-5.16.9: [1230]Linux-5.16.9 -- - * libasan: [1231]GCC-11.2.0 -- - * libatomic: [1232]GCC-11.2.0 -- - * libcc1: [1233]GCC-11.2.0 -- - * libnetcfg: [1234]Perl-5.34.0 -- - * libtool: [1235]Libtool-2.4.6 -- - * libtoolize: [1236]Libtool-2.4.6 -- - * link: [1237]Coreutils-9.0 -- - * linux32: [1238]Util-linux-2.37.4 -- - * linux64: [1239]Util-linux-2.37.4 -- - * lkbib: [1240]Groff-1.22.4 -- - * ln: [1241]Coreutils-9.0 -- - * lnstat: [1242]IPRoute2-5.16.0 -- - * loadkeys: [1243]Kbd-2.4.0 -- - * loadunimap: [1244]Kbd-2.4.0 -- - * locale: [1245]Glibc-2.35 -- - * localedef: [1246]Glibc-2.35 -- - * locate: [1247]Findutils-4.9.0 -- - * logger: [1248]Util-linux-2.37.4 -- - * login: [1249]Shadow-4.11.1 -- - * logname: [1250]Coreutils-9.0 -- - * logoutd: [1251]Shadow-4.11.1 -- - * logsave: [1252]E2fsprogs-1.46.5 -- - * look: [1253]Util-linux-2.37.4 -- - * lookbib: [1254]Groff-1.22.4 -- - * losetup: [1255]Util-linux-2.37.4 -- - * ls: [1256]Coreutils-9.0 -- - * lsattr: [1257]E2fsprogs-1.46.5 -- - * lsblk: [1258]Util-linux-2.37.4 -- - * lscpu: [1259]Util-linux-2.37.4 -- - * lsipc: [1260]Util-linux-2.37.4 -- - * lsirq: [1261]Util-linux-2.37.4 -- - * lslocks: [1262]Util-linux-2.37.4 -- - * lslogins: [1263]Util-linux-2.37.4 -- - * lsmem: [1264]Util-linux-2.37.4 -- - * lsmod: [1265]Kmod-29 -- - * lsns: [1266]Util-linux-2.37.4 -- - * lto-dump: [1267]GCC-11.2.0 -- - * lzcat: [1268]Xz-5.2.5 -- - * lzcmp: [1269]Xz-5.2.5 -- - * lzdiff: [1270]Xz-5.2.5 -- - * lzegrep: [1271]Xz-5.2.5 -- - * lzfgrep: [1272]Xz-5.2.5 -- - * lzgrep: [1273]Xz-5.2.5 -- - * lzless: [1274]Xz-5.2.5 -- - * lzma: [1275]Xz-5.2.5 -- - * lzmadec: [1276]Xz-5.2.5 -- - * lzmainfo: [1277]Xz-5.2.5 -- - * lzmore: [1278]Xz-5.2.5 -- - * m4: [1279]M4-1.4.19 -- - * make: [1280]Make-4.3 -- - * makedb: [1281]Glibc-2.35 -- - * makeinfo: [1282]Texinfo-6.8 -- - * man: [1283]Man-DB-2.10.1 -- - * man-recode: [1284]Man-DB-2.10.1 -- - * mandb: [1285]Man-DB-2.10.1 -- - * manpath: [1286]Man-DB-2.10.1 -- - * mapscrn: [1287]Kbd-2.4.0 -- - * mcookie: [1288]Util-linux-2.37.4 -- - * md5sum: [1289]Coreutils-9.0 -- - * mesg: [1290]Util-linux-2.37.4 -- - * meson: [1291]Meson-0.61.1 -- - * mkdir: [1292]Coreutils-9.0 -- - * mke2fs: [1293]E2fsprogs-1.46.5 -- - * mkfifo: [1294]Coreutils-9.0 -- - * mkfs: [1295]Util-linux-2.37.4 -- - * mkfs.bfs: [1296]Util-linux-2.37.4 -- - * mkfs.cramfs: [1297]Util-linux-2.37.4 -- - * mkfs.ext2: [1298]E2fsprogs-1.46.5 -- - * mkfs.ext3: [1299]E2fsprogs-1.46.5 -- - * mkfs.ext4: [1300]E2fsprogs-1.46.5 -- - * mkfs.minix: [1301]Util-linux-2.37.4 -- - * mklost+found: [1302]E2fsprogs-1.46.5 -- - * mknod: [1303]Coreutils-9.0 -- - * mkswap: [1304]Util-linux-2.37.4 -- - * mktemp: [1305]Coreutils-9.0 -- - * mk_cmds: [1306]E2fsprogs-1.46.5 -- - * mmroff: [1307]Groff-1.22.4 -- - * modinfo: [1308]Kmod-29 -- - * modprobe: [1309]Kmod-29 -- - * more: [1310]Util-linux-2.37.4 -- - * mount: [1311]Util-linux-2.37.4 -- - * mountpoint: [1312]Util-linux-2.37.4 -- - * msgattrib: [1313]Gettext-0.21 -- - * msgcat: [1314]Gettext-0.21 -- - * msgcmp: [1315]Gettext-0.21 -- - * msgcomm: [1316]Gettext-0.21 -- - * msgconv: [1317]Gettext-0.21 -- - * msgen: [1318]Gettext-0.21 -- - * msgexec: [1319]Gettext-0.21 -- - * msgfilter: [1320]Gettext-0.21 -- - * msgfmt: [1321]Gettext-0.21 -- - * msggrep: [1322]Gettext-0.21 -- - * msginit: [1323]Gettext-0.21 -- - * msgmerge: [1324]Gettext-0.21 -- - * msgunfmt: [1325]Gettext-0.21 -- - * msguniq: [1326]Gettext-0.21 -- - * mtrace: [1327]Glibc-2.35 -- - * mv: [1328]Coreutils-9.0 -- - * namei: [1329]Util-linux-2.37.4 -- - * ncursesw6-config: [1330]Ncurses-6.3 -- - * neqn: [1331]Groff-1.22.4 -- - * newgidmap: [1332]Shadow-4.11.1 -- - * newgrp: [1333]Shadow-4.11.1 -- - * newuidmap: [1334]Shadow-4.11.1 -- - * newusers: [1335]Shadow-4.11.1 -- - * ngettext: [1336]Gettext-0.21 -- - * nice: [1337]Coreutils-9.0 -- - * ninja: [1338]Ninja-1.10.2 -- - * nl: [1339]Coreutils-9.0 -- - * nm: [1340]Binutils-2.38 -- - * nohup: [1341]Coreutils-9.0 -- - * nologin: [1342]Shadow-4.11.1 -- - * nproc: [1343]Coreutils-9.0 -- - * nroff: [1344]Groff-1.22.4 -- - * nscd: [1345]Glibc-2.35 -- - * nsenter: [1346]Util-linux-2.37.4 -- - * nstat: [1347]IPRoute2-5.16.0 -- - * numfmt: [1348]Coreutils-9.0 -- - * objcopy: [1349]Binutils-2.38 -- - * objdump: [1350]Binutils-2.38 -- - * od: [1351]Coreutils-9.0 -- - * openssl: [1352]OpenSSL-3.0.1 -- - * openvt: [1353]Kbd-2.4.0 -- - * partx: [1354]Util-linux-2.37.4 -- - * passwd: [1355]Shadow-4.11.1 -- - * paste: [1356]Coreutils-9.0 -- - * patch: [1357]Patch-2.7.6 -- - * pathchk: [1358]Coreutils-9.0 -- - * pcprofiledump: [1359]Glibc-2.35 -- - * pdfmom: [1360]Groff-1.22.4 -- - * pdfroff: [1361]Groff-1.22.4 -- - * pdftexi2dvi: [1362]Texinfo-6.8 -- - * peekfd: [1363]Psmisc-23.4 -- - * perl: [1364]Perl-5.34.0 -- - * perl5.34.0: [1365]Perl-5.34.0 -- - * perlbug: [1366]Perl-5.34.0 -- - * perldoc: [1367]Perl-5.34.0 -- - * perlivp: [1368]Perl-5.34.0 -- - * perlthanks: [1369]Perl-5.34.0 -- - * pfbtops: [1370]Groff-1.22.4 -- - * pgrep: [1371]Procps-ng-3.3.17 -- - * pic: [1372]Groff-1.22.4 -- - * pic2graph: [1373]Groff-1.22.4 -- - * piconv: [1374]Perl-5.34.0 -- - * pidof: [1375]Procps-ng-3.3.17 -- - * ping: [1376]Inetutils-2.2 -- - * ping6: [1377]Inetutils-2.2 -- - * pinky: [1378]Coreutils-9.0 -- - * pip3: [1379]Python-3.10.2 - * pivot_root: [1380]Util-linux-2.37.4 -- - * pkg-config: [1381]Pkg-config-0.29.2 -- - * pkill: [1382]Procps-ng-3.3.17 -- - * pl2pm: [1383]Perl-5.34.0 -- - * pldd: [1384]Glibc-2.35 -- - * pmap: [1385]Procps-ng-3.3.17 -- - * pod2html: [1386]Perl-5.34.0 -- - * pod2man: [1387]Perl-5.34.0 -- - * pod2texi: [1388]Texinfo-6.8 -- - * pod2text: [1389]Perl-5.34.0 -- - * pod2usage: [1390]Perl-5.34.0 -- - * podchecker: [1391]Perl-5.34.0 -- - * podselect: [1392]Perl-5.34.0 -- - * post-grohtml: [1393]Groff-1.22.4 -- - * poweroff: [1394]Sysvinit-3.01 -- - * pr: [1395]Coreutils-9.0 -- - * pre-grohtml: [1396]Groff-1.22.4 -- - * preconv: [1397]Groff-1.22.4 -- - * printenv: [1398]Coreutils-9.0 -- - * printf: [1399]Coreutils-9.0 -- - * prlimit: [1400]Util-linux-2.37.4 -- - * prove: [1401]Perl-5.34.0 -- - * prtstat: [1402]Psmisc-23.4 -- - * ps: [1403]Procps-ng-3.3.17 -- - * psfaddtable: [1404]Kbd-2.4.0 -- - * psfgettable: [1405]Kbd-2.4.0 -- - * psfstriptable: [1406]Kbd-2.4.0 -- - * psfxtable: [1407]Kbd-2.4.0 -- - * pslog: [1408]Psmisc-23.4 -- - * pstree: [1409]Psmisc-23.4 -- - * pstree.x11: [1410]Psmisc-23.4 -- - * ptar: [1411]Perl-5.34.0 -- - * ptardiff: [1412]Perl-5.34.0 -- - * ptargrep: [1413]Perl-5.34.0 -- - * ptx: [1414]Coreutils-9.0 -- - * pwait: [1415]Procps-ng-3.3.17 -- - * pwck: [1416]Shadow-4.11.1 -- - * pwconv: [1417]Shadow-4.11.1 -- - * pwd: [1418]Coreutils-9.0 -- - * pwdx: [1419]Procps-ng-3.3.17 -- - * pwunconv: [1420]Shadow-4.11.1 -- - * pydoc3: [1421]Python-3.10.2 - * python3: [1422]Python-3.10.2 - * ranlib: [1423]Binutils-2.38 -- - * readelf: [1424]Binutils-2.38 -- - * readlink: [1425]Coreutils-9.0 -- - * readprofile: [1426]Util-linux-2.37.4 -- - * realpath: [1427]Coreutils-9.0 -- - * reboot: [1428]Sysvinit-3.01 -- - * recode-sr-latin: [1429]Gettext-0.21 -- - * refer: [1430]Groff-1.22.4 -- - * rename: [1431]Util-linux-2.37.4 -- - * renice: [1432]Util-linux-2.37.4 -- - * reset: [1433]Ncurses-6.3 -- - * resize2fs: [1434]E2fsprogs-1.46.5 -- - * resizepart: [1435]Util-linux-2.37.4 -- - * rev: [1436]Util-linux-2.37.4 -- - * rkfill: [1437]Util-linux-2.37.4 -- - * rm: [1438]Coreutils-9.0 -- - * rmdir: [1439]Coreutils-9.0 -- - * rmmod: [1440]Kmod-29 -- - * roff2dvi: [1441]Groff-1.22.4 -- - * roff2html: [1442]Groff-1.22.4 -- - * roff2pdf: [1443]Groff-1.22.4 -- - * roff2ps: [1444]Groff-1.22.4 -- - * roff2text: [1445]Groff-1.22.4 -- - * roff2x: [1446]Groff-1.22.4 -- - * routef: [1447]IPRoute2-5.16.0 -- - * routel: [1448]IPRoute2-5.16.0 -- - * rtacct: [1449]IPRoute2-5.16.0 -- - * rtcwake: [1450]Util-linux-2.37.4 -- - * rtmon: [1451]IPRoute2-5.16.0 -- - * rtpr: [1452]IPRoute2-5.16.0 -- - * rtstat: [1453]IPRoute2-5.16.0 -- - * runcon: [1454]Coreutils-9.0 -- - * runlevel: [1455]Sysvinit-3.01 -- - * runtest: [1456]DejaGNU-1.6.3 -- - * rview: [1457]Vim-8.2.4383 -- - * rvim: [1458]Vim-8.2.4383 -- - * script: [1459]Util-linux-2.37.4 -- - * scriptlive: [1460]Util-linux-2.37.4 -- - * scriptreplay: [1461]Util-linux-2.37.4 -- - * sdiff: [1462]Diffutils-3.8 -- - * sed: [1463]Sed-4.8 -- - * seq: [1464]Coreutils-9.0 -- - * setarch: [1465]Util-linux-2.37.4 -- - * setcap: [1466]Libcap-2.63 -- - * setfacl: [1467]Acl-2.3.1 -- - * setfattr: [1468]Attr-2.5.1 -- - * setfont: [1469]Kbd-2.4.0 -- - * setkeycodes: [1470]Kbd-2.4.0 -- - * setleds: [1471]Kbd-2.4.0 -- - * setmetamode: [1472]Kbd-2.4.0 -- - * setsid: [1473]Util-linux-2.37.4 -- - * setterm: [1474]Util-linux-2.37.4 -- - * setvtrgb: [1475]Kbd-2.4.0 -- - * sfdisk: [1476]Util-linux-2.37.4 -- - * sg: [1477]Shadow-4.11.1 -- - * sh: [1478]Bash-5.1.16 -- - * sha1sum: [1479]Coreutils-9.0 -- - * sha224sum: [1480]Coreutils-9.0 -- - * sha256sum: [1481]Coreutils-9.0 -- - * sha384sum: [1482]Coreutils-9.0 -- - * sha512sum: [1483]Coreutils-9.0 -- - * shasum: [1484]Perl-5.34.0 -- - * showconsolefont: [1485]Kbd-2.4.0 -- - * showkey: [1486]Kbd-2.4.0 -- - * shred: [1487]Coreutils-9.0 -- - * shuf: [1488]Coreutils-9.0 -- - * shutdown: [1489]Sysvinit-3.01 -- - * size: [1490]Binutils-2.38 -- - * slabtop: [1491]Procps-ng-3.3.17 -- - * sleep: [1492]Coreutils-9.0 -- - * sln: [1493]Glibc-2.35 -- - * soelim: [1494]Groff-1.22.4 -- - * sort: [1495]Coreutils-9.0 -- - * sotruss: [1496]Glibc-2.35 -- - * splain: [1497]Perl-5.34.0 -- - * split: [1498]Coreutils-9.0 -- - * sprof: [1499]Glibc-2.35 -- - * ss: [1500]IPRoute2-5.16.0 -- - * stat: [1501]Coreutils-9.0 -- - * stdbuf: [1502]Coreutils-9.0 -- - * strings: [1503]Binutils-2.38 -- - * strip: [1504]Binutils-2.38 -- - * stty: [1505]Coreutils-9.0 -- - * su: [1506]Shadow-4.11.1 -- - * sulogin: [1507]Util-linux-2.37.4 -- - * sum: [1508]Coreutils-9.0 -- - * swaplabel: [1509]Util-linux-2.37.4 -- - * swapoff: [1510]Util-linux-2.37.4 -- - * swapon: [1511]Util-linux-2.37.4 -- - * switch_root: [1512]Util-linux-2.37.4 -- - * sync: [1513]Coreutils-9.0 -- - * sysctl: [1514]Procps-ng-3.3.17 -- - * syslogd: [1515]Sysklogd-1.5.1 -- - * tabs: [1516]Ncurses-6.3 -- - * tac: [1517]Coreutils-9.0 -- - * tail: [1518]Coreutils-9.0 -- - * talk: [1519]Inetutils-2.2 -- - * tar: [1520]Tar-1.34 -- - * taskset: [1521]Util-linux-2.37.4 -- - * tbl: [1522]Groff-1.22.4 -- - * tc: [1523]IPRoute2-5.16.0 -- - * tclsh: [1524]Tcl-8.6.12 -- - * tclsh8.6: [1525]Tcl-8.6.12 -- - * tee: [1526]Coreutils-9.0 -- - * telinit: [1527]Sysvinit-3.01 -- - * telnet: [1528]Inetutils-2.2 -- - * test: [1529]Coreutils-9.0 -- - * texi2dvi: [1530]Texinfo-6.8 -- - * texi2pdf: [1531]Texinfo-6.8 -- - * texi2any: [1532]Texinfo-6.8 -- - * texindex: [1533]Texinfo-6.8 -- - * tfmtodit: [1534]Groff-1.22.4 -- - * tftp: [1535]Inetutils-2.2 -- - * tic: [1536]Ncurses-6.3 -- - * timeout: [1537]Coreutils-9.0 -- - * tload: [1538]Procps-ng-3.3.17 -- - * toe: [1539]Ncurses-6.3 -- - * top: [1540]Procps-ng-3.3.17 -- - * touch: [1541]Coreutils-9.0 -- - * tput: [1542]Ncurses-6.3 -- - * tr: [1543]Coreutils-9.0 -- - * traceroute: [1544]Inetutils-2.2 -- - * troff: [1545]Groff-1.22.4 -- - * true: [1546]Coreutils-9.0 -- - * truncate: [1547]Coreutils-9.0 -- - * tset: [1548]Ncurses-6.3 -- - * tsort: [1549]Coreutils-9.0 -- - * tty: [1550]Coreutils-9.0 -- - * tune2fs: [1551]E2fsprogs-1.46.5 -- - * tzselect: [1552]Glibc-2.35 -- - * uclampset: [1553]Util-linux-2.37.4 -- - * udevadm: [1554]Eudev-3.2.11 -- - * udevd: [1555]Eudev-3.2.11 -- - * ul: [1556]Util-linux-2.37.4 -- - * umount: [1557]Util-linux-2.37.4 -- - * uname: [1558]Coreutils-9.0 -- - * uname26: [1559]Util-linux-2.37.4 -- - * uncompress: [1560]Gzip-1.11 -- - * unexpand: [1561]Coreutils-9.0 -- - * unicode_start: [1562]Kbd-2.4.0 -- - * unicode_stop: [1563]Kbd-2.4.0 -- - * uniq: [1564]Coreutils-9.0 -- - * unlink: [1565]Coreutils-9.0 -- - * unlzma: [1566]Xz-5.2.5 -- - * unshare: [1567]Util-linux-2.37.4 -- - * unxz: [1568]Xz-5.2.5 -- - * updatedb: [1569]Findutils-4.9.0 -- - * uptime: [1570]Procps-ng-3.3.17 -- - * useradd: [1571]Shadow-4.11.1 -- - * userdel: [1572]Shadow-4.11.1 -- - * usermod: [1573]Shadow-4.11.1 -- - * users: [1574]Coreutils-9.0 -- - * utmpdump: [1575]Util-linux-2.37.4 -- - * uuidd: [1576]Util-linux-2.37.4 -- - * uuidgen: [1577]Util-linux-2.37.4 -- - * uuidparse: [1578]Util-linux-2.37.4 -- - * vdir: [1579]Coreutils-9.0 -- - * vi: [1580]Vim-8.2.4383 -- - * view: [1581]Vim-8.2.4383 -- - * vigr: [1582]Shadow-4.11.1 -- - * vim: [1583]Vim-8.2.4383 -- - * vimdiff: [1584]Vim-8.2.4383 -- - * vimtutor: [1585]Vim-8.2.4383 -- - * vipw: [1586]Shadow-4.11.1 -- - * vmstat: [1587]Procps-ng-3.3.17 -- - * w: [1588]Procps-ng-3.3.17 -- - * wall: [1589]Util-linux-2.37.4 -- - * watch: [1590]Procps-ng-3.3.17 -- - * wc: [1591]Coreutils-9.0 -- - * wdctl: [1592]Util-linux-2.37.4 -- - * whatis: [1593]Man-DB-2.10.1 -- - * whereis: [1594]Util-linux-2.37.4 -- - * who: [1595]Coreutils-9.0 -- - * whoami: [1596]Coreutils-9.0 -- - * wipefs: [1597]Util-linux-2.37.4 -- - * x86_64: [1598]Util-linux-2.37.4 -- - * xargs: [1599]Findutils-4.9.0 -- - * xgettext: [1600]Gettext-0.21 -- - * xmlwf: [1601]Expat-2.4.6 -- - * xsubpp: [1602]Perl-5.34.0 -- - * xtrace: [1603]Glibc-2.35 -- - * xxd: [1604]Vim-8.2.4383 -- - * xz: [1605]Xz-5.2.5 -- - * xzcat: [1606]Xz-5.2.5 -- - * xzcmp: [1607]Xz-5.2.5 -- - * xzdec: [1608]Xz-5.2.5 -- - * xzdiff: [1609]Xz-5.2.5 -- - * xzegrep: [1610]Xz-5.2.5 -- - * xzfgrep: [1611]Xz-5.2.5 -- - * xzgrep: [1612]Xz-5.2.5 -- - * xzless: [1613]Xz-5.2.5 -- - * xzmore: [1614]Xz-5.2.5 -- - * yacc: [1615]Bison-3.8.2 -- - * yes: [1616]Coreutils-9.0 -- - * zcat: [1617]Gzip-1.11 -- - * zcmp: [1618]Gzip-1.11 -- - * zdiff: [1619]Gzip-1.11 -- - * zdump: [1620]Glibc-2.35 -- - * zegrep: [1621]Gzip-1.11 -- - * zfgrep: [1622]Gzip-1.11 -- - * zforce: [1623]Gzip-1.11 -- - * zgrep: [1624]Gzip-1.11 -- - * zic: [1625]Glibc-2.35 -- - * zipdetails: [1626]Perl-5.34.0 -- - * zless: [1627]Gzip-1.11 -- - * zmore: [1628]Gzip-1.11 -- - * znew: [1629]Gzip-1.11 -- - * zramctl: [1630]Util-linux-2.37.4 -- - * zstd: [1631]Zstd-1.5.2 -- - * zstdgrep: [1632]Zstd-1.5.2 -- - * zstdless: [1633]Zstd-1.5.2 -- - - * Expat: [1634]XML::Parser-2.46 -- - * ld-2.35.so: [1635]Glibc-2.35 -- - * libacl: [1636]Acl-2.3.1 -- - * libanl: [1637]Glibc-2.35 -- - * libasprintf: [1638]Gettext-0.21 -- - * libattr: [1639]Attr-2.5.1 -- - * libbfd: [1640]Binutils-2.38 -- - * libblkid: [1641]Util-linux-2.37.4 -- - * libBrokenLocale: [1642]Glibc-2.35 -- - * libbz2: [1643]Bzip2-1.0.8 -- - * libc: [1644]Glibc-2.35 -- - * libcap: [1645]Libcap-2.63 -- - * libcheck: [1646]Check-0.15.2 -- - * libcom_err: [1647]E2fsprogs-1.46.5 -- - * libcrypt: [1648]Glibc-2.35 -- - * libcrypto.so: [1649]OpenSSL-3.0.1 -- - * libctf: [1650]Binutils-2.38 -- - * libctf-nobfd: [1651]Binutils-2.38 -- - * libcursesw: [1652]Ncurses-6.3 -- - * libc_malloc_debug: [1653]Glibc-2.35 -- - * libdl: [1654]Glibc-2.35 -- - * libe2p: [1655]E2fsprogs-1.46.5 -- - * libelf: [1656]Libelf oriundo de Elfutils-0.186 -- - * libexpat: [1657]Expat-2.4.6 -- - * libexpect-5.45.4: [1658]Expect-5.45.4 -- - * libext2fs: [1659]E2fsprogs-1.46.5 -- - * libfdisk: [1660]Util-linux-2.37.4 -- - * libffi: [1661]Libffi-3.4.2 - * libfl: [1662]Flex-2.6.4 -- - * libformw: [1663]Ncurses-6.3 -- - * libg: [1664]Glibc-2.35 -- - * libgcc: [1665]GCC-11.2.0 -- - * libgcov: [1666]GCC-11.2.0 -- - * libgdbm: [1667]GDBM-1.23 -- - * libgdbm_compat: [1668]GDBM-1.23 -- - * libgettextlib: [1669]Gettext-0.21 -- - * libgettextpo: [1670]Gettext-0.21 -- - * libgettextsrc: [1671]Gettext-0.21 -- - * libgmp: [1672]GMP-6.2.1 -- - * libgmpxx: [1673]GMP-6.2.1 -- - * libgomp: [1674]GCC-11.2.0 -- - * libhistory: [1675]Readline-8.1.2 -- - * libitm: [1676]GCC-11.2.0 -- - * libkmod: [1677]Kmod-29 - * liblsan: [1678]GCC-11.2.0 -- - * libltdl: [1679]Libtool-2.4.6 -- - * liblto_plugin: [1680]GCC-11.2.0 -- - * liblzma: [1681]Xz-5.2.5 -- - * libm: [1682]Glibc-2.35 -- - * libmagic: [1683]File-5.41 -- - * libman: [1684]Man-DB-2.10.1 -- - * libmandb: [1685]Man-DB-2.10.1 -- - * libmcheck: [1686]Glibc-2.35 -- - * libmemusage: [1687]Glibc-2.35 -- - * libmenuw: [1688]Ncurses-6.3 -- - * libmount: [1689]Util-linux-2.37.4 -- - * libmpc: [1690]MPC-1.2.1 -- - * libmpfr: [1691]MPFR-4.1.0 -- - * libmvec: [1692]Glibc-2.35 -- - * libncursesw: [1693]Ncurses-6.3 -- - * libnsl: [1694]Glibc-2.35 -- - * libnss_*: [1695]Glibc-2.35 -- - * libopcodes: [1696]Binutils-2.38 -- - * libpanelw: [1697]Ncurses-6.3 -- - * libpcprofile: [1698]Glibc-2.35 -- - * libpipeline: [1699]Libpipeline-1.5.5 - * libprocps: [1700]Procps-ng-3.3.17 -- - * libpsx: [1701]Libcap-2.63 -- - * libpthread: [1702]Glibc-2.35 -- - * libquadmath: [1703]GCC-11.2.0 -- - * libreadline: [1704]Readline-8.1.2 -- - * libresolv: [1705]Glibc-2.35 -- - * librt: [1706]Glibc-2.35 -- - * libsmartcols: [1707]Util-linux-2.37.4 -- - * libss: [1708]E2fsprogs-1.46.5 -- - * libssl.so: [1709]OpenSSL-3.0.1 -- - * libssp: [1710]GCC-11.2.0 -- - * libstdbuf: [1711]Coreutils-9.0 -- - * libstdc++: [1712]GCC-11.2.0 -- - * libstdc++fs: [1713]GCC-11.2.0 -- - * libsubid: [1714]Shadow-4.11.1 -- - * libsupc++: [1715]GCC-11.2.0 -- - * libtcl8.6.so: [1716]Tcl-8.6.12 -- - * libtclstub8.6.a: [1717]Tcl-8.6.12 -- - * libtextstyle: [1718]Gettext-0.21 -- - * libthread_db: [1719]Glibc-2.35 -- - * libtsan: [1720]GCC-11.2.0 -- - * libubsan: [1721]GCC-11.2.0 -- - * libudev: [1722]Eudev-3.2.11 -- - * libutil: [1723]Glibc-2.35 -- - * libuuid: [1724]Util-linux-2.37.4 -- - * liby: [1725]Bison-3.8.2 -- - * libz: [1726]Zlib-1.2.11 -- - * libzstd: [1727]Zstd-1.5.2 -- - * preloadable_libintl: [1728]Gettext-0.21 -- - - * checkfs: [1729]LFS-Bootscripts-20210608 -- - * cleanfs: [1730]LFS-Bootscripts-20210608 -- - * console: [1731]LFS-Bootscripts-20210608 -- - + configuring: [1732]Configurando o Console do Linux - * File creation at boot: - + configuring: [1733]Criando Arquivos na Inicialização - * functions: [1734]LFS-Bootscripts-20210608 -- - * halt: [1735]LFS-Bootscripts-20210608 -- - * hostname: - + configuring: [1736]Configurando o nome de dispositivo do - sistema - * ifdown: [1737]LFS-Bootscripts-20210608 -- - * ifup: [1738]LFS-Bootscripts-20210608 -- - * ipv4-static: [1739]LFS-Bootscripts-20210608 -- - * localnet: [1740]LFS-Bootscripts-20210608 -- - + /etc/hosts: [1741]Personalizando o Arquivo /etc/hosts - * modules: [1742]LFS-Bootscripts-20210608 -- - * mountfs: [1743]LFS-Bootscripts-20210608 -- - * mountvirtfs: [1744]LFS-Bootscripts-20210608 -- - * network: [1745]LFS-Bootscripts-20210608 -- - + /etc/hosts: [1746]Personalizando o Arquivo /etc/hosts - + configuring: [1747]Configuração de Rede Geral - * rc: [1748]LFS-Bootscripts-20210608 -- - * reboot: [1749]LFS-Bootscripts-20210608 -- - * sendsignals: [1750]LFS-Bootscripts-20210608 -- - * setclock: [1751]LFS-Bootscripts-20210608 -- - + configuring: [1752]Configurando o Relógio do Sistema - * swap: [1753]LFS-Bootscripts-20210608 -- - * sysctl: [1754]LFS-Bootscripts-20210608 -- - * sysklogd: [1755]LFS-Bootscripts-20210608 -- - + configuring: [1756]Configurando o Script sysklogd - * template: [1757]LFS-Bootscripts-20210608 -- - * udev: [1758]LFS-Bootscripts-20210608 -- - * udev_retry: [1759]LFS-Bootscripts-20210608 -- - * dwp: [1760]Binutils-2.38 -- - - * /boot/config-5.16.9: [1761]Linux-5.16.9 -- - * /boot/System.map-5.16.9: [1762]Linux-5.16.9 -- - * /dev/*: [1763]Preparando Sistemas de Arquivos Virtuais de Kernel - * /etc/fstab: [1764]Criando o Arquivo /etc/fstab - * /etc/group: [1765]Criando Arquivos Essenciais e Links Simbólicos - * /etc/hosts: [1766]Personalizando o Arquivo /etc/hosts - * /etc/inittab: [1767]Configurando o Sysvinit - * /etc/inputrc: [1768]Criando o Arquivo /etc/inputrc - * /etc/ld.so.conf: [1769]Configurando o Carregador Dinâmico - * /etc/lfs-release: [1770]O Fim - * /etc/localtime: [1771]Configurando Glibc - * /etc/lsb-release: [1772]O Fim - * /etc/modprobe.d/usb.conf: [1773]Configurando a Ordem de - Carregamento de Módulos do Linux - * /etc/nsswitch.conf: [1774]Configurando Glibc - * /etc/os-release: [1775]O Fim - * /etc/passwd: [1776]Criando Arquivos Essenciais e Links Simbólicos - * /etc/profile: [1777]Os Arquivos de Inicialização de Shell do Bash - * /etc/protocols: [1778]Iana-Etc-20220207 - * /etc/resolv.conf: [1779]Criando o Arquivo /etc/resolv.conf - * /etc/services: [1780]Iana-Etc-20220207 - * /etc/syslog.conf: [1781]Configurando Sysklogd - * /etc/udev: [1782]Eudev-3.2.11 -- - * /etc/udev/hwdb.bin: [1783]Configurando Eudev - * /etc/vimrc: [1784]Configurando Vim - * /run/utmp: [1785]Criando Arquivos Essenciais e Links Simbólicos - * /usr/include/asm-generic/*.h: [1786]Cabeçalhos da API do - Linux-5.16.9 -- - * /usr/include/asm/*.h: [1787]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/drm/*.h: [1788]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/linux/*.h: [1789]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/misc/*.h: [1790]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/mtd/*.h: [1791]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/rdma/*.h: [1792]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/scsi/*.h: [1793]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/sound/*.h: [1794]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/video/*.h: [1795]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/xen/*.h: [1796]Cabeçalhos da API do Linux-5.16.9 -- - * /var/log/btmp: [1797]Criando Arquivos Essenciais e Links Simbólicos - * /var/log/lastlog: [1798]Criando Arquivos Essenciais e Links - Simbólicos - * /var/log/wtmp: [1799]Criando Arquivos Essenciais e Links Simbólicos - * /etc/shells: [1800]Criando o Arquivo /etc/shells - * man pages: [1801]Man-pages-5.13 -- - -Referências - - Ligações visíveis: - 1. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#CC - 2. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#MIT - 3. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pre-foreword - 4. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pre-audience - 5. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pre-architecture - 6. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pre-prerequisites - 7. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pre-standards - 8. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pre-why - 9. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pre-typography - 10. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pre-organization - 11. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pre-errata - 12. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-intro-how - 13. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-intro-whatsnew - 14. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-intro-changelog - 15. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-intro-resources - 16. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-intro-askforhelp - 17. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-introduction - 18. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-hostreqs - 19. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-stages - 20. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-creatingpartition - 21. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-creatingfilesystem - 22. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-aboutlfs - 23. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-mounting - 24. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-materials-introduction - 25. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-materials-packages - 26. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-materials-patches - 27. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-preps-introduction - 28. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-creatingminlayout - 29. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-preps-addinguser - 30. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-preps-settingenviron - 31. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-preps-aboutsbus - 32. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-preps-abouttestsuites - 33. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-part3intro-intro - 34. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-toolchaintechnotes - 35. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-generalinstructions - 36. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-introduction - 37. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-binutils-pass1 - 38. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gcc-pass1 - 39. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers - 40. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-glibc - 41. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-libstdcpp-pass1 - 42. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-introduction-cross - 43. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-m4 - 44. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-ncurses - 45. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-bash - 46. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-coreutils - 47. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-diffutils - 48. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-file - 49. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-findutils - 50. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gawk - 51. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-grep - 52. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gzip - 53. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-make - 54. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-patch - 55. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-sed - 56. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-tar - 57. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-xz - 58. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-binutils-pass2 - 59. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gcc-pass2 - 60. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-introduction-chroot - 61. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-changingowner - 62. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-kernfs - 63. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-chroot - 64. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-creatingdirs - 65. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles - 66. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-libstdcpp-pass2 - 67. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gettext - 68. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-bison - 69. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-perl - 70. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-Python - 71. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-texinfo - 72. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-util-linux - 73. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-cleanup - 74. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-introduction - 75. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-pkgmgt - 76. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-pages - 77. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iana-etc - 78. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc - 79. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zlib - 80. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 81. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz - 82. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zstd - 83. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-file - 84. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-readline - 85. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-m4 - 86. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bc - 87. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-flex - 88. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tcl - 89. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expect - 90. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dejagnu - 91. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils - 92. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gmp - 93. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-mpfr - 94. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-mpc - 95. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-attr - 96. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-acl - 97. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap - 98. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow - 99. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc - 100. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-pkgconfig - 101. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses - 102. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sed - 103. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc - 104. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext - 105. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bison - 106. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grep - 107. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bash - 108. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libtool - 109. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gdbm - 110. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gperf - 111. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expat - 112. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils - 113. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-less - 114. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl - 115. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xml-parser - 116. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-intltool - 117. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 118. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-automake - 119. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-openssl - 120. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod - 121. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libelf - 122. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libffi - 123. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-Python - 124. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ninja - 125. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-meson - 126. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 127. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-check - 128. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-diffutils - 129. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gawk - 130. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-findutils - 131. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff - 132. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub - 133. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip - 134. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 - 135. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd - 136. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libpipeline - 137. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-make - 138. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-patch - 139. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tar - 140. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo - 141. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim - 142. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-eudev - 143. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db - 144. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps - 145. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 146. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs - 147. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysklogd - 148. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysvinit - 149. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-aboutdebug - 150. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-stripping - 151. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-cleanup - 152. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-introduction - 153. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts - 154. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-udev - 155. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-symlinks - 156. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-network - 157. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-usage - 158. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-profile - 159. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-inputrc - 160. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-shells - 161. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-introduction - 162. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-fstab - 163. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-kernel - 164. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-grub - 165. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-finish-theend - 166. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-finish-getcounted - 167. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-finish-reboot - 168. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-finish-whatnow - 169. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#appendixa - 170. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#appendixb - 171. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#appendixc - 172. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#scripts - 173. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rc - 174. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#init-functions - 175. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mountvirtfs - 176. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#modules - 177. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#udev - 178. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#swap - 179. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#setclock - 180. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#checkfs - 181. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mountfs - 182. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#udev_retry - 183. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#cleanfs - 184. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#console - 185. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#localnet - 186. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sysctlscript - 187. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sysklogd - 188. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#network - 189. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sendsignals - 190. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rebootscript - 191. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#haltscript - 192. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#template - 193. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#modulessys - 194. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#createfiles - 195. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#config-udev-retry - 196. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ifup - 197. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ifdown - 198. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ipv4static - 199. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ipv4route - 200. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rules - 201. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lfsrules - 202. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#Licenses - 203. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#CC - 204. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#MIT - 205. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#FDL - 206. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#idm19011 - 207. https://www.linuxfromscratch.org/~thomas/multilib/index.html - 208. http://www.tldp.org/HOWTO/Software-Building-HOWTO.html - 209. http://moi.vonos.net/linux/beginners-installing-from-source/ - 210. http://pubs.opengroup.org/onlinepubs/9699919799/ - 211. http://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html - 212. http://refspecs.linuxfoundation.org/lsb.shtml - 213. https://www.linuxfromscratch.org/ - 214. https://www.linuxfromscratch.org/lfs/errata/11.1/ - 215. https://www.linuxfromscratch.org/lfs/advisories/ - 216. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-partitioning - 217. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-getting-materials - 218. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-final-preps - 219. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-final-preps - 220. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 221. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 222. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 223. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-chroot-temporary-tools - 224. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-toolchaintechnotes - 225. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 226. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-config - 227. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-bootable - 228. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-finalizing - 229. https://www.linuxfromscratch.org/mirrors.html - 230. https://wiki.linuxfromscratch.org/lfs/ticket/5011 - 231. https://wiki.linuxfromscratch.org/lfs/ticket/5011 - 232. https://wiki.linuxfromscratch.org/lfs/ticket/5010 - 233. https://wiki.linuxfromscratch.org/lfs/ticket/5009 - 234. https://wiki.linuxfromscratch.org/lfs/ticket/5008 - 235. https://wiki.linuxfromscratch.org/lfs/ticket/4500 - 236. https://wiki.linuxfromscratch.org/lfs/ticket/5006 - 237. https://wiki.linuxfromscratch.org/lfs/ticket/5004 - 238. https://wiki.linuxfromscratch.org/lfs/ticket/5005 - 239. https://wiki.linuxfromscratch.org/lfs/ticket/5007 - 240. https://wiki.linuxfromscratch.org/lfs/ticket/4998 - 241. https://wiki.linuxfromscratch.org/lfs/ticket/5002 - 242. https://wiki.linuxfromscratch.org/lfs/ticket/5000 - 243. https://wiki.linuxfromscratch.org/lfs/ticket/5001 - 244. https://wiki.linuxfromscratch.org/lfs/ticket/4992 - 245. https://wiki.linuxfromscratch.org/lfs/ticket/4999 - 246. https://wiki.linuxfromscratch.org/lfs/ticket/4996 - 247. https://wiki.linuxfromscratch.org/lfs/ticket/4995 - 248. https://wiki.linuxfromscratch.org/lfs/ticket/4993 - 249. https://wiki.linuxfromscratch.org/lfs/ticket/4994 - 250. https://wiki.linuxfromscratch.org/lfs/ticket/4991 - 251. https://wiki.linuxfromscratch.org/lfs/ticket/4500 - 252. https://wiki.linuxfromscratch.org/lfs/ticket/4988 - 253. https://wiki.linuxfromscratch.org/lfs/ticket/4989 - 254. https://wiki.linuxfromscratch.org/lfs/ticket/4987 - 255. https://wiki.linuxfromscratch.org/lfs/ticket/4979 - 256. https://wiki.linuxfromscratch.org/lfs/ticket/4990 - 257. https://wiki.linuxfromscratch.org/lfs/ticket/4982 - 258. https://wiki.linuxfromscratch.org/lfs/ticket/4975 - 259. https://wiki.linuxfromscratch.org/lfs/ticket/4984 - 260. https://wiki.linuxfromscratch.org/lfs/ticket/4985 - 261. https://wiki.linuxfromscratch.org/lfs/ticket/4976 - 262. https://wiki.linuxfromscratch.org/lfs/ticket/4980 - 263. https://wiki.linuxfromscratch.org/lfs/ticket/4983 - 264. https://wiki.linuxfromscratch.org/lfs/ticket/4977 - 265. https://wiki.linuxfromscratch.org/lfs/ticket/4978 - 266. https://wiki.linuxfromscratch.org/lfs/ticket/4974 - 267. https://wiki.linuxfromscratch.org/lfs/ticket/4972 - 268. https://wiki.linuxfromscratch.org/lfs/ticket/4970 - 269. https://wiki.linuxfromscratch.org/lfs/ticket/4969 - 270. https://wiki.linuxfromscratch.org/lfs/ticket/4968 - 271. https://wiki.linuxfromscratch.org/lfs/ticket/4967 - 272. https://wiki.linuxfromscratch.org/lfs/ticket/4962 - 273. https://wiki.linuxfromscratch.org/lfs/ticket/4922 - 274. https://wiki.linuxfromscratch.org/lfs/ticket/4914 - 275. https://wiki.linuxfromscratch.org/lfs/ticket/4973 - 276. https://wiki.linuxfromscratch.org/lfs/ticket/4863 - 277. https://wiki.linuxfromscratch.org/lfs/ticket/4866 - 278. https://wiki.linuxfromscratch.org/lfs/ticket/4864 - 279. https://wiki.linuxfromscratch.org/lfs/ticket/4865 - 280. https://wiki.linuxfromscratch.org/lfs/ticket/4500 - 281. https://wiki.linuxfromscratch.org/lfs/ticket/4957 - 282. https://wiki.linuxfromscratch.org/lfs/ticket/4959 - 283. https://wiki.linuxfromscratch.org/lfs/ticket/4960 - 284. https://wiki.linuxfromscratch.org/lfs/ticket/4956 - 285. https://wiki.linuxfromscratch.org/lfs/ticket/4955 - 286. https://wiki.linuxfromscratch.org/lfs/ticket/4954 - 287. https://wiki.linuxfromscratch.org/lfs/ticket/4952 - 288. https://wiki.linuxfromscratch.org/lfs/ticket/4951 - 289. https://wiki.linuxfromscratch.org/lfs/ticket/4950 - 290. https://wiki.linuxfromscratch.org/lfs/ticket/4949 - 291. https://wiki.linuxfromscratch.org/lfs/ticket/4948 - 292. https://wiki.linuxfromscratch.org/lfs/ticket/4947 - 293. https://wiki.linuxfromscratch.org/lfs/ticket/4946 - 294. https://wiki.linuxfromscratch.org/lfs/ticket/4945 - 295. https://wiki.linuxfromscratch.org/lfs/ticket/4944 - 296. https://wiki.linuxfromscratch.org/lfs/ticket/4943 - 297. https://wiki.linuxfromscratch.org/lfs/ticket/4942 - 298. https://wiki.linuxfromscratch.org/lfs/ticket/4941 - 299. https://wiki.linuxfromscratch.org/lfs/ticket/4940 - 300. https://wiki.linuxfromscratch.org/lfs/ticket/4939 - 301. https://wiki.linuxfromscratch.org/lfs/ticket/4500 - 302. https://wiki.linuxfromscratch.org/lfs/ticket/4934 - 303. https://wiki.linuxfromscratch.org/lfs/ticket/4938 - 304. https://wiki.linuxfromscratch.org/lfs/ticket/4937 - 305. https://wiki.linuxfromscratch.org/lfs/ticket/4932 - 306. https://wiki.linuxfromscratch.org/lfs/ticket/4933 - 307. https://wiki.linuxfromscratch.org/lfs/ticket/4936 - 308. https://wiki.linuxfromscratch.org/lfs/ticket/4935 - 309. https://wiki.linuxfromscratch.org/lfs/ticket/4500 - 310. https://wiki.linuxfromscratch.org/lfs/ticket/4722 - 311. https://wiki.linuxfromscratch.org/lfs/ticket/4929 - 312. https://wiki.linuxfromscratch.org/lfs/ticket/4927 - 313. https://wiki.linuxfromscratch.org/lfs/ticket/4931 - 314. https://wiki.linuxfromscratch.org/lfs/ticket/4925 - 315. https://wiki.linuxfromscratch.org/lfs/ticket/4926 - 316. https://wiki.linuxfromscratch.org/lfs/ticket/4928 - 317. https://wiki.linuxfromscratch.org/lfs/ticket/4930 - 318. https://wiki.linuxfromscratch.org/lfs/ticket/4923 - 319. https://wiki.linuxfromscratch.org/lfs/ticket/4916 - 320. https://wiki.linuxfromscratch.org/lfs/ticket/4913 - 321. https://wiki.linuxfromscratch.org/lfs/ticket/4912 - 322. https://wiki.linuxfromscratch.org/lfs/ticket/4917 - 323. https://wiki.linuxfromscratch.org/lfs/ticket/4918 - 324. https://wiki.linuxfromscratch.org/lfs/ticket/4920 - 325. https://wiki.linuxfromscratch.org/lfs/ticket/4919 - 326. https://wiki.linuxfromscratch.org/lfs/ticket/4921 - 327. https://wiki.linuxfromscratch.org/lfs/ticket/4908 - 328. https://www.linuxfromscratch.org/faq/ - 329. https://www.linuxfromscratch.org/search.html - 330. https://www.linuxfromscratch.org/mail.html - 331. https://www.linuxfromscratch.org/mirrors.html - 332. https://www.linuxfromscratch.org/faq/#generalfaq - 333. https://www.linuxfromscratch.org/hints/downloads/files/errors.txt - 334. https://www.linuxfromscratch.org/search.html - 335. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-intro-resources - 336. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#version-check - 337. http://catb.org/~esr/faqs/smart-questions.html - 338. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 339. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 340. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-bootable - 341. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-generalinstructions - 342. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-bindmount - 343. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-kernfsmount - 344. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/raid.html - 345. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/aboutlvm.html - 346. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/initramfs.html - 347. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-fstab - 348. http://en.wikipedia.org/wiki/Comparison_of_file_systems - 349. http://www.google.com/ - 350. https://www.linuxfromscratch.org/lfs/mirrors.html#files - 351. https://www.linuxfromscratch.org/mirrors.html#files - 352. file:///tmp/1/wget-list - 353. file:///tmp/1/md5sums - 354. https://savannah.nongnu.org/projects/acl - 355. https://download.savannah.gnu.org/releases/acl/acl-2.3.1.tar.xz - 356. https://savannah.nongnu.org/projects/attr - 357. https://download.savannah.gnu.org/releases/attr/attr-2.5.1.tar.gz - 358. https://www.gnu.org/software/autoconf/ - 359. https://ftp.gnu.org/gnu/autoconf/autoconf-2.71.tar.xz - 360. https://www.gnu.org/software/automake/ - 361. https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.xz - 362. https://www.gnu.org/software/bash/ - 363. https://ftp.gnu.org/gnu/bash/bash-5.1.16.tar.gz - 364. https://git.yzena.com/gavin/bc - 365. https://github.com/gavinhoward/bc/releases/download/5.2.2/bc-5.2.2.tar.xz - 366. https://www.gnu.org/software/binutils/ - 367. https://ftp.gnu.org/gnu/binutils/binutils-2.38.tar.xz - 368. https://www.gnu.org/software/bison/ - 369. https://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.xz - 370. https://www.sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz - 371. https://libcheck.github.io/check - 372. https://github.com/libcheck/check/releases/download/0.15.2/check-0.15.2.tar.gz - 373. https://www.gnu.org/software/coreutils/ - 374. https://ftp.gnu.org/gnu/coreutils/coreutils-9.0.tar.xz - 375. https://www.gnu.org/software/dejagnu/ - 376. https://ftp.gnu.org/gnu/dejagnu/dejagnu-1.6.3.tar.gz - 377. https://www.gnu.org/software/diffutils/ - 378. https://ftp.gnu.org/gnu/diffutils/diffutils-3.8.tar.xz - 379. http://e2fsprogs.sourceforge.net/ - 380. https://downloads.sourceforge.net/project/e2fsprogs/e2fsprogs/v1.46.5/e2fsprogs-1.46.5.tar.gz - 381. https://sourceware.org/elfutils/ - 382. https://sourceware.org/ftp/elfutils/0.186/elfutils-0.186.tar.bz2 - 383. https://github.com/eudev-project/eudev/releases/download/v3.2.11/eudev-3.2.11.tar.gz - 384. https://libexpat.github.io/ - 385. https://prdownloads.sourceforge.net/expat/expat-2.4.6.tar.xz - 386. https://www.linuxfromscratch.org/lfs/advisories/ - 387. https://core.tcl.tk/expect/ - 388. https://prdownloads.sourceforge.net/expect/expect5.45.4.tar.gz - 389. https://www.darwinsys.com/file/ - 390. https://astron.com/pub/file/file-5.41.tar.gz - 391. https://www.gnu.org/software/findutils/ - 392. https://ftp.gnu.org/gnu/findutils/findutils-4.9.0.tar.xz - 393. https://github.com/westes/flex - 394. https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz - 395. https://www.gnu.org/software/gawk/ - 396. https://ftp.gnu.org/gnu/gawk/gawk-5.1.1.tar.xz - 397. https://gcc.gnu.org/ - 398. https://ftp.gnu.org/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.xz - 399. https://www.gnu.org/software/gdbm/ - 400. https://ftp.gnu.org/gnu/gdbm/gdbm-1.23.tar.gz - 401. https://www.gnu.org/software/gettext/ - 402. https://ftp.gnu.org/gnu/gettext/gettext-0.21.tar.xz - 403. https://www.gnu.org/software/libc/ - 404. https://ftp.gnu.org/gnu/glibc/glibc-2.35.tar.xz - 405. https://www.gnu.org/software/gmp/ - 406. https://ftp.gnu.org/gnu/gmp/gmp-6.2.1.tar.xz - 407. https://www.gnu.org/software/gperf/ - 408. https://ftp.gnu.org/gnu/gperf/gperf-3.1.tar.gz - 409. https://www.gnu.org/software/grep/ - 410. https://ftp.gnu.org/gnu/grep/grep-3.7.tar.xz - 411. https://www.gnu.org/software/groff/ - 412. https://ftp.gnu.org/gnu/groff/groff-1.22.4.tar.gz - 413. https://www.gnu.org/software/grub/ - 414. https://ftp.gnu.org/gnu/grub/grub-2.06.tar.xz - 415. https://www.gnu.org/software/gzip/ - 416. https://ftp.gnu.org/gnu/gzip/gzip-1.11.tar.xz - 417. https://www.iana.org/protocols - 418. https://github.com/Mic92/iana-etc/releases/download/20220207/iana-etc-20220207.tar.gz - 419. https://www.gnu.org/software/inetutils/ - 420. https://ftp.gnu.org/gnu/inetutils/inetutils-2.2.tar.xz - 421. https://freedesktop.org/wiki/Software/intltool - 422. https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz - 423. https://www.kernel.org/pub/linux/utils/net/iproute2/ - 424. https://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-5.16.0.tar.xz - 425. https://kbd-project.org/ - 426. https://www.kernel.org/pub/linux/utils/kbd/kbd-2.4.0.tar.xz - 427. https://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-29.tar.xz - 428. https://www.greenwoodsoftware.com/less/ - 429. https://www.greenwoodsoftware.com/less/less-590.tar.gz - 430. https://www.linuxfromscratch.org/lfs/downloads/11.1/lfs-bootscripts-20210608.tar.xz - 431. https://sites.google.com/site/fullycapable/ - 432. https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-2.63.tar.xz - 433. https://sourceware.org/libffi/ - 434. https://github.com/libffi/libffi/releases/download/v3.4.2/libffi-3.4.2.tar.gz - 435. http://libpipeline.nongnu.org/ - 436. https://download.savannah.gnu.org/releases/libpipeline/libpipeline-1.5.5.tar.gz - 437. https://www.gnu.org/software/libtool/ - 438. https://ftp.gnu.org/gnu/libtool/libtool-2.4.6.tar.xz - 439. https://www.kernel.org/ - 440. https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.16.9.tar.xz - 441. https://www.gnu.org/software/m4/ - 442. https://ftp.gnu.org/gnu/m4/m4-1.4.19.tar.xz - 443. https://www.gnu.org/software/make/ - 444. https://ftp.gnu.org/gnu/make/make-4.3.tar.gz - 445. https://www.nongnu.org/man-db/ - 446. https://download.savannah.gnu.org/releases/man-db/man-db-2.10.1.tar.xz - 447. https://www.kernel.org/doc/man-pages/ - 448. https://www.kernel.org/pub/linux/docs/man-pages/man-pages-5.13.tar.xz - 449. https://mesonbuild.com/ - 450. https://github.com/mesonbuild/meson/releases/download/0.61.1/meson-0.61.1.tar.gz - 451. http://www.multiprecision.org/ - 452. https://ftp.gnu.org/gnu/mpc/mpc-1.2.1.tar.gz - 453. https://www.mpfr.org/ - 454. https://www.mpfr.org/mpfr-4.1.0/mpfr-4.1.0.tar.xz - 455. https://www.gnu.org/software/ncurses/ - 456. https://invisible-mirror.net/archives/ncurses/ncurses-6.3.tar.gz - 457. https://ninja-build.org/ - 458. https://github.com/ninja-build/ninja/archive/v1.10.2/ninja-1.10.2.tar.gz - 459. https://www.openssl.org/ - 460. https://www.openssl.org/source/openssl-3.0.1.tar.gz - 461. https://savannah.gnu.org/projects/patch/ - 462. https://ftp.gnu.org/gnu/patch/patch-2.7.6.tar.xz - 463. https://www.perl.org/ - 464. https://www.cpan.org/src/5.0/perl-5.34.0.tar.xz - 465. https://www.freedesktop.org/wiki/Software/pkg-config - 466. https://pkg-config.freedesktop.org/releases/pkg-config-0.29.2.tar.gz - 467. https://sourceforge.net/projects/procps-ng - 468. https://sourceforge.net/projects/procps-ng/files/Production/procps-ng-3.3.17.tar.xz - 469. https://gitlab.com/psmisc/psmisc - 470. https://sourceforge.net/projects/psmisc/files/psmisc/psmisc-23.4.tar.xz - 471. https://www.python.org/ - 472. https://www.python.org/ftp/python/3.10.2/Python-3.10.2.tar.xz - 473. https://www.python.org/ftp/python/doc/3.10.2/python-3.10.2-docs-html.tar.bz2 - 474. https://tiswww.case.edu/php/chet/readline/rltop.html - 475. https://ftp.gnu.org/gnu/readline/readline-8.1.2.tar.gz - 476. https://www.gnu.org/software/sed/ - 477. https://ftp.gnu.org/gnu/sed/sed-4.8.tar.xz - 478. https://shadow-maint.github.io/shadow/ - 479. https://github.com/shadow-maint/shadow/releases/download/v4.11.1/shadow-4.11.1.tar.xz - 480. https://www.infodrom.org/projects/sysklogd/ - 481. https://www.infodrom.org/projects/sysklogd/download/sysklogd-1.5.1.tar.gz - 482. https://savannah.nongnu.org/projects/sysvinit - 483. https://download.savannah.gnu.org/releases/sysvinit/sysvinit-3.01.tar.xz - 484. https://www.gnu.org/software/tar/ - 485. https://ftp.gnu.org/gnu/tar/tar-1.34.tar.xz - 486. http://tcl.sourceforge.net/ - 487. https://downloads.sourceforge.net/tcl/tcl8.6.12-src.tar.gz - 488. https://downloads.sourceforge.net/tcl/tcl8.6.12-html.tar.gz - 489. https://www.gnu.org/software/texinfo/ - 490. https://ftp.gnu.org/gnu/texinfo/texinfo-6.8.tar.xz - 491. https://www.iana.org/time-zones - 492. https://www.iana.org/time-zones/repository/releases/tzdata2021e.tar.gz - 493. https://anduin.linuxfromscratch.org/LFS/udev-lfs-20171102.tar.xz - 494. https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/ - 495. https://www.kernel.org/pub/linux/utils/util-linux/v2.37/util-linux-2.37.4.tar.xz - 496. https://www.vim.org/ - 497. https://anduin.linuxfromscratch.org/LFS/vim-8.2.4383.tar.gz - 498. https://github.com/vim/vim/releases - 499. https://github.com/chorny/XML-Parser - 500. https://cpan.metacpan.org/authors/id/T/TO/TODDR/XML-Parser-2.46.tar.gz - 501. https://tukaani.org/xz - 502. https://tukaani.org/xz/xz-5.2.5.tar.xz - 503. https://www.zlib.net/ - 504. https://zlib.net/zlib-1.2.11.tar.xz - 505. https://facebook.github.io/zstd/ - 506. https://github.com/facebook/zstd/releases/download/v1.5.2/zstd-1.5.2.tar.gz - 507. https://www.linuxfromscratch.org/patches/lfs/11.1/binutils-2.38-lto_fix-1.patch - 508. https://www.linuxfromscratch.org/patches/lfs/11.1/bzip2-1.0.8-install_docs-1.patch - 509. https://www.linuxfromscratch.org/patches/lfs/11.1/coreutils-9.0-i18n-1.patch - 510. https://www.linuxfromscratch.org/patches/lfs/11.1/coreutils-9.0-chmod_fix-1.patch - 511. https://www.linuxfromscratch.org/patches/lfs/11.1/glibc-2.35-fhs-1.patch - 512. https://www.linuxfromscratch.org/patches/lfs/11.1/kbd-2.4.0-backspace-1.patch - 513. https://www.linuxfromscratch.org/patches/lfs/11.1/perl-5.34.0-upstream_fixes-1.patch - 514. https://www.linuxfromscratch.org/patches/lfs/11.1/sysvinit-3.01-consolidated-1.patch - 515. https://www.linuxfromscratch.org/patches/downloads/ - 516. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 517. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 518. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 519. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 520. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-toolchaintechnotes - 521. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-toolchaintechnotes - 522. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 523. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 524. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 525. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 526. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-chroot-temporary-tools - 527. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bash - 528. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 529. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 530. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 531. https://www.linuxfromscratch.org/lfs/faq.html#no-ptys - 532. https://www.linuxfromscratch.org/lfs/build-logs/11.1/ - 533. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 534. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 535. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 536. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 537. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 538. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-chroot-temporary-tools - 539. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 540. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-hostreqs - 541. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 542. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 543. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-generalinstructions - 544. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-binutils - 545. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#buildinstr - 546. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-gcc - 547. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-chroot - 548. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-glibc - 549. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gcc-pass1 - 550. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-gcc - 551. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-preps-settingenviron - 552. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-m4 - 553. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 554. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-ncurses - 555. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-bash - 556. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-coreutils - 557. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-diffutils - 558. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-file - 559. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-findutils - 560. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-gawk - 561. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-grep - 562. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-gzip - 563. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-make - 564. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-patch - 565. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-sed - 566. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-tar - 567. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-xz - 568. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-binutils - 569. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-gcc - 570. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-chroot - 571. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-bindmount - 572. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-kernfsmount - 573. https://refspecs.linuxfoundation.org/fhs.shtml - 574. http://refspecs.linuxfoundation.org/lsb.shtml - 575. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 576. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gcc-pass2 - 577. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-gcc - 578. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-gettext - 579. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-bison - 580. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-perl - 581. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 582. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-python - 583. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-texinfo - 584. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-utillinux - 585. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 586. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-aboutlfs - 587. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-kernfs - 588. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-chroot - 589. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 590. https://www.linuxfromscratch.org/blfs/view/11.1/introduction/libraries.html - 591. https://www.linuxfromscratch.org/hints/downloads/files/ - 592. http://refspecs.linuxfoundation.org/lsb.shtml - 593. https://www.linuxfromscratch.org/hints/downloads/files/fakeroot.txt - 594. http://www.slackbook.org/html/package-management.html - 595. https://www.linuxfromscratch.org/hints/downloads/files/ - 596. https://www.linuxfromscratch.org/hints/downloads/files/more_control_and_pkg_man.txt - 597. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-grub - 598. https://www.linuxfromscratch.org/blfs/view/11.1/general/libidn2.html - 599. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/cracklib.html - 600. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-pages - 601. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles - 602. https://www.linuxfromscratch.org/blfs/view/11.1/general/gcc.html - 603. https://www.linuxfromscratch.org/lfs/build-logs/11.1/ - 604. https://gcc.gnu.org/ml/gcc-testresults/ - 605. https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s09.html - 606. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pkgmgmt-upgrade-issues - 607. https://gcc.gnu.org/onlinedocs/gcc-11.2.0/gcc/x86-Options.html - 608. https://www.linuxfromscratch.org/blfs/view/11.1/ - 609. https://www.linuxfromscratch.org/blfs/view/11.1/ - 610. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/grub-efi.html - 611. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-grub - 612. https://www.linuxfromscratch.org/blfs/view/11.1/server/db.html - 613. http://www.skbuff.net/iputils/ - 614. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/editors.html - 615. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/vim.html - 616. ftp://ftp.vim.org/pub/vim/runtime/spell/ - 617. https://www.linuxfromscratch.org/blfs/view/11.1//general/valgrind.html - 618. https://www.linuxfromscratch.org/blfs/view/11.1//general/gdb.html - 619. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pkgmgmt-upgrade-issues - 620. https://www.linuxfromscratch.org/blfs/view/11.1/introduction/la-files.html - 621. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 622. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-chroot-temporary-tools - 623. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 624. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-symlinks - 625. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-network - 626. http://www.kroah.com/linux/talks/ols_2003_udev_paper/Reprint-Kroah-Hartman-OLS2003.pdf - 627. http://www.kernel.org/pub/linux/kernel/people/mochel/doc/papers/ols-2005/mochel.pdf - 628. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-cfg - 629. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-udev - 630. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-network - 631. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/devices.html - 632. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-eudev - 633. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#module-loading - 634. https://www.linuxfromscratch.org/hints/downloads/files/time.txt - 635. http://www.tldp.org/HOWTO/HOWTO-INDEX/other-lang.html - 636. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc - 637. https://www.linuxfromscratch.org/blfs/view/11.1/introduction/locale-issues.html - 638. https://www.linuxfromscratch.org/blfs/view/11.1/general/hdparm.html - 639. https://www.linuxfromscratch.org/hints/downloads/files/kernel-configuration.txt - 640. https://www.linuxfromscratch.org/blfs/view/11.1/longindex.html#kernel-config-index - 641. http://www.kroah.com/lkn/ - 642. https://www.linuxfromscratch.org/blfs/view/11.1/longindex.html#kernel-config-index - 643. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/grub-setup.html#uefi-kernel - 644. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-udev - 645. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers - 646. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/grub-setup.html - 647. https://www.linuxfromscratch.org/blfs/view/11.1/multimedia/libisoburn.html - 648. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 649. https://www.linuxfromscratch.org/cgi-bin/lfscounter.php - 650. https://www.linuxfromscratch.org/blfs/view/11.1/basicnet/lynx.html - 651. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/make-ca.html - 652. https://www.linuxfromscratch.org/blfs/view/11.1/general/gpm.html - 653. https://www.linuxfromscratch.org/blfs/view/11.1/basicnet/dhcpcd.html - 654. https://www.linuxfromscratch.org/blfs/view/11.1/basicnet/dhcp.html - 655. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/sudo.html - 656. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/openssh.html - 657. https://www.linuxfromscratch.org/blfs/view/11.1/basicnet/wget.html - 658. https://www.linuxfromscratch.org/blfs/view/11.1/basicnet/wpa_supplicant.html - 659. http://www.cert.org/ - 660. http://www.us-cert.gov/cas/signup.html - 661. http://www.securityfocus.com/archive - 662. https://www.linuxfromscratch.org/blfs/view/11.1/ - 663. https://www.linuxfromscratch.org/hints/downloads/files/ - 664. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-intro-maillists - 665. http://www.tldp.org/ - 666. mailto:gerard@linuxfromscratch.org - 667. mailto:bdubbs@linuxfromscratch.org - 668. mailto:jim@linuxfromscratch.org - 669. mailto:pierre@linuxfromscratch.org - 670. mailto:dj@linuxfromscratch.org - 671. mailto:ken@linuxfromscratch.org - 672. mailto:macana@macana-es.com - 673. mailto:johan@linuxfromscratch.org - 674. mailto:jmengual@linuxfromscratch.org - 675. mailto:jlepiller@linuxfromscratch.org - 676. mailto:lizardo@linuxfromscratch.org - 677. mailto:tr@erdfunkstelle.de - 678. mailto:info@linuxfromscratch.org.ru - 679. mailto:helen@linuxfromscratch.org.ru - 680. mailto:scott@osuosl.org - 681. mailto:lost@l-w.net - 682. mailto:eujon.sellers@gmail.com - 683. mailto:justin@knierim.org - 684. mailto:manuel@linuxfromscratch.org - 685. mailto:lfalcon@thymbra.com - 686. mailto:guido@primerelay.net - 687. mailto:baafie@planet.nl - 688. mailto:sven.cranshoff@lineo.be - 689. mailto:info@aliensoft.org - 690. mailto:stuart@dontuse.ms - 691. mailto:admin@realhost.de - 692. mailto:Antonin.Sprinzl@tuwien.ac.at - 693. mailto:fredan-lfs@fredan.org - 694. mailto:franck@linuxpourtous.com - 695. mailto:baque@cict.fr - 696. mailto:gyouja@pilgrims.ru - 697. mailto:kontakt@wankoo.org - 698. mailto:info@linuxfromscratch.org.ru - 699. mailto:satit@wbac.ac.th - 700. mailto:info@shizu-net.jp - 701. http://www.initworld.com/ - 702. mailto:jason@dstc.edu.au - 703. mailto:theladyskye@linuxfromscratch.org - 704. mailto:matthew@linuxfromscratch.org - 705. mailto:nathan@linuxfromscratch.org - 706. mailto:jeroen@linuxfromscratch.org - 707. mailto:manuel@linuxfromscratch.org - 708. mailto:jhuntwork@linuxfromscratch.org - 709. mailto:bryan@linuxfromscratch.org - 710. mailto:nicholas@linuxfromscratch.org - 711. mailto:lizardo@linuxfromscratch.org - 712. mailto:randy@linuxfromscratch.org - 713. mailto:dnicholson@linuxfromscratch.org - 714. mailto:alexander@linuxfromscratch.org - 715. mailto:scot@linuxfromscratch.org - 716. mailto:renodr@linuxfromscratch.org - 717. mailto:ryan@linuxfromscratch.org - 718. mailto:gschafer@zip.com.au - 719. mailto:jwrober@linuxfromscratch.org - 720. mailto:tushar@linuxfromscratch.org - 721. mailto:jeremy@linuxfromscratch.org - 722. mailto:zwinkles@gmail.com - 723. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/emacs.html - 724. https://www.linuxfromscratch.org/blfs/view/11.1/x/installing.html - 725. https://sourceware.org/elfutils/ - 726. https://www.linuxfromscratch.org/blfs/view/11.1/general/doxygen.html - 727. https://metacpan.org/pod/Expect - 728. https://metacpan.org/pod/IO::Tty - 729. https://www.linuxfromscratch.org/blfs/view/11.1/general/tk.html - 730. https://www.linuxfromscratch.org/blfs/view/11.1/general/libseccomp.html - 731. https://www.linuxfromscratch.org/blfs/view/11.1/general/libsigsegv.html - 732. http://gcc.gnu.org/wiki/GNAT - 733. https://repo.or.cz/isl.git - 734. https://www.linuxfromscratch.org/blfs/view/11.1/general/pcre.html - 735. https://www.linuxfromscratch.org/blfs/view/11.1/general/libsigsegv.html - 736. https://www.linuxfromscratch.org/blfs/view/11.1/pst/gs.html - 737. https://www.linuxfromscratch.org/blfs/view/11.1/general/uchardet.html - 738. https://www.linuxfromscratch.org/blfs/view/11.1/server/db.html - 739. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/iptables.html - 740. https://www.linuxfromscratch.org/blfs/view/11.1/general/pcre.html - 741. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/linux-pam.html - 742. https://www.linuxfromscratch.org/blfs/view/11.1/general/cpio.html - 743. https://www.linuxfromscratch.org/blfs/view/11.1/general/libsigsegv.html - 744. https://www.linuxfromscratch.org/blfs/view/11.1/general/guile.html - 745. https://www.linuxfromscratch.org/blfs/view/11.1/general/libseccomp.html - 746. https://www.linuxfromscratch.org/blfs/view/11.1/general/asciidoc.html - 747. https://www.linuxfromscratch.org/blfs/view/11.1/general/doxygen.html - 748. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/emacs.html - 749. https://re2c.org/ - 750. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/ed.html - 751. https://www.linuxfromscratch.org/blfs/view/11.1/server/db.html - 752. https://www.linuxfromscratch.org/blfs/view/11.1/general/glib2.html - 753. https://www.linuxfromscratch.org/blfs/view/11.1/server/db.html - 754. https://www.linuxfromscratch.org/blfs/view/11.1/basicnet/libnsl.html - 755. https://www.linuxfromscratch.org/blfs/view/11.1/server/sqlite.html - 756. https://www.linuxfromscratch.org/blfs/view/11.1/general/tk.html - 757. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/cracklib.html - 758. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/linux-pam.html - 759. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/btrfs-progs.html - 760. https://www.linuxfromscratch.org/blfs/view/11.1/basicnet/curl.html - 761. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/cryptsetup.html - 762. https://www.linuxfromscratch.org/blfs/view/11.1/pst/docbook.html - 763. https://www.linuxfromscratch.org/blfs/view/11.1/pst/docbook-xsl.html - 764. https://sourceware.org/elfutils/ - 765. https://www.linuxfromscratch.org/blfs/view/11.1/general/git.html - 766. https://sourceforge.net/projects/gnu-efi/ - 767. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/gnutls.html - 768. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/iptables.html - 769. https://www.kernel.org/pub/linux/utils/kernel/kexec/ - 770. https://developers.yubico.com/libfido2/ - 771. https://www.linuxfromscratch.org/blfs/view/11.1/general/libgcrypt.html - 772. https://www.linuxfromscratch.org/blfs/view/11.1/general/libidn2.html - 773. https://www.gnu.org/software/libmicrohttpd/ - 774. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/libpwquality.html - 775. https://www.linuxfromscratch.org/blfs/view/11.1/general/libseccomp.html - 776. https://www.linuxfromscratch.org/blfs/view/11.1/general/libxkbcommon.html - 777. https://www.linuxfromscratch.org/blfs/view/11.1/general/libxslt.html - 778. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/linux-pam.html - 779. https://www.linuxfromscratch.org/blfs/view/11.1/general/python-modules.html#lxml - 780. http://lz4.github.io/lz4/ - 781. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/make-ca.html - 782. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/p11-kit.html - 783. https://www.linuxfromscratch.org/blfs/view/11.1/general/pcre2.html - 784. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/polkit.html - 785. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/qemu.html - 786. https://www.linuxfromscratch.org/blfs/view/11.1/general/qrencode.html - 787. https://sourceforge.net/projects/linuxquota/ - 788. https://www.linuxfromscratch.org/blfs/view/11.1/basicnet/rsync.html - 789. https://pypi.python.org/pypi/Sphinx - 790. https://tpm2-tss.readthedocs.io/en/latest/ - 791. https://www.linuxfromscratch.org/blfs/view/11.1/general/valgrind.html - 792. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/zsh.html - 793. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/linux-pam.html - 794. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/smartmontools.html - 795. https://www.linuxfromscratch.org/blfs/view/11.1/x/installing.html - 796. https://www.linuxfromscratch.org/blfs/view/11.1/x/gtk2.html - 797. http://lesstif.sourceforge.net/ - 798. https://www.linuxfromscratch.org/blfs/view/11.1/general/ruby.html - 799. https://www.linuxfromscratch.org/blfs/view/11.1/general/gpm.html - 800. http://lz4.github.io/lz4/ - 801. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-eudev - 802. http://creativecommons.org/ - 803. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-acl - 804. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-attr - 805. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 806. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-automake - 807. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bash - 808. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-bash - 809. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bc - 810. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils - 811. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-binutils-pass1 - 812. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-binutils-pass2 - 813. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bison - 814. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-bison - 815. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts - 816. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-usage - 817. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 818. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-check - 819. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 820. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-coreutils - 821. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dejagnu - 822. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-diffutils - 823. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-diffutils - 824. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs - 825. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-eudev - 826. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#conf-eudev - 827. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expat - 828. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expect - 829. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-file - 830. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-file - 831. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-findutils - 832. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-findutils - 833. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-flex - 834. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gawk - 835. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gawk - 836. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc - 837. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-libstdcpp-pass1 - 838. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-libstdcpp-pass2 - 839. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gcc-pass1 - 840. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gcc-pass2 - 841. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gdbm - 842. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext - 843. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gettext - 844. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc - 845. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-glibc - 846. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gmp - 847. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gperf - 848. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grep - 849. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-grep - 850. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff - 851. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub - 852. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip - 853. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gzip - 854. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iana-etc - 855. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils - 856. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-intltool - 857. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 - 858. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd - 859. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod - 860. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-less - 861. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap - 862. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libelf - 863. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libffi - 864. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libpipeline - 865. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libtool - 866. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-kernel - 867. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers - 868. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-m4 - 869. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-m4 - 870. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-make - 871. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-make - 872. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db - 873. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-pages - 874. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-meson - 875. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-mpc - 876. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-mpfr - 877. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses - 878. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-ncurses - 879. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ninja - 880. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-openssl - 881. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-patch - 882. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-patch - 883. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl - 884. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-perl - 885. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-pkgconfig - 886. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps - 887. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc - 888. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-Python - 889. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-Python - 890. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-site - 891. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-readline - 892. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sed - 893. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-sed - 894. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow - 895. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#conf-shadow - 896. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysklogd - 897. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#conf-sysklogd - 898. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysvinit - 899. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#conf-sysvinit - 900. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tar - 901. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-tar - 902. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tcl - 903. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo - 904. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-texinfo - 905. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-udev - 906. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 907. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-util-linux - 908. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim - 909. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xml-parser - 910. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz - 911. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-xz - 912. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zlib - 913. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zstd - 914. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 915. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-Python - 916. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db - 917. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-automake - 918. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-automake - 919. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff - 920. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 921. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils - 922. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff - 923. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 924. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db - 925. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils - 926. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils - 927. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-attr - 928. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 929. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 930. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 931. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-automake - 932. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-automake - 933. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext - 934. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 935. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 936. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 937. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gawk - 938. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 939. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs - 940. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 941. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 942. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 943. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bash - 944. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bash - 945. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bc - 946. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bison - 947. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 948. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 949. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 950. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 951. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysvinit - 952. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 - 953. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 954. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 955. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 956. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 957. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 958. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 959. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 960. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 961. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 962. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 963. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 964. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc - 965. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils - 966. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 967. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap - 968. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses - 969. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 970. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db - 971. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc - 972. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 973. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-acl - 974. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow - 975. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs - 976. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 977. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 978. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-check - 979. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff - 980. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow - 981. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow - 982. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 983. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 984. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 985. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 986. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 987. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow - 988. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 989. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 990. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow - 991. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd - 992. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 993. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses - 994. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-diffutils - 995. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 996. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 997. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 998. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 999. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1000. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1001. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1002. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1003. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1004. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1005. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1006. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1007. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1008. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1009. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-openssl -1010. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1011. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bc -1012. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1013. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1014. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1015. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dejagnu -1016. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1017. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1018. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1019. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-diffutils -1020. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-diffutils -1021. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1022. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1023. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1024. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1025. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1026. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1027. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1028. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1029. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1030. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1031. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1032. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1033. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1034. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1035. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1036. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1037. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1038. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1039. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1040. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grep -1041. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1042. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1043. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1044. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1045. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1046. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1047. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1048. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1049. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1050. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1051. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expect -1052. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1053. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1054. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1055. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1056. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1057. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1058. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1059. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1060. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grep -1061. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-file -1062. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1063. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1064. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-findutils -1065. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1066. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1067. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-flex -1068. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-flex -1069. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1070. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1071. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1072. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1073. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1074. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1075. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1076. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1077. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1078. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1079. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1080. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysvinit -1081. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1082. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1083. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc -1084. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1085. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gawk -1086. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gawk -1087. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1088. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1089. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1090. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1091. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1092. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1093. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1094. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gdbm -1095. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gdbm -1096. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gdbm -1097. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1098. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1099. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1100. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap -1101. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1102. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1103. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-acl -1104. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-attr -1105. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1106. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1107. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap -1108. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1109. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1110. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1111. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1112. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1113. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1114. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gperf -1115. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1116. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1117. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1118. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1119. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grep -1120. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1121. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1122. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1123. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1124. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1125. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1126. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1127. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1128. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1129. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1130. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1131. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1132. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1133. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1134. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1135. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1136. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1137. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1138. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1139. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1140. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1141. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1142. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1143. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1144. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1145. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1146. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1147. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1148. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1149. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1150. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1151. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1152. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1153. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1154. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1155. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1156. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1157. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1158. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1159. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1160. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1161. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1162. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1163. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1164. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1165. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1166. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1167. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1168. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysvinit -1169. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1170. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1171. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1172. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1173. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1174. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1175. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1176. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1177. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1178. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1179. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-Python -1180. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1181. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1182. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf -1183. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1184. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1185. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1186. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1187. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1188. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysvinit -1189. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1190. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1191. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1192. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1193. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-intltool -1194. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-intltool -1195. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-intltool -1196. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-intltool -1197. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-intltool -1198. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1199. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1200. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1201. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1202. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1203. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1204. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1205. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1206. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1207. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1208. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1209. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1210. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1211. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc -1212. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysvinit -1213. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysklogd -1214. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1215. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1216. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1217. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1218. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1219. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1220. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1221. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1222. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1223. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1224. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1225. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-less -1226. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-less -1227. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-less -1228. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-flex -1229. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1230. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-kernel -1231. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1232. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1233. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1234. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1235. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libtool -1236. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libtool -1237. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1238. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1239. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1240. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1241. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1242. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1243. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1244. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1245. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1246. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1247. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-findutils -1248. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1249. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1250. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1251. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1252. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1253. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1254. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1255. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1256. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1257. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1258. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1259. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1260. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1261. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1262. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1263. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1264. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1265. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1266. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1267. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1268. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1269. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1270. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1271. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1272. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1273. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1274. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1275. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1276. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1277. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1278. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1279. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-m4 -1280. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-make -1281. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1282. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1283. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1284. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1285. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1286. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1287. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1288. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1289. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1290. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1291. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-meson -1292. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1293. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1294. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1295. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1296. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1297. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1298. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1299. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1300. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1301. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1302. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1303. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1304. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1305. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1306. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1307. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1308. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1309. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1310. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1311. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1312. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1313. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1314. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1315. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1316. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1317. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1318. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1319. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1320. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1321. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1322. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1323. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1324. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1325. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1326. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1327. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1328. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1329. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1330. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1331. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1332. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1333. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1334. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1335. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1336. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1337. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1338. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ninja -1339. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1340. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1341. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1342. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1343. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1344. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1345. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1346. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1347. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1348. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1349. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1350. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1351. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1352. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-openssl -1353. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1354. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1355. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1356. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1357. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-patch -1358. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1359. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1360. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1361. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1362. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1363. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc -1364. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1365. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1366. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1367. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1368. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1369. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1370. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1371. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1372. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1373. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1374. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1375. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1376. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1377. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1378. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1379. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-Python -1380. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1381. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-pkgconfig -1382. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1383. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1384. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1385. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1386. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1387. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1388. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1389. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1390. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1391. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1392. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1393. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1394. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysvinit -1395. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1396. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1397. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1398. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1399. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1400. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1401. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1402. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc -1403. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1404. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1405. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1406. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1407. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1408. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc -1409. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc -1410. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc -1411. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1412. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1413. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1414. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1415. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1416. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1417. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1418. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1419. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1420. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1421. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-Python -1422. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-Python -1423. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1424. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1425. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1426. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1427. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1428. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysvinit -1429. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1430. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1431. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1432. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1433. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1434. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1435. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1436. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1437. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1438. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1439. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1440. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1441. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1442. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1443. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1444. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1445. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1446. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1447. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1448. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1449. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1450. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1451. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1452. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1453. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1454. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1455. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysvinit -1456. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dejagnu -1457. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1458. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1459. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1460. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1461. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1462. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-diffutils -1463. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sed -1464. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1465. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1466. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap -1467. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-acl -1468. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-attr -1469. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1470. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1471. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1472. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1473. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1474. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1475. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1476. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1477. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1478. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bash -1479. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1480. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1481. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1482. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1483. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1484. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1485. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1486. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1487. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1488. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1489. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysvinit -1490. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1491. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1492. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1493. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1494. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1495. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1496. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1497. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1498. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1499. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1500. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1501. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1502. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1503. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1504. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1505. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1506. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1507. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1508. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1509. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1510. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1511. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1512. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1513. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1514. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1515. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysklogd -1516. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1517. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1518. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1519. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1520. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tar -1521. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1522. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1523. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1524. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tcl -1525. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tcl -1526. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1527. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysvinit -1528. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1529. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1530. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1531. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1532. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1533. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1534. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1535. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1536. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1537. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1538. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1539. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1540. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1541. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1542. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1543. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1544. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1545. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1546. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1547. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1548. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1549. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1550. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1551. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1552. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1553. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1554. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-eudev -1555. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-eudev -1556. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1557. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1558. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1559. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1560. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1561. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1562. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1563. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1564. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1565. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1566. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1567. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1568. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1569. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-findutils -1570. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1571. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1572. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1573. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1574. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1575. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1576. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1577. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1578. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1579. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1580. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1581. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1582. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1583. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1584. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1585. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1586. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1587. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1588. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1589. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1590. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1591. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1592. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1593. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1594. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1595. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1596. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1597. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1598. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1599. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-findutils -1600. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1601. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expat -1602. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1603. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1604. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1605. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1606. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1607. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1608. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1609. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1610. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1611. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1612. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1613. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1614. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1615. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bison -1616. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1617. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1618. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1619. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1620. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1621. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1622. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1623. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1624. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1625. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1626. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1627. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1628. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1629. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1630. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1631. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zstd -1632. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zstd -1633. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zstd -1634. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xml-parser -1635. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1636. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-acl -1637. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1638. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1639. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-attr -1640. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1641. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1642. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1643. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 -1644. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1645. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap -1646. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-check -1647. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1648. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1649. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-openssl -1650. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1651. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1652. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1653. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1654. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1655. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1656. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libelf -1657. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expat -1658. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expect -1659. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1660. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1661. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libffi -1662. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-flex -1663. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1664. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1665. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1666. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1667. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gdbm -1668. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gdbm -1669. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1670. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1671. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1672. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gmp -1673. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gmp -1674. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1675. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-readline -1676. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1677. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1678. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1679. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libtool -1680. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1681. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1682. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1683. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-file -1684. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1685. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1686. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1687. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1688. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1689. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1690. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-mpc -1691. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-mpfr -1692. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1693. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1694. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1695. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1696. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1697. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1698. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1699. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libpipeline -1700. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1701. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap -1702. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1703. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1704. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-readline -1705. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1706. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1707. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1708. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1709. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-openssl -1710. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1711. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1712. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1713. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1714. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1715. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1716. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tcl -1717. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tcl -1718. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1719. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1720. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1721. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1722. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-eudev -1723. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1724. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1725. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bison -1726. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zlib -1727. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zstd -1728. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1729. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1730. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1731. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1732. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-console -1733. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-createfiles -1734. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1735. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1736. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-hostname -1737. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1738. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1739. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1740. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1741. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-hosts -1742. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1743. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1744. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1745. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1746. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-hosts -1747. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-network -1748. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1749. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1750. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1751. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1752. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-clock -1753. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1754. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1755. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1756. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-sysklogd -1757. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1758. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1759. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1760. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1761. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-kernel -1762. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-kernel -1763. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-kernfs -1764. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-fstab -1765. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles -1766. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-hosts -1767. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#conf-sysvinit -1768. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-inputrc -1769. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#conf-ld -1770. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-finish-theend -1771. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#conf-glibc -1772. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-finish-theend -1773. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#conf-modprobe -1774. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#conf-glibc -1775. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-finish-theend -1776. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles -1777. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-profile -1778. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iana-etc -1779. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#resolv.conf -1780. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iana-etc -1781. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#conf-sysklogd -1782. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-eudev -1783. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#conf-eudev -1784. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#conf-vim -1785. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles -1786. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1787. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1788. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1789. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1790. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1791. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1792. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1793. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1794. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1795. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1796. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1797. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles -1798. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles -1799. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles -1800. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-shells -1801. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-pages - - Ligações escondidas: -1803. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lbracket -1804. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#accessdb -1805. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#aclocal -1806. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#aclocalversion -1807. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#addftinfo -1808. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#addpart -1809. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#addr2line -1810. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#afmtodit -1811. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#agetty -1812. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#apropos -1813. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ar -1814. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#as -1815. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#attr -1816. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#autoconf -1817. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#autoheader -1818. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#autom4te -1819. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#automake -1820. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#automake-version -1821. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#autopoint -1822. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#autoreconf -1823. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#autoscan -1824. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#autoupdate -1825. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#awk -1826. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#b2sum -1827. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#badblocks -1828. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#base64 -1829. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#basename -1830. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#basenc -1831. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bash -1832. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bashbug -1833. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bc -1834. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bison -1835. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#blkdiscard -1836. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#blkid -1837. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#blkzone -1838. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#blockdev -1839. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bootlogd -1840. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bridge -1841. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bunzip2 -1842. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bzcat -1843. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bzcmp -1844. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bzdiff -1845. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bzegrep -1846. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bzfgrep -1847. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bzgrep -1848. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bzip2 -1849. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bzip2recover -1850. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bzless -1851. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bzmore -1852. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#c -1853. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#c-filt -1854. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#cal -1855. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#capsh -1856. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#captoinfo -1857. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#cat -1858. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#catman -1859. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#cc -1860. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#cfdisk -1861. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chacl -1862. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chage -1863. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chattr -1864. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chcon -1865. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chcpu -1866. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#checkmk -1867. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chem -1868. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chfn -1869. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chgpasswd -1870. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chgrp -1871. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chmem -1872. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chmod -1873. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#choom -1874. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chown -1875. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chpasswd -1876. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chroot -1877. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chrt -1878. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chsh -1879. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chvt -1880. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#cksum -1881. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#clear -1882. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#cmp -1883. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#col -1884. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#colcrt -1885. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#colrm -1886. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#column -1887. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#comm -1888. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#compile_et -1889. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#corelist -1890. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#cp -1891. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#cpan -1892. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#cpp -1893. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#csplit -1894. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ctrlaltdel -1895. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ctstat -1896. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#cut -1897. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#c_rehash -1898. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#date -1899. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#dc -1900. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#dd -1901. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#deallocvt -1902. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#debugfs -1903. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#dejagnu -1904. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#delpart -1905. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#depmod -1906. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#df -1907. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#diff -1908. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#diff3 -1909. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#dir -1910. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#dircolors -1911. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#dirname -1912. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#dmesg -1913. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#dnsdomainname -1914. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#du -1915. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#dumpe2fs -1916. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#dumpkeys -1917. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#e2freefrag -1918. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#e2fsck -1919. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#e2image -1920. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#e2label -1921. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#e2mmpstatus -1922. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#e2scrub -1923. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#e2scrub_all -1924. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#e2undo -1925. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#e4crypt -1926. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#e4defrag -1927. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#echo -1928. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#egrep -1929. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#eject -1930. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#elfedit -1931. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#enc2xs -1932. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#encguess -1933. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#env -1934. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#envsubst -1935. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#eqn -1936. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#eqn2graph -1937. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ex -1938. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#expand -1939. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#expect -1940. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#expiry -1941. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#expr -1942. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#factor -1943. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#faillog -1944. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fallocate -1945. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#false -1946. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fdisk -1947. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fgconsole -1948. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fgrep -1949. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#file -1950. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#filefrag -1951. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fincore -1952. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#find -1953. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#findfs -1954. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#findmnt -1955. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#flex -1956. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#flexpp -1957. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#flock -1958. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fmt -1959. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fold -1960. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#free -1961. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fsck -1962. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fsck.cramfs -1963. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fsck.ext2 -1964. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fsck.ext3 -1965. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fsck.ext4 -1966. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fsck.minix -1967. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fsfreeze -1968. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fstab-decode -1969. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fstrim -1970. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ftp -1971. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fuser -1972. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#g -1973. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gawk -1974. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gawk-version -1975. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gcc -1976. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gcc-ar -1977. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gcc-nm -1978. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gcc-ranlib -1979. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gcov -1980. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gcov-dump -1981. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gcov-tool -1982. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gdbmtool -1983. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gdbm_dump -1984. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gdbm_load -1985. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gdiffmk -1986. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gencat -1987. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#genl -1988. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#getcap -1989. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#getconf -1990. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#getent -1991. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#getfacl -1992. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#getfattr -1993. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#getkeycodes -1994. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#getopt -1995. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#getpcaps -1996. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#getsubids -1997. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gettext -1998. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gettext.sh -1999. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gettextize -2000. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#glilypond -2001. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gpasswd -2002. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gperf -2003. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gperl -2004. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gpinyin -2005. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gprof -2006. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grap2graph -2007. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grep -2008. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grn -2009. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grodvi -2010. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#groff -2011. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#groffer -2012. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grog -2013. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grolbp -2014. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grolj4 -2015. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gropdf -2016. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grops -2017. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grotty -2018. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#groupadd -2019. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#groupdel -2020. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#groupmems -2021. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#groupmod -2022. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#groups -2023. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grpck -2024. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grpconv -2025. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grpunconv -2026. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-bios-setup -2027. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-editenv -2028. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-file -2029. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-fstest -2030. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-glue-efi -2031. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-install -2032. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-kbdcomp -2033. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-macbless -2034. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-menulst2cfg -2035. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mkconfig -2036. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mkimage -2037. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mklayout -2038. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mknetdir -2039. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mkpasswd-pbkdf2 -2040. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mkrelpath -2041. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mkrescue -2042. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mkstandalone -2043. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-ofpathname -2044. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-probe -2045. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-reboot -2046. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-render-label -2047. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-script-check -2048. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-set-default -2049. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-sparc64-setup -2050. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-syslinux2cfg -2051. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gunzip -2052. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gzexe -2053. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gzip -2054. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#h2ph -2055. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#h2xs -2056. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#halt-sysv -2057. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#head -2058. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#hexdump -2059. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#hostid -2060. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#hostname -2061. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#hpftodit -2062. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#hwclock -2063. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#i386 -2064. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#iconv -2065. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#iconvconfig -2066. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#id -2067. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ifcfg -2068. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ifconfig -2069. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ifnames -2070. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ifstat -2071. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#indxbib -2072. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#info -2073. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#infocmp -2074. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#infotocap -2075. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#init-sysv -2076. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#insmod -2077. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#install -2078. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#install-info -2079. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#instmodsh -2080. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#intltool-extract -2081. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#intltool-merge -2082. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#intltool-prepare -2083. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#intltool-update -2084. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#intltoolize -2085. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ionice -2086. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ip -2087. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ipcmk -2088. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ipcrm -2089. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ipcs -2090. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#irqtop -2091. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#isosize -2092. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#join -2093. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#json_pp -2094. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#kbdinfo -2095. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#kbdrate -2096. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#kbd_mode -2097. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#kill -2098. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#killall -2099. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#killall5 -2100. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#klogd -2101. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#kmod -2102. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#last -2103. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lastb -2104. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lastlog -2105. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ld -2106. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ld.bfd -2107. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ld.gold -2108. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ldattach -2109. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ldconfig -2110. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ldd -2111. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lddlibc4 -2112. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#less -2113. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lessecho -2114. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lesskey -2115. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lex -2116. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lexgrog -2117. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lfskernel -2118. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libasan -2119. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libatomic -2120. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libcc1 -2121. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libnetcfg -2122. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libtool -2123. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libtoolize -2124. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#link -2125. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#linux32 -2126. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#linux64 -2127. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lkbib -2128. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ln -2129. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lnstat -2130. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#loadkeys -2131. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#loadunimap -2132. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#locale -2133. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#localedef -2134. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#locate -2135. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#logger -2136. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#login -2137. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#logname -2138. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#logoutd -2139. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#logsave -2140. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#look -2141. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lookbib -2142. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#losetup -2143. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ls -2144. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lsattr -2145. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lsblk -2146. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lscpu -2147. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lsipc -2148. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lsirq -2149. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lslocks -2150. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lslogins -2151. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lsmem -2152. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lsmod -2153. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lsns -2154. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lto-dump -2155. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lzcat -2156. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lzcmp -2157. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lzdiff -2158. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lzegrep -2159. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lzfgrep -2160. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lzgrep -2161. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lzless -2162. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lzma -2163. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lzmadec -2164. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lzmainfo -2165. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lzmore -2166. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#m4 -2167. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#make -2168. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#makedb -2169. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#makeinfo -2170. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#man -2171. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#man-recode -2172. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mandb -2173. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#manpath -2174. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mapscrn -2175. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mcookie -2176. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#md5sum -2177. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mesg -2178. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#meson -2179. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mkdir -2180. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mke2fs -2181. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mkfifo -2182. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mkfs -2183. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mkfs.bfs -2184. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mkfs.cramfs -2185. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mkfs.ext2 -2186. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mkfs.ext3 -2187. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mkfs.ext4 -2188. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mkfs.minix -2189. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mklost-found -2190. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mknod -2191. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mkswap -2192. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mktemp -2193. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mk_cmds -2194. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mmroff -2195. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#modinfo -2196. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#modprobe -2197. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#more -2198. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mount -2199. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mountpoint -2200. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#msgattrib -2201. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#msgcat -2202. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#msgcmp -2203. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#msgcomm -2204. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#msgconv -2205. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#msgen -2206. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#msgexec -2207. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#msgfilter -2208. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#msgfmt -2209. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#msggrep -2210. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#msginit -2211. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#msgmerge -2212. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#msgunfmt -2213. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#msguniq -2214. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mtrace -2215. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mv -2216. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#namei -2217. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ncursesw6-config -2218. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#neqn -2219. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#newgidmap -2220. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#newgrp -2221. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#newuidmap -2222. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#newusers -2223. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ngettext -2224. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#nice -2225. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ninja -2226. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#nl -2227. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#nm -2228. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#nohup -2229. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#nologin -2230. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#nproc -2231. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#nroff -2232. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#nscd -2233. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#nsenter -2234. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#nstat -2235. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#numfmt -2236. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#objcopy -2237. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#objdump -2238. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#od -2239. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#openssl-prog -2240. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#openvt -2241. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#partx -2242. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#passwd -2243. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#paste -2244. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#patch -2245. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pathchk -2246. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pcprofiledump -2247. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pdfmom -2248. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pdfroff -2249. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pdftexi2dvi -2250. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#peekfd -2251. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#perl -2252. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#perl-version -2253. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#perlbug -2254. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#perldoc -2255. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#perlivp -2256. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#perlthanks -2257. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pfbtops -2258. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pgrep -2259. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pic -2260. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pic2graph -2261. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#piconv -2262. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pidof -2263. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ping -2264. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ping6 -2265. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pinky -2266. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pivot_root -2267. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pkgconfig -2268. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pkill -2269. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pl2pm -2270. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pldd -2271. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pmap -2272. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pod2html -2273. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pod2man -2274. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pod2texi -2275. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pod2text -2276. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pod2usage -2277. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#podchecker -2278. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#podselect -2279. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#post-grohtml -2280. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#poweroff-sysv -2281. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pr -2282. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pre-grohtml -2283. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#preconv -2284. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#printenv -2285. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#printf -2286. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#prlimit -2287. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#prove -2288. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#prtstat -2289. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ps -2290. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#psfaddtable -2291. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#psfgettable -2292. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#psfstriptable -2293. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#psfxtable -2294. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pslog -2295. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pstree -2296. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pstree.x11 -2297. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ptar -2298. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ptardiff -2299. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ptargrep -2300. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ptx -2301. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pwait -2302. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pwck -2303. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pwconv -2304. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pwd -2305. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pwdx -2306. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pwunconv -2307. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ranlib -2308. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#readelf -2309. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#readlink -2310. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#readprofile -2311. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#realpath -2312. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#reboot-sysv -2313. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#recode-sr-latin -2314. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#refer -2315. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rename -2316. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#renice -2317. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#reset -2318. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#resize2fs -2319. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#resizepart -2320. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rev -2321. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rkfill -2322. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rm -2323. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rmdir -2324. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rmmod -2325. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#roff2dvi -2326. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#roff2html -2327. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#roff2pdf -2328. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#roff2ps -2329. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#roff2text -2330. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#roff2x -2331. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#routef -2332. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#routel -2333. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rtacct -2334. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rtcwake -2335. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rtmon -2336. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rtpr -2337. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rtstat -2338. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#runcon -2339. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#runlevel-sysv -2340. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#runtest -2341. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rview -2342. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rvim -2343. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#script -2344. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#scriptlive -2345. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#scriptreplay -2346. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sdiff -2347. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sed -2348. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#seq -2349. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#setarch -2350. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#setcap -2351. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#setfacl -2352. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#setfattr -2353. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#setfont -2354. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#setkeycodes -2355. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#setleds -2356. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#setmetamode -2357. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#setsid -2358. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#setterm -2359. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#setvtrgb -2360. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sfdisk -2361. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sg -2362. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sh -2363. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sha1sum -2364. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sha224sum -2365. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sha256sum -2366. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sha384sum -2367. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sha512sum -2368. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#shasum -2369. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#showconsolefont -2370. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#showkey -2371. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#shred -2372. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#shuf -2373. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#shutdown-sysv -2374. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#size -2375. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#slabtop -2376. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sleep -2377. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sln -2378. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#soelim -2379. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sort -2380. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sotruss -2381. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#splain -2382. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#split -2383. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sprof -2384. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ss -2385. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#stat -2386. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#stdbuf -2387. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#strings -2388. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#strip -2389. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#stty -2390. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#su -2391. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sulogin -2392. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sum -2393. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#swaplabel -2394. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#swapoff -2395. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#swapon -2396. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#switch_root -2397. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sync -2398. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sysctl -2399. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#syslogd -2400. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tabs -2401. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tac -2402. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tail -2403. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#talk -2404. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tar -2405. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#taskset -2406. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tbl -2407. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ss -2408. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tclsh -2409. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tclsh8.6 -2410. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tee -2411. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#telinit-sysv -2412. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#telnet -2413. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#test -2414. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#texi2dvi -2415. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#texi2pdf -2416. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#texi2any -2417. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#texindex -2418. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tfmtodit -2419. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tftp -2420. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tic -2421. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#timeout -2422. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tload -2423. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#toe -2424. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#top -2425. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#touch -2426. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tput -2427. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tr -2428. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#traceroute -2429. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#troff -2430. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#true -2431. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#truncate -2432. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tset -2433. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tsort -2434. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tty -2435. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tune2fs -2436. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tzselect -2437. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#uclampset -2438. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#udevadm -2439. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#udevd -2440. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ul -2441. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#umount -2442. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#uname -2443. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#uname26 -2444. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#uncompress -2445. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#unexpand -2446. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#unicode_start -2447. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#unicode_stop -2448. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#uniq -2449. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#unlink -2450. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#unlzma -2451. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#unshare -2452. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#unxz -2453. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#updatedb -2454. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#uptime -2455. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#useradd -2456. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#userdel -2457. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#usermod -2458. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#users -2459. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#utmpdump -2460. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#uuidd -2461. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#uuidgen -2462. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#uuidparse -2463. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#vdir -2464. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#vi -2465. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#view -2466. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#vigr -2467. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#vim -2468. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#vimdiff -2469. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#vimtutor -2470. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#vipw -2471. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#vmstat -2472. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#w -2473. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#wall -2474. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#watch -2475. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#wc -2476. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#wdctl -2477. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#whatis -2478. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#whereis -2479. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#who -2480. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#whoami -2481. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#wipefs -2482. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#x86_64 -2483. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xargs -2484. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xgettext -2485. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xmlwf -2486. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xsubpp -2487. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xtrace -2488. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xxd -2489. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xz -2490. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xzcat -2491. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xzcmp -2492. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xzdec -2493. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xzdiff -2494. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xzegrep -2495. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xzfgrep -2496. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xzgrep -2497. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xzless -2498. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xzmore -2499. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#yacc -2500. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#yes -2501. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zcat -2502. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zcmp -2503. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zdiff -2504. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zdump -2505. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zegrep -2506. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zfgrep -2507. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zforce -2508. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zgrep -2509. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zic -2510. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zipdetails -2511. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zless -2512. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zmore -2513. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#znew -2514. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zramctl -2515. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zstd -2516. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zstdgrep -2517. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zstdless -2518. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#Expat -2519. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ld.so -2520. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libacl -2521. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libanl -2522. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libasprintf -2523. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libattr -2524. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libbfd -2525. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libblkid -2526. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libBrokenLocale -2527. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libbz2 -2528. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libc -2529. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libcap -2530. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libcheck -2531. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libcom_err -2532. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libcrypt -2533. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libcrypto -2534. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libctf -2535. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libctf-nobfd -2536. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libcursesw -2537. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libc_malloc_debug -2538. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libdl -2539. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libe2p -2540. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libelf -2541. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libexpat -2542. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libexpect -2543. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libext2fs -2544. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libfdisk -2545. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libfl -2546. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libformw -2547. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libg -2548. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libgcc -2549. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libgcov -2550. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libgdbm -2551. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libgdbm_compat -2552. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libgettextlib -2553. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libgettextpo -2554. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libgettextsrc -2555. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libgmp -2556. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libgmpxx -2557. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libgomp -2558. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libhistory -2559. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libitm -2560. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#liblsan -2561. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libltdl -2562. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#liblto_plugin -2563. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#liblzma -2564. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libm -2565. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libmagic -2566. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libman -2567. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libmandb -2568. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libmcheck -2569. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libmemusage -2570. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libmenuw -2571. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libmount -2572. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libmpc -2573. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libmpfr -2574. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libmvec -2575. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libncursesw -2576. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libnsl -2577. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libnss -2578. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libopcodes -2579. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libpanelw -2580. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libpcprofile -2581. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libprocps -2582. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libpsx -2583. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libpthread -2584. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libquadmath -2585. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libreadline -2586. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libresolv -2587. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#librt -2588. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libsmartcols -2589. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libss -2590. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libssl -2591. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libssp -2592. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libstdbuf -2593. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libstdc -2594. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libstdcfs -2595. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libsubid -2596. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libsupc -2597. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libtcl8.6.so -2598. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libtclstub8.6.a -2599. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libtextstyle -2600. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libthread_db -2601. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libtsan -2602. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libubsan -2603. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libudev -2604. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libutil -2605. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libuuid -2606. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#liby -2607. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libz -2608. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libzstd -2609. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#preloadable_libintl -2610. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#checkfs-bootscripts -2611. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#cleanfs-bootscripts -2612. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#console-bootscripts -2613. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#functions-bootscripts -2614. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#halt-bootscripts -2615. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ifdown-bootscripts -2616. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ifup-bootscripts -2617. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ipv4-static-bootscripts -2618. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#localnet-bootscripts -2619. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#modules-bootscripts -2620. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mountfs-bootscripts -2621. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mountvirtfs-bootscripts -2622. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#network-bootscripts -2623. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rc-bootscripts -2624. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#reboot-bootscripts -2625. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sendsignals-bootscripts -2626. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#setclock-bootscripts -2627. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#swap-bootscripts -2628. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sysctl-bootscripts -2629. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sysklogd-bootscripts -2630. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#template-bootscripts -2631. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#udev-bootscripts -2632. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#udev-retry-bootscripts -2633. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#dwp -2634. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#config -2635. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#System.map -2636. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#etc-udev -2637. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#asm-generic -2638. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#asm -2639. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#drm -2640. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#linux -2641. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#misc -2642. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mtd -2643. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rdma -2644. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#scsi -2645. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sound -2646. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#video -2647. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xen -2648. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#man-pages diff --git a/LFS-BOOK-11.1-pt_br.pdf b/LFS-BOOK-11.1-pt_br.pdf deleted file mode 100644 index 32a3b86824..0000000000 Binary files a/LFS-BOOK-11.1-pt_br.pdf and /dev/null differ diff --git a/LFS-BOOK-11.1-pt_br.tar.xz b/LFS-BOOK-11.1-pt_br.tar.xz deleted file mode 100644 index 548abe68f1..0000000000 Binary files a/LFS-BOOK-11.1-pt_br.tar.xz and /dev/null differ diff --git a/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html b/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html deleted file mode 100644 index a7e8d6593b..0000000000 --- a/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html +++ /dev/null @@ -1,53105 +0,0 @@ - - - - - Linux From Scratch - - - - - -
-
-
-
-

- Linux From Scratch -

-
-
-

- Versão 11.1-systemd -

-
-
-

- Publicado 1º de março de 2022 -

-
-
-
-
-

- Criado por Gerard - Beekmans -

-
-
-

- Editor-chefe: Bruce - Dubbs -

-
-
-

- Editor: Douglas R. - Reno -

-
-
-

- Editor: DJ Lucas -

-
-
-
-
- -
-
-
- -

- Direitos autorais © 1999-2022, Gerard Beekmans -

-

- Todos os direitos reservados. -

-

- Este livro é licenciado sob uma Creative Commons - License. -

-

- As instruções de computador tem permissão para serem - extraídas a partir do livro sob a MIT License. -

-

- Linux® é uma marca comercial - registrada do Linus Torvalds. -

-
-
-
-
-
-
-

- Índice -

- -
-
-
-
-
-

- Prefácio -

-
-
-
-
-
-
-
-

- Introdução -

-
-
-
-

- Minha jornada para aprender e entender melhor Linux começou em - meados de 1998. Eu havia acabado de instalar minha primeira - distribuição Linux e rapidamente fiquei intrigado com todo o - conceito e filosofia por trás do Linux. -

-

- Há sempre várias maneiras de se completar uma tarefa. O mesmo - pode ser dito sobre distribuições Linux. Muitas surgiram ao longo - dos anos. Algumas ainda existem, outras se transformaram em outra - distribuição, e ainda há outras que ficaram relegadas às nossas - memórias. Todas elas executam as tarefas de maneira diferente - para se adequar às necessidades de seus respectivos - públicos-alvo. Devido ao fato de haver tantas maneiras de se - executar uma tarefa, eu comecei a perceber que eu não tinha que - me limitar à implementação de outra pessoa. Antes de descobrir o - Linux, nós simplesmente lidávamos com problemas em outros - Sistemas Operacionais como se não tivéssemos escolha. A coisa era - o que era, não importando se você gostasse ou não. Com Linux, o - conceito de escolha começou a emergir. Se você não gostou de - alguma coisa, você seria livre, até encorajado, a mudá-la. -

-

- Eu tentei várias distribuições, mas não consegui me decidir por - nenhuma. Elas eram ótimas distribuições em seu próprio direito. - Não era mais uma questão de certo ou errado. O problema havia se - transformado em uma questão de gosto pessoal. Com todas aquelas - opções disponíveis, tornou-se aparente que não haveria um sistema - que seria perfeito para mim. Então eu me propus a criar meu - próprio sistema Linux que estaria totalmente em conformidade com - minhas preferências pessoais. -

-

- Para realmente fazer meu próprio sistema, eu resolvi compilar - tudo a partir do código fonte em vez de usar pacotes - pré-compilados. Esse sistema Linux perfeito - teria a força de vários sistemas sem suas fraquezas visíveis. A - princípio, a ideia era bastante amedrontadora. Mas eu me mantive - comprometido à ideia de que esse sistema poderia ser construído. -

-

- Após lidar com questões como dependências recíprocas e erros - durante a compilação, eu finalmente construí um sistema Linux - customizado. O sistema era totalmente operacional e perfeitamente - utilizável como qualquer outro sistema Linux disponível na época. - Mas era minha própria criação. Montar um sistema desses foi muito - gratificante. A única coisa que poderia ser melhor seria se eu - mesmo tivesse escrito cada programa. Essa foi a melhor coisa que - se seguiu. -

-

- Conforme eu compartilhei meus objetivos e minhas experiências com - outros membros da comunidade Linux, ficou aparente que havia um - interesse firme nessas ideias. Logo ficou claro que tal sistema - Linux customizado não serviria apenas para as necessidades - específicas dos usuários, mas também como uma oportunidade ideal - para programadores e administradores elevarem suas (existentes) - habilidades com Linux. Como resultado desse interesse amplo, o - Projeto Linux From Scratch - nasceu. -

-

- Este livro Linux From Scratch é o núcleo do projeto. O livro - provê a base e as instruções necessárias para você modelar e - construir seu próprio sistema. Mesmo este livro disponibilizando - instruções que resultarão em um sistema que funciona - corretamente, você é livre para alterar as instruções para - adaptá-las às suas necessidades, o que é, em parte, uma - importante parte deste projeto. Você permanece no controle; nós - só damos uma mão para ajudá-lo a começar sua própria jornada. -

-

- Eu sinceramente espero que você se divirta trabalhando no seu - próprio Linux From Scratch e aproveite os benefícios de ter um - sistema verdadeiramente seu. -

-
-

- --
- Gerard Beekmans
- gerard AT linuxfromscratch D0T org -

-
-
-
-
-
-
-

- Audiência -

-
-
-
-

- Existem muitas razões pelas quais você desejaria ler este livro. - Uma das questões que muitas pessoas levantam é por que ir ao longo de toda a - dificuldade de construir manualmente um sistema Linux desde o - zero quando você pode simplesmente baixar e instalar um - existente? -

-

- Uma importante razão para a existência deste projeto é para te - ajudar a aprender como um sistema Linux funciona de dentro para - fora. Construir um sistema LFS ajuda a demonstrar o que torna o - Linux de interesse, e como as coisas funcionam juntas e dependem - umas das outras. Uma das melhores coisas que essa experiência de - aprendizado pode prover é a habilidade de personalizar um sistema - Linux para se ajustar às suas [de quem construir] próprias - necessidades únicas. -

-

- Outro benefício chave de LFS é que ele te permite ter mais - controle sobre o sistema sem confiar na implementação Linux de - ninguém. Com LFS, você está no banco do motorista e dita cada - aspecto do sistema. -

-

- LFS te permite criar sistemas muito compactos. Quando se instala - distribuições regulares, você frequentemente é forçado a instalar - muitos programas grandes os quais provavelmente nunca serão - usados ou entendidos. Esses programas desperdiçam recursos. Você - talvez argumente que, com os discos rígidos e CPUs de hoje, tais - recursos não mais são uma consideração. As vezes, entretanto, - você ainda está restrito por considerações de tamanho se nenhuma - outra coisa. Pense acerca de CDs inicializáveis, mídias USB e - sistemas embarcados. Essas são áreas onde LFS pode ser benéfico. -

-

- Outra vantagem de um sistema personalizado Linux construído é - segurança. Ao compilar o sistema inteiro desde o zero, você está - empoderado para auditar tudo e aplicar todas as correções de - segurança desejadas. Não mais é necessário aguardar que outra - pessoa compile os pacotes binários para consertar uma brecha de - segurança. A menos que você examine a correção e a implemente - você mesma(o), você não tem garantias de que o novo pacote - binário foi construído corretamente e adequadamente conserta o - problema. -

-

- A finalidade do [projeto] Linux From Scratch é a de construir um - sistema em nível de fundação completo e utilizável. Se você não - estiver afim de construir seu próprio sistema Linux desde o zero, - então você talvez nunca se beneficie das informações neste livro. -

-

- Existem muito mais boas razões para construir seu próprio sistema - LFS para listá-las todas aqui. No final, educação é, de longe, a - mais poderosa das razões. Conforme você continue em sua - experiência LFS, você descobrirá o poder que informação e - conhecimento verdadeiramente trazem. -

-
-
-
-
-
-

- Arquiteturas Alvo do LFS -

-
-
-
-

- A principal arquitetura alvo do LFS são os processadores - AMD/Intel x86 (32 bits) e x86_64 (64 bits). Por outro lado, as - instruções neste livro também são conhecidas por funcionar, com - algumas modificações, com os processadores Power PC e ARM. Para - construir um sistema que utiliza uma dessas CPUs, o principal - pré-requisito, em adição àqueles que estão nas próximas páginas, - é uma distribuição Linux existente, como uma instalação LFS - prévia, Ubuntu, Red Hat/Fedora, SuSE, ou outra distribuição que - abranja a arquitetura que você tem. Note também que uma - distribuição de 32-bits pode ser instalada e usada como um - sistema hospedeiro em um computador AMD/Intel de 64-bits. -

-

- Para construir LFS, o ganho de construção em um sistema 64-bits - comparado a um sistema 32-bits é mínimo. Por exemplo, em uma - construção de LFS-9.1 de teste em um sistema baseado em CPU Core - i7-4790, usando quatro núcleos, as seguintes estatísticas foram - verificadas: -

-
Arquitetura Tempo de Construção Tamanho de Construção
-32-bit       239.9 minutos  3.6 GB
-64-bit       233.2 minutos  4.4 GB
-

- Como você pode ver, no mesmo hardware, a construção de 64-bit é - apenas 3% mais rápida e é 22% maior que a construção de 32-bit. - Se você planeja usar LFS como um servidor LAMP, ou como um - firewall, então uma CPU de 32-bits talvez seja largamente - suficiente. Por outro lado, vários pacotes em BLFS atualmente - precisam de mais que 4GB de RAM para serem construídos e (ou) - para executarem, de forma que se você planeja usar LFS como um - desktop, então os autores de LFS recomendam construir em um - sistema 64-bits. -

-

- A construção de 64-bit padrão que é resultante do LFS é - considerado um sistema 64-bit puro. Ou - seja, ele suporta apenas executáveis 64-bit. Construir um sistema - multi-lib [de múltiplas bibliotecas] - exige a compilação de muitos aplicativos duas vezes, uma vez para - um sistema de 32-bit e outra vez para um sistema de 64-bit. Isso - não é diretamente suportado em LFS, pois interferiria no objetivo - educacional de prover as instruções necessárias para um sistema - Linux base estrito. Alguns editores de LFS/BLFS mantém uma - bifurcação de LFS para multilib, que é acessível em https://www.linuxfromscratch.org/~thomas/multilib/index.html. - Porém, esse é um tópico avançado. -

-
-
-
-
-
-

- Pré-requisitos -

-
-
-
-

- Construir um sistema LFS não é uma tarefa simples. Essa tarefa - exige um certo nível de conhecimento de administração de sistemas - Unix para resolver problemas e corretamente executar os comandos - listados. Em particular, no mínimo, você já deveria ter a - habilidade de usar linha de comando (shell) para copiar ou mover - arquivos e diretórios, listar diretórios e conteúdos de arquivos, - e navegar entre os diretórios. Também é de se esperar que você - tenha um conhecimento razoável sobre como usar e instalar - software [em um sistema] Linux. -

-

- Devido ao fato do livro LFS assumir que você tem pelo menos esse nível básico de - habilidades, os vários fóruns de suporte do LFS não serão - adequados para ajudá-lo nessas áreas. Você vai perceber que suas - perguntas com relação a esse conhecimento básico não serão - respondidas ou serão remetidas à lista de itens essenciais de - pré-leitura. -

-

- Antes de construir um sistema LFS nós recomendamos a leitura do - seguinte: -

-
-
    -
  • -

    - Software-Building-HOWTO http://www.tldp.org/HOWTO/Software-Building-HOWTO.html -

    -

    - Esse é um guia compreensivo de como construir e instalar - pacotes de software Unix genéricos no Linux. Embora - tenha sido escrito há algum tempo, esse guia ainda fornece - um bom resumo das técnicas básicas necessárias para - construir e instalar programas. -

    -
  • -
  • -

    - Beginner's Guide to Installing from Source - http://moi.vonos.net/linux/beginners-installing-from-source/ -

    -

    - Esse guia fornece um bom sumário de habilidades básicas e - de técnicas necessárias para construir software a partir do - código fonte. -

    -
  • -
-
-
-
-
-
-
-

- LFS e Padrões -

-
-
-
-

- A estrutura do LFS segue os padrões Linux tão rigorosamente - quanto possível. Os principais padrões são: -

-
-
    -
  • -

    - POSIX.1-2008. -

    -
  • -
  • -

    - - Filesystem Hierarchy Standard (FHS) Version 3.0 -

    -
  • -
  • -

    - Linux - Standard Base (LSB) Version 5.0 (2015) -

    -

    - O LSB tem quatro padrões separados: Core, Desktop, Runtime - Languages (linguagens em tempo de execução), e Imaging. Em - adição às exigências genéricas, há as exigências - específicas de cada arquitetura. Existem também duas áreas - para uso experimental: Gtk3 e Graphics. LFS tenta ficar de - acordo com as arquiteturas discutidas na sessão anterior. -

    -
    -

    - Nota -

    -

    - Muitas pessoas não concordam com os requisitos do LSB. O - principal propósito de definir tais requisitos é o de - garantir que softwares proprietários possam ser - instalados e executados adequadamente em um sistema que - respeite o referido padrão. Sendo o LFS baseado em código - fonte, a(o) usuária(o) tem total controle sobre quais - pacotes quer e muitas(os) escolhem não instalar alguns - dos pacotes especificados pelo LSB. -

    -
    -
  • -
-
-

- Criar um sistema LFS completo capaz de passar nos testes das - certificações do LSB é possível, mas não sem muitos pacotes - adicionais que estão além do escopo do LFS. Esses pacotes - adicionais tem instruções para instalação no BLFS. -

-
-

- Pacotes disponibilizados pelo LFS que são - necessários para satisfazer os requisitos do LSB -

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- LSB - Core: -

-
-

- Bash, Bc, Binutils, Coreutils, Diffutils, File, - Findutils, Gawk, Grep, Gzip, M4, Man-DB, Ncurses, - Procps, Psmisc, Sed, Shadow, Tar, Util-linux, Zlib -

-
-

- LSB - Desktop: -

-
-

- Nenhum -

-
-

- LSB - Runtime Languages: -

-
-

- Perl, Python -

-
-

- LSB - Imaging: -

-
-

- Nenhum -

-
-

- LSB Gtk3 - e Gráficos LSB (Uso Experimental): -

-
-

- Nenhum -

-
-
-
-

- Pacotes disponibilizados pelo BLFS - necessários para satisfazer os requisitos do LSB -

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- LSB - Core: -

-
-

- At, Batch (uma parte de At), Cpio, Ed, Fcrontab, - LSB-Tools, NSPR, NSS, PAM, Pax, Sendmail (ou Postfix ou - Exim), time -

-
-

- LSB - Desktop: -

-
-

- Alsa, ATK, Cairo, Desktop-file-utils, Freetype, - Fontconfig, Gdk-pixbuf, Glib2, GTK+2, - Icon-naming-utils, Libjpeg-turbo, Libpng, Libtiff, - Libxml2, MesaLib, Pango, Xdg-utils, Xorg -

-
-

- LSB - Runtime Languages: -

-
-

- Libxml2, Libxslt -

-
-

- LSB - Imaging: -

-
-

- CUPS, Cups-filters, Ghostscript, SANE -

-
-

- LSB Gtk3 - e Gráficos LSB (Uso Experimental): -

-
-

- GTK+3 -

-
-
-
-

- Pacotes não suportados pelo LFS ou BLFS - necessários para satisfazer os requisitos do LSB -

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- LSB - Core: -

-
-

- Nenhum -

-
-

- LSB - Desktop: -

-
-

- Qt4 (mas Qt5 é fornecido) -

-
-

- LSB - Runtime Languages: -

-
-

- Nenhum -

-
-

- LSB - Imaging: -

-
-

- Nenhum -

-
-

- LSB Gtk3 - e Gráficos LSB (Uso Experimental): -

-
-

- Nenhum -

-
-
-
-
-
-
-
-

- Justificativa para os pacotes no Livro -

-
-
-
-

- Como declarado anteriormente, a finalidade do [projeto] LFS é a - de construir um sistema em nível de fundação completo e - utilizável. Isso inclui todos os pacotes necessários para - replicá-lo ao tempo que disponibiliza uma base relativamente - pequena sobre a qual a(o) usuária(o) pode personalizar um sistema - mais completo baseado nas escolhas da(o) usuária(o). Isso não - significa que o LFS é o menor sistema possível. Vários pacotes - importantes estão inclusos que não são estritamente necessários. - As listas abaixo documentam a justificativa para cada pacote no - livro. -

-
-
    -
  • -

    - Acl -

    -

    - Esse pacote contém utilitários para administrar Listas de - Controle de Acesso, as quais são usadas para definir - direitos de acesso discricionariamente mais finamente - refinados para arquivos e para diretórios. -

    -
  • -
  • -

    - Attr -

    -

    - Esse pacote contém aplicativos para a administração de - atributos estendidos sobre objetos do sistema de arquivos. -

    -
  • -
  • -

    - Autoconf -

    -

    - Esse pacote contém aplicativos para produzir shell scripts - que podem configurar automaticamente o código fonte a - partir de um modelo do desenvolvedor. É geralmente - necessário para reconstruir um pacote após atualizações - para os procedimentos de construção. -

    -
  • -
  • -

    - Automake -

    -

    - Esse pacote contém aplicativos para gerar arquivos Make a - partir de um modelo. É geralmente necessário para - reconstruir um pacote após atualizações para os - procedimentos de construção. -

    -
  • -
  • -

    - Bash -

    -

    - Esse pacote satisfaz um requisito central do LSB para - disponibilizar uma interface Bourne Shell para o sistema. - Foi escolhido em vez de outros pacotes de shell pelo seu - uso comum e extensas capacidades que transcendem as funções - básicas do shell. -

    -
  • -
  • -

    - Bc -

    -

    - Esse pacote disponibiliza uma linguagem de processamento - numérico com precisão arbitrária. Ele satisfaz requisitos - necessários quando da construção do Kernel do Linux. -

    -
  • -
  • -

    - Binutils -

    -

    - Esse pacote contém um linker, um assembler e outras - ferramentas para manipular arquivos objeto. Os aplicativos - nesse pacote são necessários para compilar a maioria dos - pacotes em um sistema LFS e além. -

    -
  • -
  • -

    - Bison -

    -

    - Esse pacote contém a versão GNU do yacc (Yet Another - Compiler Compiler) necessário para construir vários outros - aplicativos no LFS. -

    -
  • -
  • -

    - Bzip2 -

    -

    - Esse pacote contém aplicativos para compressão e - descompressão de arquivos. É necessário para descomprimir - muitos pacotes do LFS. -

    -
  • -
  • -

    - Check -

    -

    - Esse pacote contém um conjunto de ferramentas de teste para - outros aplicativos. -

    -
  • -
  • -

    - Coreutils -

    -

    - Esse pacote contém um número de aplicativos essenciais para - visualização e manipulação de arquivos e de diretórios. - Esses aplicativos são necessários para o gerenciamento de - arquivos por linha de comando, e são necessários para os - procedimentos de instalação de cada pacote em LFS. -

    -
  • -
  • -

    - D-Bus -

    -

    - Esse pacote contém aplicativos para implementar um sistema - de barramento de mensagem, o qual é um caminho simples para - aplicações conversarem com outras. -

    -
  • -
  • -

    - DejaGNU -

    -

    - Esse pacote contém um sistema para testar outros - aplicativos. -

    -
  • -
  • -

    - Diffutils -

    -

    - Esse pacote contém aplicativos que mostram as diferenças - entre arquivos ou diretórios. Esses aplicativos podem ser - usados para criar correções, e também são usados em muitos - procedimentos de construção dos pacotes. -

    -
  • -
  • -

    - E2fsprogs -

    -

    - Esse pacote contém os utilitários para manipular os - sistemas de arquivos ext2, ext3 e ext4. Esses são os - sistemas de arquivos mais comuns e amplamente testados que - o Linux suporta. -

    -
  • -
  • -

    - Expat -

    -

    - Esse pacote contém uma biblioteca relativamente pequena de - análise de XML. Ela é exigida pelo módulo de Perl - XML::Parser. -

    -
  • -
  • -

    - Expect -

    -

    - Esse pacote contém um aplicativo para execução de scripts - de diálogos com outros aplicativos interativos. É comumente - usado para testar outros pacotes. -

    -
  • -
  • -

    - File -

    -

    - Esse pacote contém um utilitário para determinar o tipo de - um dado arquivo ou arquivos. Uns poucos pacotes precisam - dele em seus scripts de construção. -

    -
  • -
  • -

    - Findutils -

    -

    - Esse pacote contém aplicativos para encontrar arquivos em - um sistema de arquivos. É usado em muitos scripts de - construção dos pacotes. -

    -
  • -
  • -

    - Flex -

    -

    - Esse pacote contém um utilitário para gerar aplicativos que - reconhecem padrões em textos. É a versão GNU do aplicativo - lex (lexical analyzer). É necessário para construir vários - pacotes do LFS. -

    -
  • -
  • -

    - Gawk -

    -

    - Esse pacote contém aplicativos para manipular arquivos de - texto. É a versão GNU do awk (Aho-Weinberg-Kernighan). É - usado em muitos outros scripts de construção dos pacotes. -

    -
  • -
  • -

    - GCC -

    -

    - Esse pacote é o Gnu Compiler Collection. Ele contém os - compiladores C e C++ assim como vários outros não - construídos por LFS. -

    -
  • -
  • -

    - GDBM -

    -

    - Esse pacote contém a biblioteca GNU Database Manager. É - usado por um outro pacote do LFS, Man-DB. -

    -
  • -
  • -

    - Gettext -

    -

    - Esse pacote contém utilitários e bibliotecas para - internacionalização e localização de numerosos pacotes. -

    -
  • -
  • -

    - Glibc -

    -

    - Esse pacote contém a biblioteca C principal. Aplicativos - Linux não funcionarão sem ela. -

    -
  • -
  • -

    - GMP -

    -

    - Esse pacote contém bibliotecas matemáticas que fornecem - funções úteis para aritmética de precisão arbitrária. É - necessário para compilar GCC. -

    -
  • -
  • -

    - Gperf -

    -

    - Esse pacote contém um aplicativo que gera uma função - perfeita de hash a partir de uma chave configurada. Ele é - exigido por Eudev. -

    -
  • -
  • -

    - Grep -

    -

    - Esse pacote contém aplicativos para procurar dentro de - arquivos. Esses aplicativos são usados pela maioria dos - scripts de construção dos pacotes. -

    -
  • -
  • -

    - Groff -

    -

    - Esse pacote contém aplicativos para processamento e - formatação de texto. Uma função importante desses - aplicativos é a de formatar páginas de manual. -

    -
  • -
  • -

    - GRUB -

    -

    - Esse pacote é o Grand Unified Boot Loader. Ele é um dos - vários gerenciadores de inicialização disponíveis, mas é o - mais flexível. -

    -
  • -
  • -

    - Gzip -

    -

    - Esse pacote contém aplicativos para compressão e - descompressão de arquivos. Ele é necessário para - descomprimir muitos pacotes em LFS. -

    -
  • -
  • -

    - Iana-etc -

    -

    - Esse pacote fornece dados para serviços e protocolos de - rede. Ele é necessário para habilitar suporte a rede - adequado. -

    -
  • -
  • -

    - Inetutils -

    -

    - Esse pacote contém aplicativos para administração básica de - rede. -

    -
  • -
  • -

    - Intltool -

    -

    - Esse pacote contém ferramentas para a extração de - sequências de caracteres traduzíveis a partir de arquivos - fonte. -

    -
  • -
  • -

    - IProute2 -

    -

    - Esse pacote contém aplicativos para redes IPv4 e IPv6 - básicas e avançadas. Ele foi escolhido em vez de outros - pacotes comuns de ferramentas de rede (net-tools) pelo seu - suporte a IPv6. -

    -
  • -
  • -

    - Jinja2 -

    -

    - Esse pacote é um módulo de Python para modelos de texto. - Ele é exigido para construir Systemd. -

    -
  • -
  • -

    - Kbd -

    -

    - Esse pacote contém arquivos de tabelas chave, utilitários - de teclados que não são estadunidenses, e um número de - fontes de console. -

    -
  • -
  • -

    - Kmod -

    -

    - Esse pacote contém aplicativos necessários para administrar - os módulos de kernel do Linux. -

    -
  • -
  • -

    - Less -

    -

    - Esse pacote contém um visualizador de textos muito bom que - permite rolar para cima ou para baixo quando se visualiza - um arquivo. Ele também é usado pelo Man-DB para visualizar - páginas de manual. -

    -
  • -
  • -

    - Libcap -

    -

    - Esse pacote implementa as interfaces do espaço de usuário - para as capacidades POSIX 1003.1e disponíveis em kernels - Linux. -

    -
  • -
  • -

    - Libelf -

    -

    - O projeto elfutils fornece bibliotecas e ferramentas para - dados de arquivos ELF e DWARF. A maior parte dos - utilitários nesse pacote está disponível em outros pacotes, - porém a biblioteca é necessária para construir o kernel - Linux usando a configuração padrão (e mais eficiente). -

    -
  • -
  • -

    - Libffi -

    -

    - Esse pacote implementa uma interface de programação - portável, de alto nível, para várias convenções de chamada. - Alguns aplicativos talvez não saibam, ao tempo da - compilação, quais argumentos são para serem passados para - uma função. Por exemplo, um interpretador talvez possa ser - informado, ao tempo de execução, acerca do número e dos - tipos de argumentos usados para chamar uma dada função. - Libffi pode ser usada em tais aplicativos para fornecer uma - ponte a partir do aplicativo interpretador para o código - compilado. -

    -
  • -
  • -

    - Libpipeline -

    -

    - O pacote Libpipeline contém uma biblioteca para manipular - pipelines de subprocessos de uma maneira flexível e - conveniente. Ele é exigido pelo pacote Man-DB. -

    -
  • -
  • -

    - Libtool -

    -

    - Esse pacote contém o script GNU de suporte a bibliotecas - genéricas. Ele esconde a complexidade do uso de bibliotecas - compartilhadas em uma interface consistente e portável. Ele - é necessário para as ferramentas de testes em outros - pacotes do LFS. -

    -
  • -
  • -

    - Linux Kernel -

    -

    - Esse pacote é o Sistema Operacional. Ele é o Linux no - ambiente GNU/Linux. -

    -
  • -
  • -

    - M4 -

    -

    - Esse pacote contém um processador geral de macro de texto, - útil como uma ferramenta de construção para outros - aplicativos. -

    -
  • -
  • -

    - Make -

    -

    - Esse pacote contém um aplicativo para direcionar a - construção de pacotes. Ele é exigido por quase todos os - pacotes em LFS. -

    -
  • -
  • -

    - MarkupSafe -

    -

    - Esse pacote é um módulo Python para processamento de - sequências de caracteres em HTML/XHTML/XML com segurança. - Jinja2 exige esse pacote. -

    -
  • -
  • -

    - Man-DB -

    -

    - Esse pacote contém aplicativos para encontrar e visualizar - páginas de manual. Ele foi escolhido em vez do pacote - man devido a capacidades - superiores de internacionalização. Ele faz as vezes do - aplicativo man. -

    -
  • -
  • -

    - Man-pages -

    -

    - Esse pacote contém o conteúdo atual das páginas de manual - básicas do Linux. -

    -
  • -
  • -

    - Meson -

    -

    - Esse pacote fornece uma ferramenta de software para - automatizar a construção de software. A finalidade - principal para Meson é a de minimizar a quantidade de tempo - que desenvolvedores de software precisam investir - configurando o sistema de construção deles. Ele é exigido - para construir Systemd, bem como muitos pacotes BLFS. -

    -
  • -
  • -

    - MPC -

    -

    - Esse pacote contém funções para a aritmética de números - complexos. Ele é exigido por GCC. -

    -
  • -
  • -

    - MPFR -

    -

    - Esse pacote contém funções para aritmética de precisão - múltipla. Ele é exigido por GCC. -

    -
  • -
  • -

    - Ninja -

    -

    - Esse pacote contém um sistema pequeno de construção com um - foco em velocidade. Ele é desenhado para ter os arquivos de - entrada dele gerados por um sistema de construção de alto - nível, e para executar construções o mais rápido possível. - Esse pacote é exigido por Meson. -

    -
  • -
  • -

    - Ncurses -

    -

    - Esse pacote contém bibliotecas para manipulação - independente de terminal de telas de carácter. Ele é - frequentemente usado para fornecer controle de cursor para - um sistema com menus. Ele é necessitado por um número de - pacotes em LFS. -

    -
  • -
  • -

    - Openssl -

    -

    - Esse pacote fornece ferramentas e bibliotecas de - gerenciamento relacionadas a criptografia. Essas são úteis - para fornecer funções criptográficas para outros pacotes, - incluindo o kernel Linux. -

    -
  • -
  • -

    - Patch -

    -

    - Esse pacote contém um aplicativo para modificar ou criar - arquivos aplicando um arquivo patch tipicamente criado pelo - aplicativo diff. Ele é - necessitado pelo procedimento de construção para vários - pacotes LFS. -

    -
  • -
  • -

    - Perl -

    -

    - Esse pacote é um interpretador para a linguagem de tempo de - execução PERL. Ele é necessário para a instalação e - ferramentas de teste de vários pacotes do LFS. -

    -
  • -
  • -

    - Pkg-config -

    -

    - Esse pacote fornece um aplicativo que retorna metadados - acerca de uma biblioteca ou pacote instalado. -

    -
  • -
  • -

    - Procps-NG -

    -

    - Esse pacote contém aplicativos para monitorar processos. - Esses aplicativos são úteis para administração de sistema, - e são também usados pelos scripts de inicialização do LFS. -

    -
  • -
  • -

    - Psmisc -

    -

    - Esse pacote contém aplicativos para mostrar informações - acerca de processos em execução. Esses aplicativos são - úteis para administração de sistema. -

    -
  • -
  • -

    - Python 3 -

    -

    - Esse pacote fornece uma linguagem interpretada que tem uma - filosofia de desenho que enfatiza a legibilidade de código. -

    -
  • -
  • -

    - Readline -

    -

    - Esse pacote é um conjunto de bibliotecas que oferecem - capacidades de edição e de histórico de linha de comando. - Ele é usado por Bash. -

    -
  • -
  • -

    - Sed -

    -

    - Esse pacote permite a edição de texto sem abri-lo em um - editor de texto. Ele também é necessitado pela maioria dos - scripts de configuração dos pacotes do LFS. -

    -
  • -
  • -

    - Shadow -

    -

    - Esse pacote contém aplicativos para manipulação de senhas - de uma maneira segura. -

    -
  • -
  • -

    - Systemd -

    -

    - Esse pacote fornece um aplicativo init e várias capacidades adicionais - de inicialização e de controle de sistema como uma - alternativa ao Sysvinit. Ele é usado por muitas - distribuições comerciais. -

    -
  • -
  • -

    - Tar -

    -

    - Esse pacote fornece capacidades de empacotamento e de - extração de virtualmente todos os pacotes usados em LFS. -

    -
  • -
  • -

    - Tcl -

    -

    - Esse pacote contém a Tool Command Language usada em muitas - ferramentas de teste em pacotes do LFS. -

    -
  • -
  • -

    - Texinfo -

    -

    - Esse pacote contém aplicativos para leitura, escrita e - conversão de páginas info. Ele é usado nos procedimentos de - instalação de muitos pacotes LFS. -

    -
  • -
  • -

    - Util-linux -

    -

    - Esse pacote contém uma variedade de aplicativos - utilitários. Entre eles estão utilitários para manipulação - de sistemas de arquivos, consoles, partições e mensagens. -

    -
  • -
  • -

    - Vim -

    -

    - Esse pacote contém um editor. Ele foi escolhido por causa - da compatibilidade com o clássico editor vi e o seu número - gigante de capacidades poderosas. Um editor é uma escolha - muito pessoal para muitas(os) usuárias(os) e qualquer outro - editor poderia ser substituído se assim desejar. -

    -
  • -
  • -

    - XML::Parser -

    -

    - Esse pacote é um módulo Perl que interage com Expat. -

    -
  • -
  • -

    - XZ Utils -

    -

    - Esse pacote contém aplicativos para compressão e - descompressão de arquivos. Ele fornece a maior compressão - geralmente disponível e é útil para descomprimir pacotes - nos formatos XZ ou LZMA. -

    -
  • -
  • -

    - Zlib -

    -

    - Esse pacote contém rotinas de compressão e descompressão - usadas por alguns aplicativos. -

    -
  • -
  • -

    - Zstd -

    -

    - Esse pacote contém rotinas de compressão e descompressão - usadas por alguns aplicativos. Ele fornece taxas altas de - compressão e um intervalo muito amplo de intercâmbios entre - compressão / velocidade. -

    -
  • -
-
-
-
-
-
-
-

- Tipografia -

-
-
-
-

- Para fazer as coisas mais fáceis de serem seguidas, existem - algumas convenções tipográficas usadas neste livro. Esta sessão - contém alguns exemplos da formatação tipográfica encontrada ao - longo de Linux From Scratch. -

-
./configure --prefix=/usr
-

- Essa forma de texto é desenhada para ser digitada do jeito que - está, a menos que seja dito o contrário no texto que a envolve. É - também usada na sessão de explicação para identificar quais dos - comandos estão sendo referenciados. -

-

- Em alguns casos, uma linha lógica é estendida em duas ou mais - linhas físicas com uma barra invertida no final da linha. -

-
CC="gcc -B/usr/bin/" ../binutils-2.18/configure \
-  --prefix=/tools --disable-nls --disable-werror
-

- Note que a barra invertida deve ser seguida imediatamente por uma - quebra de linha. Outros espaços em branco como tabulação criarão - resultados incorretos. -

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

- Essa forma de texto (largura fixa) mostra a saída em tela, - geralmente como resultado de um comando executado. Esse formato é - também utilizado para mostrar nomes de arquivos, como - /etc/ld.so.conf. -

-

- Emphasis -

-

- Essa forma de texto é usada para vários propósitos neste livro. - Seu propósito principal é o de enfatizar pontos ou itens - importantes. -

-

- https://www.linuxfromscratch.org/ -

-

- Esse formato é usado para hiperlinks tanto dentro da comunidade - LFS e para páginas externas. Isso inclui HOWTOs, locais de - downloads e páginas da Internet. -

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

- Esse formato é usado quando da criação de arquivos de - configuração. O primeiro comando diz para o sistema criar o - arquivo $LFS/etc/group a partir do - que seja digitado nas linhas seguintes até encontrar a sequência - “End Of File” (EOF). Portanto, toda essa sequência é - geralmente digitada da maneira como é vista. -

-

- <REPLACED TEXT> -

-

- Esse formato é usado para encapsular texto que não deve ser - digitado como visto ou para operações de - “copiar-colar”. -

-

- [OPTIONAL TEXT] -

-

- Esse formato é usado para encapsular texto que é opcional. -

-

- passwd(5) -

-

- Esse formato é usado para referir-se a uma página de manual - específica (man). O número entre parênteses indica uma seção - específica dentro dos manuais. Por exemplo, passwd tem duas páginas de - manual. Conforme as instruções de instalação do LFS, essas duas - páginas de manual estarão localizadas em /usr/share/man/man1/passwd.1 e /usr/share/man/man5/passwd.5. Quando o livro - usa passwd(5) ele está se referindo - especificamente a /usr/share/man/man5/passwd.5. man passwd exibirá a primeira - página de manual que corresponde a passwd, a - qual será /usr/share/man/man1/passwd.1. Para esse - exemplo, você precisará executar man 5 passwd para ler a página - sendo especificada. Perceba que a maioria das páginas de manual - não tem nomes duplicados de páginas em diferentes seções. - Portanto, man <nome do - aplicativo> geralmente é - suficiente. -

-
-
-
-
-
-

- Estrutura -

-
-
-
-

- Este livro é dividido nas seguintes partes. -

-
-

- Parte I – Introdução -

-

- A Parte I explica algumas notas importantes sobre como proceder - com a instalação do LFS. Essa seção também fornece - metainformação sobre o livro. -

-
-
-

- Parte II – Preparando para a Construção -

-

- A Parte II descreve como se preparar para o processo de - construção —criando uma partição, baixando os pacotes, e - compilando as ferramentas temporárias. -

-
-
-

- Parte III – Construindo o Conjunto Cruzado de Ferramentas - do LFS e Ferramentas Temporárias -

-

- A Parte III fornece instruções para a construção das - ferramentas necessárias para a construção do sistema LFS final. -

-
-
-

- Parte IV - Construindo o Sistema LFS -

-

- A Parte IV guia o leitor ao longo da construção do sistema LFS - —compilando e instalando todos os pacotes, um por um, - configurando os scripts de inicialização e instalando o kernel. - O sistema Linux resultante é a base sobre a qual outros - aplicativos podem ser construídos para expandir o sistema - conforme desejado. No final deste livro, há uma lista de - referência de fácil uso listando todos os aplicativos, - bibliotecas e arquivos importantes que foram instalados. -

-
-
-

- Parte V - Apêndices -

-

- A Parte V fornece informação acerca do próprio livro incluindo - acrônimos e termos, reconhecimentos, dependências de pacotes, - uma listagem dos scripts de inicialização do LFS, licenças para - a distribuição do livro, e um índice compreensível de pacotes, - aplicativos, bibliotecas, e scripts. -

-
-
-
-
-
-
-

- Errata e Avisos de Segurança -

-
-
-
-

- Os aplicativos utilizados para criar um sistema LFS estão sendo - constantemente atualizados e melhorados. Alertas de segurança e - correções de defeitos talvez se tornem disponíveis após o livro - LFS ter sido lançado. Para checar se versões de pacotes ou - instruções neste lançamento de LFS necessitam de quaisquer - modificações para acomodar vulnerabilidades de segurança ou - outras correções de defeitos, por favor visite https://www.linuxfromscratch.org/lfs/errata/11.1-systemd/ - antes de continuar com a sua construção. Você deveria tomar nota - de quaisquer mudanças mostradas e aplicá-las às seções relevantes - do livro conforme você progride com a construção do sistema LFS. -

-

- Adicionalmente, os editores de Linux From Scratch mantém uma - lista de vulnerabilidades de segurança descobertas depois que um - livro foi lançado. Para checar se existem quaisquer - vulnerabilidades ativas de segurança, por favor visite https://www.linuxfromscratch.org/lfs/advisories/ - antes de proceder com sua construção. Você deveria tomar nota de - quaisquer conselhos e executar os passos para corrigir quaisquer - vulnerabilidades de segurança conforme você progride com a - construção do sistema LFS. -

-
-
-
-
-
-
-

- Parte I. Introdução -

-
-
-
-
-
-
-
-

- Capítulo 1. Introdução -

-
-
-
-
-
-
-
-

- 1.1. Como Construir um Sistema - LFS -

-
-
-
-

- O sistema LFS será construído usando uma distribuição Linux já - instalada (tal como Debian, OpenMandriva, Fedora, ou openSUSE). - Esse sistema Linux existente (o anfitrião) será usado como - ponto de partida para fornecer os aplicativos necessários, - incluindo um compilador, um vinculador, e um interpretador de - comandos, para construir o novo sistema. Selecione a opção - desenvolvimento durante a - instalação da distribuição para estar apto a acessar essas - ferramentas. -

-

- Como uma alternativa a instalar uma distribuição separada em - sua máquina, você talvez deseje usar um LiveCD de uma - distribuição comercial. -

-

- Capítulo 2 - deste livro descreve como criar uma nova partição Linux nativa - e sistema de arquivos. Esse é o local onde o novo sistema LFS - será compilado e instalado. Capítulo 3 explica - quais pacotes e patches precisam ser baixados para construir um - sistema LFS e como eles devem ser armazenados no novo sistema - de arquivos. Capítulo 4 discute a - configuração de um ambiente de trabalho apropriado. Por favor, - leia o Capítulo 4 - cuidadosamente, uma vez que ele explica vários assuntos - importantes sobre os quais você deve estar ciente antes de - começar seu trabalho ao longo do Capítulo 5 - e além. -

-

- Capítulo 5, - explica a instalação do conjunto inicial de ferramentas, - (binutils, gcc, e glibc) usando técnicas de compilação cruzada - para isolar as novas ferramentas das do sistema anfitrião. -

-

- Capítulo 6 - te mostra como compilar cruzadamente utilitários básicos usando - o recém construído conjunto cruzado de ferramentas. -

-

- - Capítulo 7 então entra em um ambiente "chroot" e usa - as ferramentas previamente construídas para construir as - ferramentas adicionais necessárias para construir e para testar - o sistema final. -

-

- Esse esforço para isolar o sistema novo do sistema anfitrião - talvez pareça excessivo. Uma explicação técnica completa sobre - o porquê isso é feito é fornecida em Notas Técnicas do - Conjunto de Ferramentas. -

-

- Em Capítulo 8, - o sistema LFS completo é construído. Outra vantagem fornecida - pelo ambiente chroot é que ele te permite continuar usando o - sistema anfitrião enquanto que LFS está sendo construído. - Enquanto espera por compilações de pacotes completarem, você - pode continuar usando seu computador normalmente. -

-

- Para finalizar a instalação, a configuração básica do sistema é - concluída em Capítulo 9, e o - kernel e carregador de inicialização são configurados em - Capítulo 10. - Capítulo 11 contém informação - sobre como continuar a experiência LFS além deste livro. Após - os passos neste livro terem sido implementados, o computador - estará pronto para reiniciar no novo sistema LFS. -

-

- Esse é o processo em poucas palavras. Informação detalhada - sobre cada passo é discutida nos capítulos seguintes e nas - descrições dos pacotes. Itens que talvez pareçam complicados - serão esclarecidos, e tudo ficará em seu devido lugar conforme - você embarcar na aventura do LFS. -

-
-
-
-
-
-

- 1.2. O que há de novo desde - o último lançamento -

-
-
-
-

- Nesta versão de LFS, houve uma grande reorganização do livro - usando técnicas que evitam a modificação do sistema anfitrião e - fornecem um seguimento mais estrito do processo de construção. -

-

- Abaixo está uma lista das atualizações de pacotes feitas desde - o lançamento anterior do livro. -

-
-

- Atualizado para: -

-
    -
  • -

    - Automake-1.16.5 -

    -
  • -
  • -

    - Bash-5.1.16 -

    -
  • -
  • -

    - Bc-5.2.2 -

    -
  • -
  • -

    - Binutils-2.38 -

    -
  • -
  • -

    - Bison-3.8.2 -

    -
  • -
  • -

    - Coreutils-9.0 -

    -
  • -
  • -

    - E2fsprogs-1.46.5 -

    -
  • -
  • -

    - Expat-2.4.6 -

    -
  • -
  • -

    - File-5.41 -

    -
  • -
  • -

    - Findutils-4.9.0 -

    -
  • -
  • -

    - Gawk-5.1.1 -

    -
  • -
  • -

    - GDBM-1.23 -

    -
  • -
  • -

    - Glibc-2.35 -

    -
  • -
  • -

    - Gzip-1.11 -

    -
  • -
  • -

    - IANA-Etc-20220207 -

    -
  • -
  • -

    - Inetutils-2.2 -

    -
  • -
  • -

    - IPRoute2-5.16.0 -

    -
  • -
  • -

    - Jinja2-3.0.3 -

    -
  • -
  • -

    - Libcap-2.63 -

    -
  • -
  • -

    - Libelf-0.186 (de: elfutils) -

    -
  • -
  • -

    - Libpipeline-1.5.5 -

    -
  • -
  • -

    - Linux-5.16.9 -

    -
  • -
  • -

    - Man-DB-2.10.1 -

    -
  • -
  • -

    - Meson-0.61.1 -

    -
  • -
  • -

    - Ncurses-6.3 -

    -
  • -
  • -

    - Openssl-3.0.1 -

    -
  • -
  • -

    - Python-3.10.2 -

    -
  • -
  • -

    - Readline-8.1.2 -

    -
  • -
  • -

    - Shadow-4.11.1 -

    -
  • -
  • -

    - Systemd-250 -

    -
  • -
  • -

    - Tcl-8.6.12 -

    -
  • -
  • -

    - Tzdata-2021e -

    -
  • -
  • -

    - Util-Linux-2.37.4 -

    -
  • -
  • -

    - Vim-8.2.4383 -

    -
  • -
  • -

    - Zstd-1.5.2 -

    -
  • -
-
-
-

- Adicionado: -

-
    -
  • -

    - binutils-2.38-lto_fix-1.patch -

    -
  • -
  • -

    - coreutils-9.0-chmod_fix-1.patch -

    -
  • -
  • -

    - file-5.40-upstream_fixes-1.patch -

    -
  • -
  • -

    - shadow-4.10-useradd_segfault-1.patch -

    -
  • -
  • -

    - systemd-250-upstream_fixes-1.patch -

    -
  • -
-
-
-
-
-
-
-

- 1.3. Registro de Mudanças -

-
-
-
-

- Esta é a versão 11.1-systemd do livro Linux From Scratch, - datada de 1º de março de 2022. Se este livro estiver com mais - de seis meses, então uma versão nova e melhor provavelmente já - está disponível. Para descobrir, por favor verifique um dos - sites via https://www.linuxfromscratch.org/mirrors.html. -

-

- Abaixo está uma lista das mudanças feitas desde o lançamento - anterior do livro. -

-
-

- Entradas de Registro de Mudanças: -

-
    -
  • -

    - 2022-03-01 -

    -
    -
      -
    • -

      - [bdubbs] - LFS-11.1 lançado. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-02-23 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para expat-2.4.6 (correção - de segurança). Corrige - #5011. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-02-15 -

    -
    -
      -
    • -

      - [bdubbs] - LFS-11.1-rc1 lançado. -

      -
    • -
    • -

      - [bdubbs] - Adicionar binutils-2.38 LTO patch. - Corrige - #5011. -

      -
    • -
    • -

      - [bdubbs] - Atualização para util-linux-2.37.4. - Corrige - #5010. -

      -
    • -
    • -

      - [bdubbs] - Atualização para man-db-2.10.1. Corrige - - #5009. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.16.9. Corrige - - #5008. -

      -
    • -
    • -

      - [bdubbs] - Atualização para vim-8.2.4383 - (Atualização de Segurança). Endereça - #4500. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iana-etc-20220207. - Endereça - #5006. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-02-10 -

    -
    -
      -
    • -

      - [xry111] - Contorna um problema que causa os - binários se vincularem a bibliotecas da - distribuição anfitriã para a passagem dois de - binutils. Agora é desnecessário construir zlib em - capítulo 6. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-02-09 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para bc-5.2.2. Corrige - - #5004. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.16.8. Corrige - - #5005. -

      -
    • -
    • -

      - [bdubbs] - Atualização para binutils-2.38. Exige a - adição de zlib para Capítulo 6. Corrige - #5007. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-02-04 -

    -
    -
      -
    • -

      - [xry111] - Remove diretivas bash +h em chroot. Corrige - #4998. -

      -
    • -
    • -

      - [xry111] - Atualização para man-db-2.10.0. Corrige - - #5002. -

      -
    • -
    • -

      - [xry111] - Move OpenSSL para antes de Kmod e - habilita OpenSSL para construção de Kmod. -

      -
    • -
    • -

      - [xry111] - Atualização para gdbm-1.23. Corrige - - #5000. -

      -
    • -
    • -

      - [xry111] - Atualização para tcl-8.6.12. Corrige - - #5001. -

      -
    • -
    • -

      - [thomas] - Remove sed das instruções glibc em - capítulo 8. Foi submetida ao desenvolvedor. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-02-03 -

    -
    -
      -
    • -

      - [bdubbs] - Adicionado patch chmod do coreutils-9.0. - Corrige - #4992. -

      -
    • -
    • -

      - [bdubbs] - Atualização para glibc-2.35. Corrige - - #4999. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.16.5. Corrige - - #4996. -

      -
    • -
    • -

      - [bdubbs] - Atualização para findutils-4.9.0. - Corrige - #4995. -

      -
    • -
    • -

      - [bdubbs] - Atualização para expat-2.4.4. Corrige - - #4993. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iana-etc-20220128. - Corrige - #4994. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-01-29 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para linux-5.16.4. Corrige - - #4991. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-01-27 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para vim-8.2.4236. Endereça - - #4500. -

      -
    • -
    • -

      - [bdubbs] - Atualização para zstd-1.5.2. Corrige - - #4988. -

      -
    • -
    • -

      - [bdubbs] - Atualização para util-linux-2.37.3 - (correção de segurança). Corrige - #4989. -

      -
    • -
    • -

      - [bdubbs] - Atualização para Python-3.10.2. Corrige - - #4987. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.16.2. Corrige - - #4979. -

      -
    • -
    • -

      - [bdubbs] - Atualização para libcap-2.63. Corrige - - #4990. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iproute2-5.16.0. - Corrige - #4982. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iana-etc-20220120. - Corrige - #4975. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-01-20 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para expat-2.4.3 (correções - de segurança). Corrige - #4984. -

      -
    • -
    • -

      - [pierre] - Atualização para meson-0.61.1. Corrige - - #4985. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-01-17 -

    -
    -
      -
    • -

      - [thomas] - Adicionada uma correção de um erro de - digitação para o patch de meson-0.61.0. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-01-15 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para shadow-4.11.1. Corrige - - #4976. -

      -
    • -
    • -

      - [bdubbs] - Atualização para readline-8.1.2. Corrige - - #4980. -

      -
    • -
    • -

      - [bdubbs] - Atualização para meson-0.61.0. Corrige - - #4983. -

      -
    • -
    • -

      - [bdubbs] - Atualização para libpipeline-1.5.5. - Corrige - #4977. -

      -
    • -
    • -

      - [bdubbs] - Atualização para bash-5.1.16. Corrige - - #4978. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-01-13 -

    -
    -
      -
    • -

      - [renodr] - Corrigido CVE-2021-3997 em systemd, bem - como correção de um problema com as Unidades padrão - hostname e idle. Corrige - #4981. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-01-03 -

    -
    -
      -
    • -

      - [renodr] - Acrescenta configuração adicional de - kernel para permitir que 'systemd-oomd' funcione. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-01-01 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para e2fsprogs-1.46.5. - Corrige - #4974. -

      -
    • -
    • -

      - [bdubbs] - Atualização para zstd-1.5.1. Corrige - - #4972. -

      -
    • -
    • -

      - [bdubbs] - Atualização para expat-2.4.2. Corrige - - #4970. -

      -
    • -
    • -

      - [bdubbs] - Atualização para shadow-4.10. Corrige - - #4969. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.15.12. Corrige - - #4967. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iana-etc-20211224. - Corrige - #4962. -

      -
    • -
    • -

      - [bdubbs] - Atualização para openssl-3.0.1. Corrige - - #4922. -

      -
    • -
    • -

      - [bdubbs] - Atualização para eudev-3.2.11. Corrige - - #4914. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-12-30 -

    -
    -
      -
    • -

      - [renodr] - Atualização para systemd-250. Corrige - - #4971. -

      -
    • -
    • -

      - [renodr] - Atualização para meson-0.60.3. Corrige - - #4973. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-12-15 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para python3-3.10.1. Corrige - - #4963. -

      -
    • -
    • -

      - [bdubbs] - Atualização para openssl-1.1.1m. Corrige - - #4966. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.15.7. Corrige - - #4964. -

      -
    • -
    • -

      - [bdubbs] - Atualização para libcap-2.62. Corrige - - #4965. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-12-14 -

    -
    -
      -
    • -

      - [thomas] - Permite a construção de findutils em - sistemas de 32 bits. Commits aplicados a partir da - branch multilib por [pierre]. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-12-01 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para vim-8.2.3704. Endereça - - #4500. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iana-etc-20211124. - Corrige - #4957. -

      -
    • -
    • -

      - [bdubbs] - Atualização para bc-5.2.1. Corrige - - #4959. -

      -
    • -
    • -

      - [bdubbs] - Atualização para meson-0.60.2. Corrige - - #4960. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.15.5. Corrige - - #4956. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-11-15 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para iana-etc-20211112. - Corrige - #4955. -

      -
    • -
    • -

      - [bdubbs] - Atualização para elfutils-0.186. Corrige - - #4954. -

      -
    • -
    • -

      - [bdubbs] - Atualização para jinja2-3.0.3. Corrige - - #4953. -

      -
    • -
    • -

      - [bdubbs] - Atualização para bc-5.2.0. Corrige - - #4952. -

      -
    • -
    • -

      - [bdubbs] - Atualização para ncurses-6.3. Corrige - - #4951. -

      -
    • -
    • -

      - [bdubbs] - Atualização para libpipeline-1.5.4. - Corrige - #4950. -

      -
    • -
    • -

      - [bdubbs] - Atualização para meson-0.60.1. Corrige - - #4949. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iproute2-5.15.0. - Corrige - #4948. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.15.2. Corrige - - #4947. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-11-01 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para gawk-5.1.1. Corrige - - #4946. -

      -
    • -
    • -

      - [bdubbs] - Atualização para meson-0.60.0. Corrige - - #4945. -

      -
    • -
    • -

      - [bdubbs] - Atualização para libcap-2.60. Corrige - - #4944. -

      -
    • -
    • -

      - [bdubbs] - Atualização para gdbm-1.22. Corrige - - #4943. -

      -
    • -
    • -

      - [bdubbs] - Atualização para file-5.41. Corrige - - #4942. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.14.15. Corrige - - #4941. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iana-etc-20211025. - Corrige - #4940. -

      -
    • -
    • -

      - [bdubbs] - Atualização para tzdata-2021e. Corrige - - #4939. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-10-15 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para vim-8.2.3508. Endereça - - #4500. -

      -
    • -
    • -

      - [bdubbs] - Atualização para tzdata-2021c. Corrige - - #4934. -

      -
    • -
    • -

      - [bdubbs] - Atualização para Python-3.10.0. Corrige - - #4938. -

      -
    • -
    • -

      - [bdubbs] - Atualização para Jinja2-3.0.2. Corrige - - #4937. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.14.12. Corrige - - #4932. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iana-etc-20211004. - Corrige - #4933. -

      -
    • -
    • -

      - [bdubbs] - Atualização para bc-5.1.1. Corrige - - #4936. -

      -
    • -
    • -

      - [bdubbs] - Atualização para automake-1.16.5. - Corrige - #4935. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-10-01 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para vim-8.2.3458. Endereça - - #4500. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iana-etc-20210924. - Endereça - #4722. -

      -
    • -
    • -

      - [bdubbs] - Atualização para tzdata-2021b. Corrige - - #4929. -

      -
    • -
    • -

      - [bdubbs] - Atualização para meson-0.59.2. Corrige - - #4931. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.14.8. Corrige - - #4925. -

      -
    • -
    • -

      - [bdubbs] - Atualização para libcap-2.59. Corrige - - #4926. -

      -
    • -
    • -

      - [bdubbs] - Atualização para coreutils-9.0. Corrige - - #4928. -

      -
    • -
    • -

      - [bdubbs] - Atualização para bison-3.8.2. Corrige - - #4930. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-09-15 -

    -
    -
      -
    • -

      - [bdubbs] - Garante que as instruções de - documentação de tcl estão presentes. Corrige - - #4923. -

      -
    • -
    • -

      - [bdubbs] - Atualização para Python3-3.9.7. Corrige - - #4916. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.14.3. Corrige - - #4913. -

      -
    • -
    • -

      - [bdubbs] - Atualização para libcap-2.57. Corrige - - #4912. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iproute2-5.14.0. - Corrige - #4917. -

      -
    • -
    • -

      - [bdubbs] - Atualização para inetutils-2.2. Corrige - - #4918. -

      -
    • -
    • -

      - [bdubbs] - Atualização para gzip-1.11. Corrige - - #4920. -

      -
    • -
    • -

      - [bdubbs] - Atualização para gdbm-1.21. Corrige - - #4919. -

      -
    • -
    • -

      - [bdubbs] - Atualização para bison-3.8.1. Corrige - - #4921. -

      -
    • -
    • -

      - [bdubbs] - Atualização para bc-5.0.2. Corrige - - #4905. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-09-08 -

    -
    -
      -
    • -

      - [renodr] - Corrige regressões em File que resultam - em detecção inapropriada de texto e arquivos XZ. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-09-06 -

    -
    -
      -
    • -

      - [bdubbs] - Esclarecimentos de texto na seção cópia - de segurança/restauração de Capítulo 7. Grato a - Kevin Buckley pelo patch. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-09-01 -

    -
    -
      -
    • -

      - [bdubbs] - LFS-11.0 lançado. -

      -
    • -
    -
    -
  • -
-
-
-
-
-
-
-

- 1.4. Recursos -

-
-
-
-
-

- 1.4.1. Perguntas - Frequentes -

-

- Se durante a construção do sistema LFS você encontrar - quaisquer erros, tiver quaisquer perguntas, ou entender que - há um erro de digitação no livro, então, por favor, comece - consultando as Perguntas Feitas Frequentemente (FAQ) que - estão localizadas em https://www.linuxfromscratch.org/faq/. -

-
-
-

- 1.4.2. Listas de Correio Eletrônico -

-

- O servidor linuxfromscratch.org - hospeda um número de listas de discussão usadas para o - desenvolvimento do projeto LFS. Essas listas incluem as - principais listas de desenvolvimento e suporte, dentre - outras. Se o FAQ não resolver o problema que você está tendo, - então o próximo passo seria procurar nas listas de discussão - em https://www.linuxfromscratch.org/search.html. -

-

- Para informação sobre as diversas listas, como se inscrever, - localização de arquivos e informações adicionais, visite - https://www.linuxfromscratch.org/mail.html. -

-
-
-

- 1.4.3. IRC -

-

- Vários membros da comunidade LFS oferecem assistência no - Internet Relay Chat (IRC). Antes de usar esse suporte, por - favor certifique-se de que sua pergunta já não foi respondida - no FAQ do LFS ou nos arquivos das listas de discussão. Você - pode encontrar a rede IRC em irc.libera.chat. O canal de suporte é chamado de - #lfs-support. -

-
-
-

- 1.4.4. - Sítios Espelho -

-

- O projeto LFS tem um número de espelhos mundo afora para - fazer com que o acesso ao site do projeto e o download dos - pacotes exigidos seja mais conveniente. Por favor visite o - site do LFS em https://www.linuxfromscratch.org/mirrors.html - para uma lista dos espelhos atuais. -

-
-
-

- 1.4.5. Informação de Contato -

-

- Por favor, direcione todas as suas questões e comentários - para uma das listas de discussão (veja acima). -

-
-
-
-
-
-
-

- 1.5. Ajuda -

-
-
-
-

- Se um problema ou uma pergunta for encontrado durante o - trabalho com este livro, então, por favor, verifique a página - de Perguntas Frequentes em https://www.linuxfromscratch.org/faq/#generalfaq. - Perguntas frequentemente já estão respondidas lá. Se sua - pergunta não estiver respondida nessa página, então, por favor, - tente encontrar a origem do problema. A dica seguinte te dará - alguma orientação com relação à resolução de problemas: - - https://www.linuxfromscratch.org/hints/downloads/files/errors.txt. -

-

- Se você não puder achar seu problema listado nas Perguntas - Frequentes, então procure nas listas de discussão em https://www.linuxfromscratch.org/search.html. -

-

- Nós também temos uma comunidade LFS maravilhosa que está - disposta a oferecer assistência por meio das listas de - discussão e IRC (veja a seção Seção 1.4, - “Recursos” deste livro). Entretanto, nós temos - várias perguntas de suporte todos os dias e muitas delas podem - ser facilmente respondidas indo para as Perguntas Frequentes e - procurando nas listas de discussão primeiro. Então, para que - nós possamos oferecer a melhor assistência possível, você - precisa fazer alguma pesquisa por conta própria primeiro. Isso - nos permite focar nas necessidades menos usuais de suporte. Se - suas buscas não produzirem uma solução, então, por favor, - inclua todas as informações relevantes (mencionadas abaixo) no - seu pedido de ajuda. -

-
-

- 1.5.1. Coisas a Mencionar -

-

- Além de uma breve explanação do problema sendo vivenciado, as - coisas essenciais a incluir em qualquer pedido de ajuda são: -

-
-
    -
  • -

    - A versão do livro sendo usado (neste caso 11.1-systemd) -

    -
  • -
  • -

    - A distribuição anfitriã e versão sendo usada para criar - LFS -

    -
  • -
  • -

    - A saída do script Exigências do Sistema Anfitrião -

    -
  • -
  • -

    - O pacote ou seção onde o problema foi encontrado -

    -
  • -
  • -

    - A mensagem de erro exata ou o sintoma sendo recebido -

    -
  • -
  • -

    - Nota se você se desviou do livro afinal -

    -
  • -
-
-
-

- Nota -

-

- Desviar-se deste livro não significa que nós não vamos - te ajudar. Afinal de contas, LFS é acerca de preferência - pessoal. Ser sincero sobre quaisquer mudanças nos - procedimentos estabelecidos nos ajuda a avaliar e - determinar possíveis causas do seu problema. -

-
-
-
-

- 1.5.2. Problemas de Script de Configuração -

-

- Se algo der errado quando executar o script configure, então revise o - arquivo config.log. Esse - arquivo talvez contenha erros encontrados durante [a execução - de] configure - os quais não foram exibidos na tela. Inclua as linhas - relevantes se você - precisar pedir ajuda. -

-
-
-

- 1.5.3. Problemas de Compilação -

-

- Tanto a saída da tela quando o conteúdo de vários arquivos - são úteis para determinar a causa de problemas de compilação. - A saída da tela do script configure e do make executado podem ser - úteis. Não é necessário incluir toda a saída, mas inclua - informações relevantes suficientes. Abaixo está um exemplo do - tipo de informação a incluir a partir da saída de tela do - make: -

-
gcc -DALIASPATH=\"/mnt/lfs/usr/share/locale:.\"
--DLOCALEDIR=\"/mnt/lfs/usr/share/locale\"
--DLIBDIR=\"/mnt/lfs/usr/lib\"
--DINCLUDEDIR=\"/mnt/lfs/usr/include\" -DHAVE_CONFIG_H -I. -I.
--g -O2 -c getopt1.c
-gcc -g -O2 -static -o make ar.o arscan.o commands.o dir.o
-expand.o file.o function.o getopt.o implicit.o job.o main.o
-misc.o read.o remake.o rule.o signame.o variable.o vpath.o
-default.o remote-stub.o version.o opt1.o
--lutil job.o: In function `load_too_high':
-/lfs/tmp/make-3.79.1/job.c:1565: undefined reference
-to `getloadavg'
-collect2: ld returned 1 exit status
-make[2]: *** [make] Error 1
-make[2]: Leaving directory `/lfs/tmp/make-3.79.1'
-make[1]: *** [all-recursive] Error 1
-make[1]: Leaving directory `/lfs/tmp/make-3.79.1'
-make: *** [all-recursive-am] Error 2
-

- Nesse caso, muitas pessoas incluiriam apenas a seção final: -

-
make [2]: *** [make] Error 1
-

- Essa não é informação suficiente para diagnosticar - adequadamente o problema, pois essa linha apenas mostra que - algo deu errado, não o - quê deu errado. A seção inteira, como no exemplo - acima, é o que deveria ser salva, porque ela inclui o comando - que foi executado e a(s) mensagem(ns) de erro associada(s). -

-

- Um artigo excelente sobre como pedir ajuda na Internet está - disponível em http://catb.org/~esr/faqs/smart-questions.html. - Leia e siga as dicas nesse documento para aumentar a - possibilidade receber a ajuda que você precisa. -

-
-
-
-
-
-
-
-
-

- Parte II. Preparando para a - Construção -

-
-
-
-
-
-
-
-

- Capítulo 2. Preparando o - Sistema Anfitrião -

-
-
-
-
-
-
-
-

- 2.1. Introdução -

-
-
-
-

- Neste capítulo, as ferramentas do anfitrião necessárias para - construção de LFS são verificadas e, se necessário, instaladas. - Então uma partição que hospedará o sistema LFS é preparada. Nós - criaremos a própria partição, criaremos um sistema de arquivos - nela, e a montaremos. -

-
-
-
-
-
-

- 2.2. Exigências do - Sistema Anfitrião -

-
-
-
-

- Seu sistema anfitrião deveria ter o software seguinte com as - versões mínimas indicadas. Isso não deveria ser um problema - para a maioria das distribuições Linux modernas. Também, - perceba que muitas distribuições colocarão cabeçalhos de - aplicativos dentro de pacotes separados, frequentemente na - forma de <nome-pacote>-devel ou - <nome-pacote>-dev. - Certifique-se de instalá-los se sua distribuição os fornecer. -

-

- Versões anteriores dos pacotes de software listados talvez - funcionem, porém não foram testados. -

-
-
    -
  • -

    - Bash-3.2 - (/bin/sh deveria ser um link simbólico ou real para bash) -

    -
  • -
  • -

    - Binutils-2.13.1 (Versões - maiores que 2.38 não são recomendadas dado que elas não - foram testadas) -

    -
  • -
  • -

    - Bison-2.7 - (/usr/bin/yacc deveria ser um link para bison ou script - pequeno que executa bison) -

    -
  • -
  • -

    - Coreutils-6.9 -

    -
  • -
  • -

    - Diffutils-2.8.1 -

    -
  • -
  • -

    - Findutils-4.2.31 -

    -
  • -
  • -

    - Gawk-4.0.1 - (/usr/bin/awk deveria ser um link para gawk) -

    -
  • -
  • -

    - GCC-4.8 - incluindo o compilador C++, g++ (Versões maiores - que 11.2.0 não são recomendadas dado que elas não foram - testadas). As bibliotecas C e C++ padrão (com cabeçalhos) - também devem estar presentes, de forma que o compilador - C++ possa construir aplicativos hospedados -

    -
  • -
  • -

    - Grep-2.5.1a -

    -
  • -
  • -

    - Gzip-1.3.12 -

    -
  • -
  • -

    - Linux - Kernel-3.2 -

    -

    - A razão para a exigência da versão de kernel é que nós - especificamos essa versão quando da construção de - glibc em - Capítulo 5 e Capítulo 8, - por recomendação dos desenvolvedores. Ela também é - exigida por udev. -

    -

    - Se o kernel do anfitrião for anterior a 3.2, então você - precisará substituir o kernel com uma versão mais - atualizada. Existem duas maneiras de você fazer isso. - Primeira, veja se seu fornecedor Linux fornece um pacote - de kernel 3.2 ou mais atual. Se sim, então você talvez - deseje instalá-lo. Se seu fornecedor não oferecer um - pacote de kernel aceitável, ou você preferisse não - instalá-lo, então você mesmo pode compilar um kernel. - Instruções para a compilação de kernel e configuração de - carregador de inicialização (presumindo que o anfitrião - usa GRUB) estão localizadas em Capítulo 10. -

    -
  • -
  • -

    - M4-1.4.10 -

    -
  • -
  • -

    - Make-4.0 -

    -
  • -
  • -

    - Patch-2.5.4 -

    -
  • -
  • -

    - Perl-5.8.8 -

    -
  • -
  • -

    - Python-3.4 -

    -
  • -
  • -

    - Sed-4.1.5 -

    -
  • -
  • -

    - Tar-1.22 -

    -
  • -
  • -

    - Texinfo-4.7 -

    -
  • -
  • -

    - Xz-5.0.0 -

    -
  • -
-
-
-

- Importante -

-

- Perceba que os links simbólicos mencionados acima são - exigidos para construir um sistema LFS usando as instruções - contidas neste livro. Links simbólicos que apontem para outro - software (tais como dash, mawk, etc.) talvez funcionem, porém - não são testados ou suportados pela equipe de desenvolvimento - de LFS, e talvez exijam ou desvio das instruções ou correções - adicionais para alguns pacotes. -

-
-

- -

-

- Para ver se seu sistema anfitrião tem todas as versões - apropriadas, e a habilidade de compilar aplicativos, execute o - seguinte: -

-
cat > version-check.sh << "EOF"
-#!/bin/bash
-# Script simples para listar números de versão de ferramentas críticas de desenvolvimento
-export LC_ALL=C
-bash --version | head -n1 | cut -d" " -f2-4
-MYSH=$(readlink -f /bin/sh)
-echo "/bin/sh -> $MYSH"
-echo $MYSH | grep -q bash || echo "ERRO: /bin/sh não aponta para bash"
-unset MYSH
-
-echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3-
-bison --version | head -n1
-
-if [ -h /usr/bin/yacc ]; then
-  echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`";
-elif [ -x /usr/bin/yacc ]; then
-  echo yacc is `/usr/bin/yacc --version | head -n1`
-else
-  echo "yacc não encontrado"
-fi
-
-echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2
-diff --version | head -n1
-find --version | head -n1
-gawk --version | head -n1
-
-if [ -h /usr/bin/awk ]; then
-  echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`";
-elif [ -x /usr/bin/awk ]; then
-  echo awk é `/usr/bin/awk --version | head -n1`
-else
-  echo "awk não encontrado"
-fi
-
-gcc --version | head -n1
-g++ --version | head -n1
-grep --version | head -n1
-gzip --version | head -n1
-cat /proc/version
-m4 --version | head -n1
-make --version | head -n1
-patch --version | head -n1
-echo Perl `perl -V:version`
-python3 --version
-sed --version | head -n1
-tar --version | head -n1
-makeinfo --version | head -n1  # versão texinfo
-xz --version | head -n1
-
-echo 'int main(){}' > dummy.c && g++ -o dummy dummy.c
-if [ -x dummy ]
-  then echo "g++ compilação OK";
-  else echo "g++ compilação falhou"; fi
-rm -f dummy.c dummy
-EOF
-
-bash version-check.sh
-
-
-
-
-
-

- 2.3. Construindo LFS - em Estágios -

-
-
-
-

- LFS está desenhado para ser construído em uma sessão. Isto é, - as instruções assumem que o sistema não será desligado durante - o processo. Isso não significa que o sistema tenha que estar - pronto de uma só vez. O problema é que certos procedimentos tem - que ser realizados outra vez após uma inicialização se - retomando LFS em pontos diferentes. -

-
-

- 2.3.1. Capítulos 1–4 -

-

- Esses capítulos são realizados no sistema anfitrião. Quando - da reinicialização, seja cuidadosa(o) com o seguinte: -

-
-
    -
  • -

    - Procedimentos feitos como a(o) usuária(o) root após a Seção 2.4 precisam ter - a variável de ambiente LFS configurada PARA A(O) USUÁRIA(O) ROOT. -

    -
  • -
-
-
-
-

- 2.3.2. Capítulos 5–6 -

-
-
    -
  • -

    - A partição /mnt/lfs deve estar montada. -

    -
  • -
  • -

    - Esses dois capítulos devem ser feitos como a(o) - usuária(o) lfs. Um - su - lfs - precisa ser feito antes de qualquer tarefa nesses - capítulos. Ao falhar em fazer isso, você está no risco - de instalar pacotes no sistema anfitrião, e - potencialmente torná-lo inutilizável. -

    -
  • -
  • -

    - Os procedimentos em Instruções Gerais de - Compilação são críticos. Se existir qualquer dúvida - acerca da instalação de um pacote, então certifique-se - de que qualquer arquivo tar descomprimido previamente - foi removido, então extraia novamente os arquivos do - pacote, e complete todas as instruções nessa seção. -

    -
  • -
-
-
-
-

- 2.3.3. Capítulos 7–10 -

-
-
    -
  • -

    - A partição /mnt/lfs deve estar montada. -

    -
  • -
  • -

    - Umas poucas operações, de Mudando - Dono até Entrando no Ambiente - Chroot devem ser feitas como a(o) - usuária(o) root, com a - variável de ambiente LFS configurada para a(o) - usuária(o) root. -

    -
  • -
  • -

    - Quando entrar em chroot, a variável de ambiente LFS - deve estar configurada para root. A variável LFS não mais é - usada posteriormente. -

    -
  • -
  • -

    - Os sistemas virtuais de arquivo devem estar montados. - Isso pode ser feito antes ou depois de entrar em chroot - mudando para um terminal virtual do anfitrião e, como - root, executando os - comandos em Seção 7.3.2, - “Montando e Povoando /dev” e - Seção 7.3.3, “Montando Sistemas de Arquivos - Virtuais de Kernel”. -

    -
  • -
-
-
-
-
-
-
-
-

- 2.4. - Criando uma Nova Partição -

-
-
-
-

- Como a maior parte dos outros sistemas operacionais, LFS - geralmente é instalado em uma partição dedicada. A abordagem - recomendada para construir um sistema LFS é a de usar uma - partição disponível vazia ou, se você tiver espaço suficiente - não particionado, criar uma. -

-

- Um sistema mínimo exige uma partição com cerca de dez (10) - gigabytes (GB). Isso é suficiente para armazenar todos os - arquivos tar dos códigos fontes e compilar os pacotes. - Entretanto, se o sistema LFS for concebido para ser o sistema - Linux principal, então aplicativos adicionais provavelmente - serão instalados os quais exigirão espaço adicional. Uma - partição de trinta (30) GB é um tamanho razoável para permitir - o crescimento. O sistema LFS em si não ocupará esse espaço - todo. Uma boa parte dessa exigência é para fornecer espaço - livre suficiente de armazenamento temporário. Adicionalmente, a - compilação de pacotes pode exigir muito espaço de disco que - será recuperado após o pacote ser instalado. -

-

- Como nem sempre existe Memória de Acesso Aleatório (RAM) - suficiente disponível para processos de compilação, é uma boa - ideia usar uma pequena partição de disco como espaço de - swap. Ele é usado pelo kernel - para armazenar dados raramente usados e deixa mais memória - disponível para processos ativos. A partição de swap para um sistema LFS pode ser a mesma - que aquela usada pelo sistema anfitrião, caso no qual não é - necessário criar outra. -

-

- Inicie um aplicativo de particionamento de disco como - cfdisk ou - fdisk com uma - opção de linha de comando indicando o disco rígido no qual a - nova partição será criada—por exemplo /dev/sda para o controlador primário de - disco. Crie uma partição nativa Linux e uma partição - swap, se necessária. Por favor, - recorra a cfdisk(8) ou - fdisk(8) se você ainda não sabe - como usar os aplicativos. -

-
-

- Nota -

-

- Para usuários experientes, outros esquemas de partição são - possíveis. O novo sistema LFS pode estar em um vetor de - software - RAID ou um volume lógico - LVM. Entretanto, algumas dessas opções exigem um - - initramfs, o que é um tópico avançado. Essas metodologias - de particionamento não são recomendadas para usuárias(os) de - LFS pela primeira vez. -

-
-

- Lembre-se da designação da nova partição (por exemplo, - sda5). Este livro se referirá a - essa como a partição LFS. Lembre-se também da designação da - partição swap. Esses nomes - serão necessários posteriormente para o arquivo /etc/fstab. -

-
-

- 2.4.1. Outros Problemas de Partição -

-

- Pedidos de ajuda com relação a particionamento de disco - frequentemente são enviados à lista de discussão do LFS. Esse - é um assunto altamente subjetivo. O padrão para a maioria das - distribuições é o de usar todo o disco com a exceção de uma - pequena partição swap. Isso não é ideal para LFS por várias - razões. Isso reduz flexibilidade; torna o compartilhamento de - dados entre múltiplas distribuições ou construções LFS mais - difícil; torna as cópias de segurança mais demoradas; e podem - desperdiçar espaço de disco devido à alocação ineficiente de - estruturas de sistema de arquivo. -

-
-
-
-
-

- 2.4.1.1. A Partição Raiz -

-
-
-
-

- Uma partição raiz de LFS (não confundir com o diretório - /root) de vinte (20) - gigabytes é uma boa escolha para a maior parte dos - sistemas. Ela fornece espaço suficiente para construir LFS - e a maior parte de BLFS, mas é pequena o suficiente de - forma que múltiplas partições podem ser criadas facilmente - para experimentação. -

-
-
-
-
-
-

- 2.4.1.2. A Partição Swap -

-
-
-
-

- A maioria das distribuições automaticamente cria uma - partição swap. Geralmente o tamanho recomendado da partição - swap é o de cerca de o dobro da quantidade de RAM física, - entretanto isso raramente é necessário. Se espaço de disco - for limitado, então mantenha a partição swap com dois (2) - gigabytes e monitore a quantidade de troca de disco. -

-

- Se você quer usar a característica de hibernação do Linux - (suspend-to-disk), copia o conteúdo da RAM para a partição - swap antes de desligar a máquina. Nesse caso o tamanho da - partição swap deveria ser pelo menos tão grande quanto a - RAM instalada do sistema. -

-

- O uso de swap nunca é bom. Para discos rígidos mecânicos - você geralmente pode dizer se um sistema está usando swap - simplesmente monitorando a atividade de disco e observando - como o sistema reage a comandos. Para um drive SSD você não - estará apta(o) a monitorar swap, porém você pode dizer - quanto espaço de swap está sendo usado via aplicativos - top ou - free. O uso - de um drive SSD para uma partição swap deveria ser evitado - se possível. A primeira reação em caso de uso de swap - deveria ser verificar se existe um comando irracional como - tentar editar um arquivo de cinco gigabytes. Se o uso de - swap se tornar uma ocorrência recorrente, então a melhor - solução é a de comprar mais RAM para seu sistema. -

-
-
-
-
-
-

- 2.4.1.3. A Partição de Bios Grub -

-
-
-
-

- Se o disco de - inicialização tiver sido particionado com a - Tabela de Partição GUID (GPT), então uma partição pequena, - tipicamente um (1) MB, deve ser criada se ela já não - existir. Essa partição não é formatada, porém deve estar - disponível para GRUB usar durante a instalação do - carregador de inicialização. Essa partição normalmente será - rotulada 'BIOS Boot' se usar fdisk ou terá um código - de EF02 se usar - gdisk. -

-
-

- Nota -

-

- A Partição de Bios Grub deve estar no drive que o BIOS - usa para inicializar o sistema. Esse não é - necessariamente o mesmo drive onde a partição raiz de LFS - está localizada. Discos em um sistema talvez usem tipos - diferentes de tabela de partição. A exigência para essa - partição depende apenas do tipo de tabela de partição do - disco de inicialização. -

-
-
-
-
-
-
-

- 2.4.1.4. Partições de - Conveniência -

-
-
-
-

- Existem várias outras partições que não são exigidas, porém - deveriam ser consideradas ao se projetar um layout de - disco. A lista seguinte não é abrangente, mas é entendida - como um guia. -

-
-
    -
  • -

    - /boot – Altamente recomendada. Use essa - partição para armazenar kernels e outras informações - de inicialização. Para minimizar potenciais problemas - de inicialização com discos maiores, torne essa a - primeira partição física no seu primeiro controlador - de disco. Um tamanho de partição de duzentos (200) - megabytes é bastante adequado. -

    -
  • -
  • -

    - /home – Altamente recomendada. Compartilhe seu - diretório home e personalizações de usuário entre - múltiplas distribuições ou construções LFS. O tamanho - geralmente é bastante grande e depende do espaço de - disco disponível. -

    -
  • -
  • -

    - /usr – Em LFS, /bin, /lib, e /sbin são links simbólicos para - seus homólogos em /usr. - Assim /usr contém todos - os binários necessários para o sistema executar. Para - LFS, uma partição separada para /usr normalmente não é necessária. - Se você precisar dela de qualquer maneira, então você - deveria tornar uma partição grande o suficiente para - acomodar todos os aplicativos e bibliotecas no - sistema. A partição raiz pode ser bem pequena (talvez - apenas um gigabyte) nessa configuração, de forma que - ela seja adequada para um "thin client" ou estação de - trabalho sem disco (onde /usr é montado a partir de um - servidor remoto). Entretanto, você deveria tomar - cuidado que um initramfs (não coberto por LFS) será - necessário para inicializar um sistema com partição - /usr separada. -

    -
  • -
  • -

    - /opt – Esse diretório é mais útil para BLFS - onde múltiplas instalações de pacotes grandes como - Gnome ou KDE podem ser instalados sem embutir os - arquivos na hierarquia /usr. Se usado, 5 a 10 - gigabytes geralmente é adequado. -

    -
  • -
  • -

    - /tmp – Um diretório /tmp separado é raro, mas - útil ao se configurar um "thin client". Essa - partição, se usada, geralmente não precisará exceder - alguns gigabytes. -

    -
  • -
  • -

    - /usr/src – Essa partição é muito útil para - disponibilizar uma localização para armazenar os - arquivos fontes de BLFS e compartilhá-los entre - construções LFS. Ela também pode ser usada como uma - localização para construir pacotes BLFS. Uma partição - razoavelmente grande de 30 a 50 gigabytes permite - muito espaço. -

    -
  • -
-
-

- Qualquer partição separada que você queira que seja montada - automaticamente durante a inicialização precisa ser - especificada no /etc/fstab. - Detalhes sobre como especificar partições serão discutidos - em Seção 10.2, - “Criando o Arquivo /etc/fstab”. -

-
-
-
-
-
-
-
-

- 2.5. - Criando um Sistema de Arquivos na Partição -

-
-
-
-

- Agora que uma partição em branco foi configurada, o sistema de - arquivos pode ser criado. LFS pode usar qualquer sistema de - arquivos reconhecido pelo kernel Linux, mas os tipos mais - comuns são ext3 e ext4. A escolha do sistema de arquivos pode - ser complexa e depende das características dos arquivos e o - tamanho da partição. Por exemplo: -

-
-
-
- ext2 -
-
-

- é adequado para partições pequenas que são atualizadas - com pouca frequência tais como /boot. -

-
-
- ext3 -
-
-

- é uma atualização do ext2 que inclui journal para ajudar - a recuperar o status da partição no caso de desligamento - inadequado. É comumente usada como sistema de arquivos de - propósito geral. -

-
-
- ext4 -
-
-

- é a versão mais nova da família de sistema de arquivos - ext de tipos de partição. Ela fornece várias capacidades - novas incluindo marcas temporais em nano segundos, - criação e uso de arquivos muito grandes (16 TB), e - melhoramentos de velocidade. -

-
-
-
-

- Outros sistemas de arquivos, incluindo FAT32, NTFS, ReiserFS, - JFS, e XFS são úteis para propósitos especializados. Mais - informação sobre esses sistemas de arquivos pode ser encontrada - em http://en.wikipedia.org/wiki/Comparison_of_file_systems. -

-

- LFS assume que o sistema de arquivos raiz (/) é do tipo ext4. - Para criar um sistema de arquivos ext4 na partição LFS, execute o seguinte: -

-
mkfs -v -t ext4 /dev/<xxx>
-

- Substitua <xxx> - com o nome da partição LFS. -

-

- Se você está usando uma partição swap existente, então não há necessidade de - formatá-la. Se uma nova partição swap foi criada, então ela precisará ser - inicializada com este comando: -

-
mkswap /dev/<yyy>
-

- Substitua <yyy> - com o nome da partição swap. -

-
-
-
-
-
-

- 2.6. Configurando a - Variável $LFS -

-
-
-
-

- Ao longo deste livro, a variável de ambiente LFS será usada muitas vezes. Você deveria se - assegurar de que essa variável sempre está definida no decorrer - do processo de construção de LFS. Ela deveria ser configurada - para o nome do diretório onde você estará construindo seu - sistema LFS - nós usaremos /mnt/lfs como um exemplo, porém a escolha do - diretório cabe totalmente a você. Se você está construindo LFS - em uma partição separada, então esse diretório será o ponto de - montagem para a partição. Escolha uma localização de diretório - e configure a variável com o seguinte comando: -

-
export LFS=/mnt/lfs
-

- Ter essa variável configurada é benéfico naqueles comandos tais - como mkdir -v - $LFS/tools os quais podem ser digitados - literalmente. O interpretador de comandos automaticamente - substituirá $LFS com /mnt/lfs (ou para o que a variável - foi configurada) quando ele processar a linha de comando. -

-
-

- Cuidado -

-

- Não se esqueça de verificar se LFS - está configurada quando você deixar e entrar novamente no - ambiente atual de trabalho (como quando fizer um su para root ou outra(o) usuária(o)). Verifique - se a variável LFS está configurada - apropriadamente com: -

-
echo $LFS
-

- Tenha certeza de que a saída mostra o caminho para sua - localização de construção do sistema LFS, a qual é - /mnt/lfs se o exemplo fornecido - foi seguido. Se a saída estiver incorreta, então use o - comando dado anteriormente nesta página para configurar - $LFS para o nome correto de - diretório. -

-
-
-

- Nota -

-

- Uma maneira de assegurar que a variável LFS sempre está configurada é editar o arquivo - .bash_profile tanto em seu - diretório home pessoal quanto em /root/.bash_profile e inserir o comando - export acima. Adicionalmente, o interpretador de comandos - especificado no arquivo /etc/passwd para todas(os) as(os) - usuárias(os) que precisam da variável LFS precisa ser bash para assegurar que o - arquivo /root/.bash_profile é - incorporado como parte do processo de login. -

-

- Outra consideração é o método que é usado para logar no - sistema anfitrião. Se logando por intermédio de um - gerenciador gráfico de tela, então o .bash_profile da(o) usuária(o) normalmente - não é usado quando um terminal virtual é iniciado. Nesse - caso, adicione o comando export ao arquivo .bashrc para a(o) usuária(o) e root. Adicionalmente, algumas - distribuições tem instruções para não executar as instruções - de .bashrc em uma invocação não - interativa de bash. Certifique-se de adicionar o comando - export antes do teste para uso não interativo. -

-
-
-
-
-
-
-

- 2.7. Montando a Nova - Partição -

-
-
-
-

- Agora que um sistema de arquivos foi criado, a partição precisa - se tornar acessível. Para fazer isso, a partição precisa ser - montada em um ponto de montagem escolhido. Para os propósitos - deste livro, assume-se que o sistema de arquivos está montado - sob o diretório especificado pela variável de ambiente - LFS conforme descrito na seção - anterior. -

-

- Crie o ponto de montagem e monte o sistema de arquivos de LFS - executando: -

-
mkdir -pv $LFS
-mount -v -t ext4 /dev/<xxx> $LFS
-

- Substitua <xxx> - com a designação da partição LFS. -

-

- Se estiver usando múltiplas partições para LFS (por exemplo, - uma para / e outra para - /home), então monte-as usando: -

-
mkdir -pv $LFS
-mount -v -t ext4 /dev/<xxx> $LFS
-mkdir -v $LFS/home
-mount -v -t ext4 /dev/<yyy> $LFS/home
-

- Substitua <xxx> - e <yyy> com os - nomes apropriados das partições. -

-

- Assegure-se de que essa nova partição não está montada com - permissões que são muito restritivas (tais como as opções - nosuid ou nodev). Execute o comando mount sem quaisquer - parâmetros para ver quais opções estão configuradas para a - partição LFS montada. Se nosuid e - (ou) nodev estiverem configuradas, - então a partição precisará ser remontada. -

-
-

- Atenção -

-

- As instruções acima assumem que você não estará reiniciando - seu computador no decorrer do processo LFS. Se você desligar - seu sistema, então você precisará remontar a partição LFS a - cada vez que você reiniciar o processo de construção ou - modificar seu arquivo /etc/fstab do sistema anfitrião para - remontá-la automaticamente após inicialização. Por exemplo: -

-
/dev/<xxx>  /mnt/lfs ext4   defaults      1     1
-

- Se você usa partições adicionais opcionais, então - certifique-se de adicioná-las também. -

-
-

- Se você estiver usando uma partição swap, então assegure-se de que ela está - habilitada usando o comando swapon: -

-
/sbin/swapon -v /dev/<zzz>
-

- Substitua <zzz> - com o nome da partição swap. -

-

- Agora que existe um lugar estabelecido para trabalhar, é tempo - de baixar os pacotes. -

-
-
-
-
-
-
-

- Capítulo 3. Pacotes e - Patches -

-
-
-
-
-
-
-
-

- 3.1. Introdução -

-
-
-
-

- Este capítulo inclui uma lista de pacotes que precisam ser - baixados para construir um sistema Linux básico. Os números de - versão listados correspondem a versões dos aplicativos que são - conhecidos por funcionar, e este livro é baseado no uso deles. - Nós recomendamos veementemente contra o uso de versões - diferentes, pois os comandos de construção para uma versão - talvez não funcionem com uma versão diferente, a menos que a - versão diferente seja especificada por uma errata de LFS ou - conselho de segurança. As versões mais novas de pacote talvez - também tenham problemas que exigem contornos. Essas correções - serão desenvolvidas e estabilizadas na versão de - desenvolvimento do livro. -

-

- Para alguns pacotes, o tarball de lançamento e o tarball - instantâneo de repositório (Git ou SVN) para este lançamento - talvez seja publicado com nome semelhante de arquivo. Um - tarball de lançamento contém arquivos generalizados (por - exemplo, o script configure gerado por - autoconf), em - adição aos conteúdos do correspondente instantâneo de - repositório. O livro usa tarballs de lançamento quando - possível. Usar um instantâneo de repositório em vez de um - tarball de lançamento especificado pelo livro causará - problemas. -

-

- Localizações de downloads nem sempre podem estar acessíveis. Se - uma localização de download mudou desde que este livro foi - publicado, então o Google (http://www.google.com/) fornece um - motor de busca útil para a maioria dos pacotes. Se essa busca - for mal sucedida, então tente um dos meios alternativos de - download em https://www.linuxfromscratch.org/lfs/mirrors.html#files. -

-

- Pacotes e patches baixados precisarão ser armazenados em algum - lugar que esteja convenientemente disponível durante a - construção inteira. Um diretório de trabalho também é exigido - para desempacotar os fontes e construí-los. $LFS/sources pode ser usado tanto como o - lugar para armazenar os tarballs e patches quanto como - diretório de trabalho. Usando esse diretório, os elementos - exigidos estarão localizados na partição LFS e estarão - disponíveis durante todos os estágios do processo de - construção. -

-

- Para criar esse diretório, execute o seguinte comando, como - usuária(o) root, antes de - começar a sessão de download: -

-
mkdir -v $LFS/sources
-

- Torne esse diretório gravável e "sticky". Sticky - significa que mesmo se múltiplas(os) usuárias(os) tenham - permissão de escrita, só a(o) dona(o) de um arquivo pode - deletar o arquivo dentro de um diretório sticky. O seguinte - comando habilitará os modos escrita e sticky: -

-
chmod -v a+wt $LFS/sources
-

- Existem muitas maneiras para obter todos os pacotes e patches - necessários para construir LFS: -

-
-
    -
  • -

    - Os arquivos podem ser baixados individualmente conforme - descrito nas próximas duas seções. -

    -
  • -
  • -

    - Para versões estáveis do livro, um tarball de todos os - arquivos necessários pode ser baixado a partir de um dos - espelhos de arquivos de LFS listados em https://www.linuxfromscratch.org/mirrors.html#files. -

    -
  • -
  • -

    - Os arquivos podem ser baixados usando wget e uma lista wget - conforme descrito abaixo. -

    -
  • -
-
-

- Para baixar todos os pacotes e patches usando lista-wget como uma entrada para o - comando wget, - use: -

-
wget --input-file=lista-wget --continue --directory-prefix=$LFS/sources
-
-

- Nota -

-

- O arquivo lista-wget mencionado - acima recupera todos os pacotes para as versões sysV e - systemd de LFS. Existe um total de cinco pacotes pequenos - adicionais não necessários para o livro atual. O arquivo - md5sums mencionado abaixo é - específico para o livro atual. -

-
-

- Adicionalmente, começando com LFS-7.0, existe um arquivo - separado, md5sums, que - pode ser usado para verificar se todos os pacotes corretos - estão disponíveis antes de prosseguir. Coloque esse arquivo em - $LFS/sources e execute: -

-
pushd $LFS/sources
-  md5sum -c md5sums
-popd
-

- Essa verificação pode ser usada após recuperar os arquivos - necessários com qualquer dos métodos listados acima. -

-
-
-
-
-
-

- 3.2. Todos os Pacotes -

-
-
-
-

- Baixe ou de outra forma obtenha os seguintes pacotes: -

-
-
-
-
- Acl (2.3.1) - 348 - KB: -
-
-

- Home page: https://savannah.nongnu.org/projects/acl -

-

- Download: - https://download.savannah.gnu.org/releases/acl/acl-2.3.1.tar.xz -

-

- MD5 sum: 95ce715fe09acca7c12d3306d0f076b2 -

-
-
- Attr (2.5.1) - 456 - KB: -
-
-

- Home page: https://savannah.nongnu.org/projects/attr -

-

- Download: - https://download.savannah.gnu.org/releases/attr/attr-2.5.1.tar.gz -

-

- MD5 sum: ac1c5a7a084f0f83b8cace34211f64d8 -

-
-
- Autoconf (2.71) - 1,263 KB: -
-
-

- Home page: https://www.gnu.org/software/autoconf/ -

-

- Download: - https://ftp.gnu.org/gnu/autoconf/autoconf-2.71.tar.xz -

-

- MD5 sum: 12cfa1687ffa2606337efe1a64416106 -

-
-
- Automake (1.16.5) - 1,565 KB: -
-
-

- Home page: https://www.gnu.org/software/automake/ -

-

- Download: - https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.xz -

-

- MD5 sum: 4017e96f89fca45ca946f1c5db6be714 -

-

- SHA256 sum: 80facc09885a57e6d49d06972c0ae1089c5fa8f4d4c7cfe5baea58e5085f136d -

-
-
- Bash (5.1.16) - 10,277 KB: -
-
-

- Home page: https://www.gnu.org/software/bash/ -

-

- Download: https://ftp.gnu.org/gnu/bash/bash-5.1.16.tar.gz -

-

- MD5 sum: c17b20a09fc38d67fb303aeb6c130b4e -

-
-
- Bc (5.2.2) - 428 - KB: -
-
-

- Home page: https://git.yzena.com/gavin/bc -

-

- Download: - https://github.com/gavinhoward/bc/releases/download/5.2.2/bc-5.2.2.tar.xz -

-

- MD5 sum: 632344cdb052af0e06087bd3b0034126 -

-
-
- Binutils (2.38) - 23,098 KB: -
-
-

- Home page: https://www.gnu.org/software/binutils/ -

-

- Download: - https://ftp.gnu.org/gnu/binutils/binutils-2.38.tar.xz -

-

- MD5 sum: 6e39cad1bb414add02b5b1169c18fdc5 -

-
-
- Bison (3.8.2) - 2,752 KB: -
-
-

- Home page: https://www.gnu.org/software/bison/ -

-

- Download: https://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.xz -

-

- MD5 sum: c28f119f405a2304ff0a7ccdcc629713 -

-
-
- Bzip2 (1.0.8) - 792 KB: -
-
-

- Download: - https://www.sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz -

-

- MD5 sum: 67e051268d0c475ea773822f7500d0e5 -

-
-
- Check (0.15.2) - 760 KB: -
-
-

- Home page: https://libcheck.github.io/check -

-

- Download: - https://github.com/libcheck/check/releases/download/0.15.2/check-0.15.2.tar.gz -

-

- MD5 sum: 50fcafcecde5a380415b12e9c574e0b2 -

-
-
- Coreutils (9.0) - 5,482 KB: -
-
-

- Home page: https://www.gnu.org/software/coreutils/ -

-

- Download: - https://ftp.gnu.org/gnu/coreutils/coreutils-9.0.tar.xz -

-

- MD5 sum: 0d79ae8a6124546e3b94171375e5e5d0 -

-
-
- D-Bus (1.12.20) - 2,048 KB: -
-
-

- Home page: https://www.freedesktop.org/wiki/Software/dbus -

-

- Download: - https://dbus.freedesktop.org/releases/dbus/dbus-1.12.20.tar.gz -

-

- MD5 sum: dfe8a71f412e0b53be26ed4fbfdc91c4 -

-
-
- DejaGNU (1.6.3) - 608 KB: -
-
-

- Home page: https://www.gnu.org/software/dejagnu/ -

-

- Download: https://ftp.gnu.org/gnu/dejagnu/dejagnu-1.6.3.tar.gz -

-

- MD5 sum: 68c5208c58236eba447d7d6d1326b821 -

-
-
- Diffutils (3.8) - 1,548 KB: -
-
-

- Home page: https://www.gnu.org/software/diffutils/ -

-

- Download: - https://ftp.gnu.org/gnu/diffutils/diffutils-3.8.tar.xz -

-

- MD5 sum: 6a6b0fdc72acfe3f2829aab477876fbc -

-
-
- E2fsprogs (1.46.5) - 9,307 KB: -
-
-

- Home page: http://e2fsprogs.sourceforge.net/ -

-

- Download: - https://downloads.sourceforge.net/project/e2fsprogs/e2fsprogs/v1.46.5/e2fsprogs-1.46.5.tar.gz -

-

- MD5 sum: 3da91854c960ad8a819b48b2a404eb43 -

-
-
- Elfutils (0.186) - 9,015 KB: -
-
-

- Home page: https://sourceware.org/elfutils/ -

-

- Download: - https://sourceware.org/ftp/elfutils/0.186/elfutils-0.186.tar.bz2 -

-

- MD5 sum: 2c095e31e35d6be7b3718477b6d52702 -

-
-
- Expat (2.4.6) - 444 KB: -
-
-

- Home page: https://libexpat.github.io/ -

-

- Download: - https://prdownloads.sourceforge.net/expat/expat-2.4.6.tar.xz -

-

- MD5 sum: 22a30c888752fdda9f8dd1b7281c54b0 -

-
-

- Nota -

-

- A(O) Desenvolvedora(or) talvez remova tarballs dos - lançamentos específicos de Expat quando esses lançamentos - contenham uma vulnerabilidade de segurança. Você - deveria se referir a Avisos - de Segurança de LFS para saber qual versão (com a - vulnerabilidade corrigida) deveria ser usada. Você - talvez baixe a versão vulnerável a partir de um - espelho, porém isso não é recomendado. -

-
-
-
- Expect (5.45.4) - 618 KB: -
-
-

- Home page: https://core.tcl.tk/expect/ -

-

- Download: - https://prdownloads.sourceforge.net/expect/expect5.45.4.tar.gz -

-

- MD5 sum: 00fce8de158422f5ccd2666512329bd2 -

-
-
- File (5.41) - 1040 - KB: -
-
-

- Home page: https://www.darwinsys.com/file/ -

-

- Download: https://astron.com/pub/file/file-5.41.tar.gz -

-

- MD5 sum: 18233bb0a0089dfdc7dfbc93b96f231b -

-
-
- Findutils (4.9.0) - 1,999 KB: -
-
-

- Home page: https://www.gnu.org/software/findutils/ -

-

- Download: - https://ftp.gnu.org/gnu/findutils/findutils-4.9.0.tar.xz -

-

- MD5 sum: 4a4a547e888a944b2f3af31d789a1137 -

-
-
- Flex (2.6.4) - 1,386 KB: -
-
-

- Home page: https://github.com/westes/flex -

-

- Download: - https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz -

-

- MD5 sum: 2882e3179748cc9f9c23ec593d6adc8d -

-
-
- Gawk (5.1.1) - 3,075 KB: -
-
-

- Home page: https://www.gnu.org/software/gawk/ -

-

- Download: https://ftp.gnu.org/gnu/gawk/gawk-5.1.1.tar.xz -

-

- MD5 sum: 83650aa943ff2fd519b2abedf8506ace -

-
-
- GCC (11.2.0) - 78,996 KB: -
-
-

- Home page: https://gcc.gnu.org/ -

-

- Download: - https://ftp.gnu.org/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.xz -

-

- MD5 sum: 31c86f2ced76acac66992eeedce2fce2 -

-

- SHA256 sum: d08edc536b54c372a1010ff6619dd274c0f1603aa49212ba20f7aa2cda36fa8b -

-
-
- GDBM (1.23) - 1,092 KB: -
-
-

- Home page: https://www.gnu.org/software/gdbm/ -

-

- Download: https://ftp.gnu.org/gnu/gdbm/gdbm-1.23.tar.gz -

-

- MD5 sum: 8551961e36bf8c70b7500d255d3658ec -

-
-
- Gettext (0.21) - 9,487 KB: -
-
-

- Home page: https://www.gnu.org/software/gettext/ -

-

- Download: https://ftp.gnu.org/gnu/gettext/gettext-0.21.tar.xz -

-

- MD5 sum: 40996bbaf7d1356d3c22e33a8b255b31 -

-
-
- Glibc (2.35) - 17,741 KB: -
-
-

- Home page: https://www.gnu.org/software/libc/ -

-

- Download: https://ftp.gnu.org/gnu/glibc/glibc-2.35.tar.xz -

-

- MD5 sum: dd571c67d85d89d7f60b854a4e207423 -

-
-
- GMP (6.2.1) - 1,980 KB: -
-
-

- Home page: https://www.gnu.org/software/gmp/ -

-

- Download: https://ftp.gnu.org/gnu/gmp/gmp-6.2.1.tar.xz -

-

- MD5 sum: 0b82665c4a92fd2ade7440c13fcaa42b -

-
-
- Gperf (3.1) - 1,188 KB: -
-
-

- Home page: https://www.gnu.org/software/gperf/ -

-

- Download: https://ftp.gnu.org/gnu/gperf/gperf-3.1.tar.gz -

-

- MD5 sum: 9e251c0a618ad0824b51117d5d9db87e -

-
-
- Grep (3.7) - 1,603 - KB: -
-
-

- Home page: https://www.gnu.org/software/grep/ -

-

- Download: https://ftp.gnu.org/gnu/grep/grep-3.7.tar.xz -

-

- MD5 sum: 7c9cca97fa18670a21e72638c3e1dabf -

-
-
- Groff (1.22.4) - 4,044 KB: -
-
-

- Home page: https://www.gnu.org/software/groff/ -

-

- Download: https://ftp.gnu.org/gnu/groff/groff-1.22.4.tar.gz -

-

- MD5 sum: 08fb04335e2f5e73f23ea4c3adbf0c5f -

-
-
- GRUB (2.06) - 6,428 KB: -
-
-

- Home page: https://www.gnu.org/software/grub/ -

-

- Download: https://ftp.gnu.org/gnu/grub/grub-2.06.tar.xz -

-

- MD5 sum: cf0fd928b1e5479c8108ee52cb114363 -

-
-
- Gzip (1.11) - 786 - KB: -
-
-

- Home page: https://www.gnu.org/software/gzip/ -

-

- Download: https://ftp.gnu.org/gnu/gzip/gzip-1.11.tar.xz -

-

- MD5 sum: d1e93996dba00cab0caa7903cd01d454 -

-
-
- Iana-Etc (20220207) - 580 KB: -
-
-

- Home page: https://www.iana.org/protocols -

-

- Download: - https://github.com/Mic92/iana-etc/releases/download/20220207/iana-etc-20220207.tar.gz -

-

- MD5 sum: 81d865ce7fe4240d5abed48c3ca5fa9f -

-
-
- Inetutils (2.2) - 1,494 KB: -
-
-

- Home page: https://www.gnu.org/software/inetutils/ -

-

- Download: - https://ftp.gnu.org/gnu/inetutils/inetutils-2.2.tar.xz -

-

- MD5 sum: de8c1b49cbde2b30e481c61c65357ad4 -

-

- SHA256 sum: 01b9a4bc73a47e63f6e8a07b76122d9ad2a2e46ebf14870e9c91d660b5647a22 -

-
-
- Intltool (0.51.0) - 159 KB: -
-
-

- Home page: https://freedesktop.org/wiki/Software/intltool -

-

- Download: - https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz -

-

- MD5 sum: 12e517cac2b57a0121cda351570f1e63 -

-
-
- IPRoute2 (5.16.0) - 843 KB: -
-
-

- Home page: https://www.kernel.org/pub/linux/utils/net/iproute2/ -

-

- Download: - https://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-5.16.0.tar.xz -

-

- MD5 sum: 994c1bad2a24aa9d70e89670c5b5dfcb -

-
-
- Jinja2 (3.0.3) - 263 KB: -
-
-

- Home page: https://jinja.palletsprojects.com/en/3.0.x/ -

-

- Download: - https://files.pythonhosted.org/packages/source/J/Jinja2/Jinja2-3.0.3.tar.gz -

-

- MD5 sum: b76ae2f0647abebc81e7c03f5fb7b00f -

-
-
- Kbd (2.4.0) - 1,095 KB: -
-
-

- Home page: https://kbd-project.org/ -

-

- Download: - https://www.kernel.org/pub/linux/utils/kbd/kbd-2.4.0.tar.xz -

-

- MD5 sum: 3cac5be0096fcf7b32dcbd3c53831380 -

-
-
- Kmod (29) - 548 - KB: -
-
-

- Download: - https://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-29.tar.xz -

-

- MD5 sum: e81e63acd80697d001c8d85c1acb38a0 -

-
-
- Less (590) - 348 - KB: -
-
-

- Home page: https://www.greenwoodsoftware.com/less/ -

-

- Download: - https://www.greenwoodsoftware.com/less/less-590.tar.gz -

-

- MD5 sum: f029087448357812fba450091a1172ab -

-
-
- Libcap (2.63) - 171 KB: -
-
-

- Home page: https://sites.google.com/site/fullycapable/ -

-

- Download: - https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-2.63.tar.xz -

-

- MD5 sum: 18410cec436f827e698ee9ea16ada9b7 -

-
-
- Libffi (3.4.2) - 1,320 KB: -
-
-

- Home page: https://sourceware.org/libffi/ -

-

- Download: - https://github.com/libffi/libffi/releases/download/v3.4.2/libffi-3.4.2.tar.gz -

-

- MD5 sum: 294b921e6cf9ab0fbaea4b639f8fdbe8 -

-
-
- Libpipeline (1.5.5) - 934 KB: -
-
-

- Home page: http://libpipeline.nongnu.org/ -

-

- Download: - https://download.savannah.gnu.org/releases/libpipeline/libpipeline-1.5.5.tar.gz -

-

- MD5 sum: 3e725c76bfea1985e87e851ee50c2e29 -

-
-
- Libtool (2.4.6) - 951 KB: -
-
-

- Home page: https://www.gnu.org/software/libtool/ -

-

- Download: https://ftp.gnu.org/gnu/libtool/libtool-2.4.6.tar.xz -

-

- MD5 sum: 1bfb9b923f2c1339b4d2ce1807064aa5 -

-
-
- Linux (5.16.9) - 124,577 KB: -
-
-

- Home page: https://www.kernel.org/ -

-

- Download: - https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.16.9.tar.xz -

-

- MD5 sum: 4d6a704bf3e249ef6189b6f17457084b -

-
-

- Nota -

-

- O kernel Linux é atualizado com relativa frequência, - muitas vezes devido às descobertas de - vulnerabilidades de segurança. A versão estável de - kernel mais atual disponível pode ser usada, a menos - que a página de errata diga o contrário. -

-

- Para usuárias(os) com largura de banda de velocidade - limitada ou cara que desejem atualizar o kernel - Linux, uma versão básica do pacote e patches pode ser - baixada separadamente. Isso talvez economize algum - tempo ou custo para uma posterior atualização de - nível de patch contendo um lançamento menor. -

-
-
-
- M4 (1.4.19) - 1,617 KB: -
-
-

- Home page: https://www.gnu.org/software/m4/ -

-

- Download: https://ftp.gnu.org/gnu/m4/m4-1.4.19.tar.xz -

-

- MD5 sum: 0d90823e1426f1da2fd872df0311298d -

-
-
- Make (4.3) - 2,263 - KB: -
-
-

- Home page: https://www.gnu.org/software/make/ -

-

- Download: https://ftp.gnu.org/gnu/make/make-4.3.tar.gz -

-

- MD5 sum: fc7a67ea86ace13195b0bce683fd4469 -

-
-
- Man-DB (2.10.1) - 1,847 KB: -
-
-

- Home page: https://www.nongnu.org/man-db/ -

-

- Download: - https://download.savannah.gnu.org/releases/man-db/man-db-2.10.1.tar.xz -

-

- MD5 sum: b03b76a9a00d0d6b2299b823fba4f579 -

-
-
- Man-pages (5.13) - 1,752 KB: -
-
-

- Home page: https://www.kernel.org/doc/man-pages/ -

-

- Download: - https://www.kernel.org/pub/linux/docs/man-pages/man-pages-5.13.tar.xz -

-

- MD5 sum: 3ac24e8c6fae26b801cb87ceb63c0a30 -

-
-
- MarkupSafe (2.0.1) - 20 KB: -
-
-

- Home page: https://markupsafe.palletsprojects.com/en/2.0.x/ -

-

- Download: - https://files.pythonhosted.org/packages/source/M/MarkupSafe/MarkupSafe-2.0.1.tar.gz -

-

- MD5 sum: 892e0fefa3c488387e5cc0cad2daa523 -

-
-
- Meson (0.61.1) - 1,963 KB: -
-
-

- Home page: https://mesonbuild.com -

-

- Download: - https://github.com/mesonbuild/meson/releases/download/0.61.1/meson-0.61.1.tar.gz -

-

- MD5 sum: 8ed66d5537275df3defffb66d1fb897f -

-
-
- MPC (1.2.1) - 820 - KB: -
-
-

- Home page: http://www.multiprecision.org/ -

-

- Download: https://ftp.gnu.org/gnu/mpc/mpc-1.2.1.tar.gz -

-

- MD5 sum: 9f16c976c25bb0f76b50be749cd7a3a8 -

-
-
- MPFR (4.1.0) - 1,490 KB: -
-
-

- Home page: https://www.mpfr.org/ -

-

- Download: https://www.mpfr.org/mpfr-4.1.0/mpfr-4.1.0.tar.xz -

-

- MD5 sum: bdd3d5efba9c17da8d83a35ec552baef -

-
-
- Ncurses (6.3) - 3,500 KB: -
-
-

- Home page: https://www.gnu.org/software/ncurses/ -

-

- Download: - https://invisible-mirror.net/archives/ncurses/ncurses-6.3.tar.gz -

-

- MD5 sum: a2736befde5fee7d2b7eb45eb281cdbe -

-
-
- Ninja (1.10.2) - 209 KB: -
-
-

- Home page: https://ninja-build.org/ -

-

- Download: - https://github.com/ninja-build/ninja/archive/v1.10.2/ninja-1.10.2.tar.gz -

-

- MD5 sum: 639f75bc2e3b19ab893eaf2c810d4eb4 -

-
-
- OpenSSL (3.0.1) - 14,660 KB: -
-
-

- Home page: https://www.openssl.org/ -

-

- Download: https://www.openssl.org/source/openssl-3.0.1.tar.gz -

-

- MD5 sum: 7d07e849d77d276891edd579a8832bb3 -

-
-
- Patch (2.7.6) - 766 KB: -
-
-

- Home page: https://savannah.gnu.org/projects/patch/ -

-

- Download: https://ftp.gnu.org/gnu/patch/patch-2.7.6.tar.xz -

-

- MD5 sum: 78ad9937e4caadcba1526ef1853730d5 -

-
-
- Perl (5.34.0) - 12,580 KB: -
-
-

- Home page: https://www.perl.org/ -

-

- Download: https://www.cpan.org/src/5.0/perl-5.34.0.tar.xz -

-

- MD5 sum: df7ecb0653440b26dc951ad9dbfab517 -

-
-
- Pkg-config (0.29.2) - 1,970 KB: -
-
-

- Home page: https://www.freedesktop.org/wiki/Software/pkg-config -

-

- Download: - https://pkg-config.freedesktop.org/releases/pkg-config-0.29.2.tar.gz -

-

- MD5 sum: f6e931e319531b736fadc017f470e68a -

-
-
- Procps (3.3.17) - 985 KB: -
-
-

- Home page: https://sourceforge.net/projects/procps-ng -

-

- Download: - https://sourceforge.net/projects/procps-ng/files/Production/procps-ng-3.3.17.tar.xz -

-

- MD5 sum: d60613e88c2f442ebd462b5a75313d56 -

-
-
- Psmisc (23.4) - 362 KB: -
-
-

- Home page: https://gitlab.com/psmisc/psmisc -

-

- Download: - https://sourceforge.net/projects/psmisc/files/psmisc/psmisc-23.4.tar.xz -

-

- MD5 sum: 8114cd4489b95308efe2509c3a406bbf -

-
-
- Python (3.10.2) - 18,341 KB: -
-
-

- Home page: https://www.python.org/ -

-

- Download: - https://www.python.org/ftp/python/3.10.2/Python-3.10.2.tar.xz -

-

- MD5 sum: 14e8c22458ed7779a1957b26cde01db9 -

-
-
- Documentação de Python (3.10.2) - - 7,102 KB: -
-
-

- Download: - https://www.python.org/ftp/python/doc/3.10.2/python-3.10.2-docs-html.tar.bz2 -

-

- MD5 sum: ffa52f0017baf72df9d32dec785fd6ab -

-
-
- Readline (8.1.2) - 2,923 KB: -
-
-

- Home page: https://tiswww.case.edu/php/chet/readline/rltop.html -

-

- Download: - https://ftp.gnu.org/gnu/readline/readline-8.1.2.tar.gz -

-

- MD5 sum: 12819fa739a78a6172400f399ab34f81 -

-
-
- Sed (4.8) - 1,317 - KB: -
-
-

- Home page: https://www.gnu.org/software/sed/ -

-

- Download: https://ftp.gnu.org/gnu/sed/sed-4.8.tar.xz -

-

- MD5 sum: 6d906edfdb3202304059233f51f9a71d -

-
-
- Shadow (4.11.1) - 1,618 KB: -
-
-

- Home page: https://shadow-maint.github.io/shadow/ -

-

- Download: - https://github.com/shadow-maint/shadow/releases/download/v4.11.1/shadow-4.11.1.tar.xz -

-

- MD5 sum: 5a95ec069aa91508167d02fecafaa912 -

-
-
- Systemd (250) - 10,856 KB: -
-
-

- Home page: https://www.freedesktop.org/wiki/Software/systemd/ -

-

- Download: - https://github.com/systemd/systemd/archive/v250/systemd-250.tar.gz -

-

- MD5 sum: 8929beb037c587ada4ed201f19756fe2 -

-
-
- Systemd Man Pages(250) - 596 KB: -
-
-

- Home page: https://www.freedesktop.org/wiki/Software/systemd/ -

-

- Download: - https://anduin.linuxfromscratch.org/LFS/systemd-man-pages-250.tar.xz -

-

- MD5 sum: af3aca39abe4e990cb2a9ac63dcdf506 -

-
-

- Nota -

-

- A equipe de Linux From Scratch gera seu próprio - tarball das páginas de manual usando o fonte systemd. - Isso é feito com a finalidade de evitar dependências - desnecessárias. -

-
-
-
- Tar (1.34) - 2,174 - KB: -
-
-

- Home page: https://www.gnu.org/software/tar/ -

-

- Download: https://ftp.gnu.org/gnu/tar/tar-1.34.tar.xz -

-

- MD5 sum: 9a08d29a9ac4727130b5708347c0f5cf -

-
-
- Tcl (8.6.12) - 10,112 KB: -
-
-

- Home page: http://tcl.sourceforge.net/ -

-

- Download: - https://downloads.sourceforge.net/tcl/tcl8.6.12-src.tar.gz -

-

- MD5 sum: 87ea890821d2221f2ab5157bc5eb885f -

-
-
- Documentação de Tcl (8.6.12) - - 1,176 KB: -
-
-

- Download: - https://downloads.sourceforge.net/tcl/tcl8.6.12-html.tar.gz -

-

- MD5 sum: a0d1a5b60bbb68f2f0bd3066a19c527a -

-
-
- Texinfo (6.8) - 4,848 KB: -
-
-

- Home page: https://www.gnu.org/software/texinfo/ -

-

- Download: https://ftp.gnu.org/gnu/texinfo/texinfo-6.8.tar.xz -

-

- MD5 sum: a91b404e30561a5df803e6eb3a53be71 -

-
-
- Dados de Zona de Tempo (2021e) - - 413 KB: -
-
-

- Home page: https://www.iana.org/time-zones -

-

- Download: - https://www.iana.org/time-zones/repository/releases/tzdata2021e.tar.gz -

-

- MD5 sum: 4fdfad906ebc85fef30221c10964cce9 -

-
-
- Util-linux (2.37.4) - 5,971 KB: -
-
-

- Home page: - https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/ -

-

- Download: - https://www.kernel.org/pub/linux/utils/util-linux/v2.37/util-linux-2.37.4.tar.xz -

-

- MD5 sum: 755919e658c349cad9e1c7c771742d48 -

-
-
- Vim (8.2.4383) - 15,622 KB: -
-
-

- Home page: https://www.vim.org -

-

- Download: - https://anduin.linuxfromscratch.org/LFS/vim-8.2.4383.tar.gz -

-

- MD5 sum: 3168ff48e382a1201bd0cbd0209bd3e0 -

-
-

- Nota -

-

- A versão de vim muda diariamente. Para conseguir a - versão mais atual, vá para https://github.com/vim/vim/tags. -

-
-
-
- XML::Parser (2.46) - 249 KB: -
-
-

- Home page: https://github.com/chorny/XML-Parser -

-

- Download: - https://cpan.metacpan.org/authors/id/T/TO/TODDR/XML-Parser-2.46.tar.gz -

-

- MD5 sum: 80bb18a8e6240fcf7ec2f7b57601c170 -

-
-
- Xz Utils (5.2.5) - 1,122 KB: -
-
-

- Home page: https://tukaani.org/xz -

-

- Download: https://tukaani.org/xz/xz-5.2.5.tar.xz -

-

- MD5 sum: aa1621ec7013a19abab52a8aff04fe5b -

-
-
- Zlib (1.2.11) - 457 KB: -
-
-

- Home page: https://www.zlib.net/ -

-

- Download: https://zlib.net/zlib-1.2.11.tar.xz -

-

- MD5 sum: 85adef240c5f370b308da8c938951a68 -

-
-
- Zstd (1.5.2) - 1,892 KB: -
-
-

- Home page: https://facebook.github.io/zstd/ -

-

- Download: - https://github.com/facebook/zstd/releases/download/v1.5.2/zstd-1.5.2.tar.gz -

-

- MD5 sum: 072b10f71f5820c24761a65f31f43e73 -

-
-
-
-
-

- Tamanho total desses pacotes: cerca de 458 MB -

-
-
-
-
-
-

- 3.3. Patches Necessários -

-
-
-
-

- Em adição aos pacotes, vários patches também são exigidos. - Esses patches corrigem quaisquer erros nos pacotes que deveriam - ser consertados pela(o) Mantenedora(or). Os patches também - fazem pequenas modificações para tornar os pacotes mais fáceis - de se trabalhar. Os seguintes patches serão necessários para - construir um sistema LFS: -

-
-
-
-
- Binutils LTO Fix Patch - 3.5 KB: -
-
-

- Download: - https://www.linuxfromscratch.org/patches/lfs/11.1/binutils-2.38-lto_fix-1.patch -

-

- MD5 sum: 3df11b6123d5bbdb0fc83862a003827a -

-
-
- Patch de Documentação de Bzip2 - - 1.6 KB: -
-
-

- Download: - https://www.linuxfromscratch.org/patches/lfs/11.1/bzip2-1.0.8-install_docs-1.patch -

-

- MD5 sum: 6a5ac7e89b791aae556de0f745916f7f -

-
-
- Patch de Correções de - Internacionalização de Coreutils - 166 KB: -
-
-

- Download: - https://www.linuxfromscratch.org/patches/lfs/11.1/coreutils-9.0-i18n-1.patch -

-

- MD5 sum: 1eeba2736dfea013509f9975365e4e32 -

-
-
- Patch de Correção de Chmod de - Coreutils - 3.8 KB: -
-
-

- Download: - https://www.linuxfromscratch.org/patches/lfs/11.1/coreutils-9.0-chmod_fix-1.patch -

-

- MD5 sum: 4709df88e68279e6ef357aa819ba5b1a -

-
-
- Glibc FHS Patch - 2.8 KB: -
-
-

- Download: - https://www.linuxfromscratch.org/patches/lfs/11.1/glibc-2.35-fhs-1.patch -

-

- MD5 sum: 9a5997c3452909b1769918c759eff8a2 -

-
-
- Patch de Correção de Backspace/Delete - de Kbd - 12 KB: -
-
-

- Download: - https://www.linuxfromscratch.org/patches/lfs/11.1/kbd-2.4.0-backspace-1.patch -

-

- MD5 sum: f75cca16a38da6caa7d52151f7136895 -

-
-
- Patch de Correção de - Desenvolvedora(or) de Perl - 1.6 - KB: -
-
-

- Download: - https://www.linuxfromscratch.org/patches/lfs/11.1/perl-5.34.0-upstream_fixes-1.patch -

-

- MD5 sum: fb42558b59ed95ee00eb9f1c1c9b8056 -

-
-
- Patch de Correção de - Desenvolvedora(or) de Systemd - 20 - KB: -
-
-

- Download: - https://www.linuxfromscratch.org/patches/lfs/11.1/systemd-250-upstream_fixes-1.patch -

-

- MD5 sum: 71eac6abdad5fba2039dcd011a9ae5b3 -

-
-
-
-
-

- Tamanho total desses patches: cerca de 211.3 KB -

-

- Em adição aos patches exigidos acima, existe um número de - patches opcionais criados pela comunidade LFS. Esses patches - opcionais solucionam problemas menores ou habilitam - funcionalidade que não está habilitada por padrão. Sinta-se à - vontade para examinar o banco de dados de patches localizado em - https://www.linuxfromscratch.org/patches/downloads/ - e adquirir quaisquer patches adicionais para atender às - necessidades do seu sistema. -

-
-
-
-
-
-
-

- Capítulo 4. Preparações - Finais -

-
-
-
-
-
-
-
-

- 4.1. Introdução -

-
-
-
-

- Neste capítulo, nós realizaremos umas poucas tarefas adicionais - para preparar para construção o sistema temporário. Nós - criaremos um conjunto de diretórios em $LFS para a instalação das ferramentas - temporárias; adicionaremos uma(m) usuária(o) desprivilegiada(o) - para reduzir risco; e criaremos um ambiente apropriado de - construção para aquela(e) usuária(o). Nós também explicaremos a - unidade de tempo que usamos para medir quanto tempo pacotes de - LFS levam para construir, ou SBUs, e - daremos alguma informação acerca de suítes de teste de pacote. -

-
-
-
-
-
-

- 4.2. Criando um - layout limitado de diretório em sistema de arquivos de - LFS -

-
-
-
-

- A primeira tarefa realizada na partição LFS é a de criar uma - hierarquia limitada de diretório de forma que aplicativos - compilados em Capítulo 6 - (bem como glibc e libstdc++ em Capítulo 5) - possam ser instalados no local final deles. Isso é necessário - de maneira que aqueles aplicativos temporários sejam - sobrescritos quando reconstruí-los em Capítulo 8. -

-

- Crie o layout exigido de diretório executando o seguinte como - root: -

-
mkdir -pv $LFS/{etc,var} $LFS/usr/{bin,lib,sbin}
-
-for i in bin lib sbin; do
-  ln -sv usr/$i $LFS/$i
-done
-
-case $(uname -m) in
-  x86_64) mkdir -pv $LFS/lib64 ;;
-esac
-

- Aplicativos em Capítulo 6 - serão compilados com um compilador cruzado (mais detalhes na - seção Notas - Técnicas do Conjunto de Ferramentas). Com a finalidade de - separar esse compilador cruzado de outros aplicativos, ele será - instalado em um diretório especial. Crie esse diretório com: -

-
mkdir -pv $LFS/tools
-
-
-
-
-
-

- 4.3. Adicionando a(o) - Usuária(o) LFS -

-
-
-
-

- Enquanto logada(o) como usuária(o) root, cometer um simples erro pode - danificar ou destruir um sistema. Portanto, os pacotes nos - próximos dois capítulos são construídos como uma(m) usuária(o) - sem privilégios. Você poderia usar seu próprio nome de - usuária(o), mas para facilitar a configuração de um ambiente de - trabalho limpo, crie uma(m) nova(o) usuária(o) chamada(o) - lfs como um membro de um novo - grupo (também chamado lfs) e - use essa(e) usuária(o) durante o processo de instalação. Como - root, emita os seguintes - comandos para adicionar a(o) nova(o) usuária(o): -

-
groupadd lfs
-useradd -s /bin/bash -g lfs -m -k /dev/null lfs
-
-

- O significado das opções de linha de - comando: -

-
-
- -s - /bin/bash -
-
-

- Isso torna bash o interpretador de - comandos padrão para a(o) usuária(o) lfs. -

-
-
- -g - lfs -
-
-

- Essa opção adiciona usuária(o) lfs ao grupo lfs. -

-
-
- -m -
-
-

- Isso cria um diretório home para lfs. -

-
-
- -k - /dev/null -
-
-

- Esse parâmetro previne possível cópia de arquivos a - partir de um diretório esqueleto (padrão é /etc/skel) mudando a localização de - entrada para o dispositivo especial null. -

-
-
- lfs -
-
-

- Esse é o nome atual para a(o) usuária(o) criada(o). -

-
-
-
-

- Para se logar como lfs (em - oposição a mudar para a(o) usuária(o) lfs quando logada(o) como root, que não exige que a(o) usuária(o) - lfs tenha uma senha), dê a - lfs uma senha: -

-
passwd lfs
-

- Conceda a lfs acesso total a - todos os diretórios sob $LFS - tornando lfs a(o) dona(o) do - diretório: -

-
chown -v lfs $LFS/{usr{,/*},lib,var,etc,bin,sbin,tools}
-case $(uname -m) in
-  x86_64) chown -v lfs $LFS/lib64 ;;
-esac
-

- Se um diretório de trabalho separado foi criado como sugerido, - então dê à(ao) usuária(o) lfs a - propriedade desse diretório: -

-
chown -v lfs $LFS/sources
-
-

- Nota -

-

- Em alguns sistemas anfitrião, o seguinte comando não completa - adequadamente e suspende o login para a(o) usuária(o) lfs - para o segundo plano. Se o prompt "lfs:~$" não aparecer - imediatamente, então emitir o comando fg corrigirá o problema. -

-
-

- Em seguida, logue-se como usuária(o) lfs. Isso pode ser feito via um console - virtual; por intermédio de um gerenciador de tela; ou com o - seguinte comando de substituir/comutar usuária(o): -

-
su - lfs
-

- O - instrui - su a iniciar um - shell de login em vez de um shell de não-login. A diferença - entre esses dois tipos de shells pode ser encontrada em - detalhes em bash(1) e - info bash. -

-
-
-
-
-
-

- 4.4. Configurando o - Ambiente -

-
-
-
-

- Configure um bom ambiente de trabalho criando dois novos - arquivos de inicialização para o shell bash. Enquanto logada(o) como - usuária(o) lfs, emita o - seguinte comando para criar um novo .bash_profile: -

-
cat > ~/.bash_profile << "EOF"
-exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
-EOF
-

- Enquanto logada(o) como usuária(o) lfs, o shell inicial é geralmente um shell - de login que lê o - /etc/profile do anfitrião - (provavelmente contendo algumas configurações e variáveis de - ambiente) e então .bash_profile. - O comando exec env - -i.../bin/bash no arquivo .bash_profile substitui o shell em execução - por um novo com um ambiente completamente vazio, exceto pelas - variáveis HOME, TERM, e PS1. Isso - garante que nenhuma variável de ambiente indesejada e - potencialmente danosa oriunda do sistema anfitrião vaze para o - ambiente de construção. A técnica usada aqui alcança o objetivo - de assegurar um ambiente limpo. -

-

- A nova instância do shell é um shell de não-login, que não lê, e executa, o - conteúdo dos arquivos /etc/profile ou .bash_profile, porém, ao invés, lê, e - executa, o arquivo .bashrc. Crie - o arquivo .bashrc agora: -

-
cat > ~/.bashrc << "EOF"
-set +h
-umask 022
-LFS=/mnt/lfs
-LC_ALL=POSIX
-LFS_TGT=$(uname -m)-lfs-linux-gnu
-PATH=/usr/bin
-if [ ! -L /bin ]; then PATH=/bin:$PATH; fi
-PATH=$LFS/tools/bin:$PATH
-CONFIG_SITE=$LFS/usr/share/config.site
-export LFS LC_ALL LFS_TGT PATH CONFIG_SITE
-EOF
-
-

- O significado das configurações em .bashrc -

-
-
- set - +h -
-
-

- O comando set - +h desliga a função hash do bash. - “Hashing” geralmente é uma característica - útil—bash usa uma tabela - hash para lembrar o caminho completo de arquivos - executáveis para evitar procurar o PATH várias vezes para encontrar o mesmo - executável. Entretanto, as novas ferramentas deveriam ser - usadas tão logo sejam instaladas. Desativando a função - hash, o shell sempre vai procurar no PATH quando um aplicativo estiver para ser - executado. Dessa forma, o shell encontrará as ferramentas - recém compiladas em $LFS/tools/bin tão logo elas estejam - disponíveis sem lembrar da versão anterior do mesmo - aplicativo fornecida pela distribuição anfitriã, em - /usr/bin ou /bin. -

-
-
- umask - 022 -
-
-

- Configurar a máscara de criação de arquivos da(o) - usuária(o) (umask) para 022 garante que recém criados - arquivos e diretórios são graváveis somente por suas(eus) - donas(os), mas são legíveis e executáveis por qualquer - pessoa (assumindo que os modos padrão são usados pelas - chamadas de sistema open(2), novos arquivos terminarão com - modo de permissão 644 e diretórios com modo 755). -

-
-
- LFS=/mnt/lfs -
-
-

- A variável LFS deveria ser - configurada para o ponto de montagem escolhido. -

-
-
- LC_ALL=POSIX -
-
-

- A variável LC_ALL controla a - localização de certos aplicativos, fazendo suas mensagens - seguirem as convenções de um país especificado. - Configurar LC_ALL para - POSIX ou C - (as duas são equivalentes) garante que tudo vai funcionar - como esperado dentro do ambiente chroot. -

-
-
- LFS_TGT=(uname - -m)-lfs-linux-gnu -
-
-

- A variável LFS_TGT configura - uma não padrão, porém compatível descrição de máquina - para uso quando da construção do nosso compilador cruzado - e vinculador e quando da compilação cruzada do nosso - conjunto de ferramentas temporárias. Mais informação está - contida em Notas - Técnicas do Conjunto de Ferramentas. -

-
-
- PATH=/usr/bin -
-
-

- Muitas distribuições modernas de Linux mesclaram - /bin e /usr/bin. Quando esse for o caso, a - variável PATH padrão apenas - precisa ser configurada para /usr/bin/ para o ambiente de - Capítulo 6. Quando esse não for o caso, a - seguinte linha adiciona /bin ao caminho. -

-
-
- if [ ! -L - /bin ]; then PATH=/bin:$PATH; fi -
-
-

- Se /bin não for um link - simbólico, então ele tem de ser adicionado à variável - PATH. -

-
-
- PATH=$LFS/tools/bin:$PATH -
-
-

- Ao se colocar $LFS/tools/bin a frente do PATH padrão, o compilador cruzado - instalado no início de - Capítulo 5 é imediatamente pego pelo shell após - sua instalação. Isso, combinado com a desativação do - hashing, limita o risco de que o compilador originário do - anfitrião seja usado em vez do compilador cruzado. -

-
-
- CONFIG_SITE=$LFS/usr/share/config.site -
-
-

- Em - Capítulo 5 e - Capítulo 6, se essa variável não estiver - configurada, então os scripts configure talvez tentem - carregar itens de configuração específicos para algumas - distribuições a partir de /usr/share/config.site no sistema - anfitrião. Substitua-o para prevenir uma potencial - contaminação oriunda do anfitrião. -

-
-
- export - ... -
-
-

- Ao tempo que os comandos acima configuraram algumas - variáveis, com a finalidade de torná-las visíveis dentro - de quaisquer sub-shells, nós as exportamos. -

-
-
-
-
-

- Importante -

-

- Muitas distribuições comerciais adicionam uma instância não - documentada de /etc/bash.bashrc - à inicialização de bash. Esse arquivo tem o - potencial de modificar o ambiente da(o) usuária(o) - lfs de formas que podem - afetar a construção de pacotes LFS críticos. Para assegurar - que o ambiente da(o) usuária(o) lfs esteja limpo, verifique a presença de - /etc/bash.bashrc e, se - presente, mova-o para fora do caminho. Como a(o) usuária(o) - root, execute: -

-
[ ! -e /etc/bash.bashrc ] || mv -v /etc/bash.bashrc /etc/bash.bashrc.NOUSE
-

- Após o uso da(o) usuária(o) lfs for finalizado no início de - Capítulo 7, você pode restaurar /etc/bash.bashrc (se desejado). -

-

- Perceba que o pacote Bash de LFS que nós construiremos em - Seção 8.34, - “Bash-5.1.16” não é configurado para carregar - ou executar /etc/bash.bashrc, - de modo que esse arquivo é inútil em um sistema LFS completo. -

-
-

- Finalmente, para ter o ambiente totalmente preparado para - construção das ferramentas temporárias, carregue o recém criado - perfil de usuária(o): -

-
source ~/.bash_profile
-
-
-
-
-
-

- 4.5. Sobre UPCs -

-
-
-
-

- Muitas pessoas gostariam de saber de antemão aproximadamente - quanto tempo leva para compilar e instalar cada pacote. Devido - a Linux From Scratch poder ser construído em muitos sistemas, é - impossível fornecer estimativas de tempo precisas. O maior - pacote (Glibc) levará aproximadamente vinte (20) minutos em - sistemas mais rápidos, mas poderia levar até três (03) dias em - sistemas mais lentos! Em vez de fornecer tempos atuais, a - medida Unidade Padrão de Construção (UPC) será usada. -

-

- A medida UPC funciona como segue. O primeiro pacote a ser - compilado neste livro é binutils em Capítulo 5. - O tempo necessário para compilar esse pacote é que será - referenciado como a Unidade Padrão de Construção ou UPC. Todos - os outros tempos de compilação serão expressos relativamente a - esse tempo. -

-

- Por exemplo, considere um pacote cujo tempo de compilação é - quatro e meio (4,5) UPCs. Isso significa que, se um sistema - precisou de dez (10) minutos para compilar e instalar a - primeira passagem de binutils, então será necessário - aproximadamente quarenta - e cinco (45) minutos para construir esse pacote de exemplo. - Felizmente, a maioria dos tempos de construção é menor que o - tempo para binutils. -

-

- Em geral, UPCs não são totalmente precisas, pois dependem de - muitos fatores, incluindo a versão de GCC do sistema anfitrião. - Elas são fornecidas aqui para dar uma estimativa de quanto - tempo pode levar para instalar um pacote, mas os números podem - variar tanto quanto dúzias de minutos em alguns casos. -

-
-

- Nota -

-

- Para muitos sistemas modernos com múltiplos processadores (ou - cores) o tempo de compilação para um pacote pode ser reduzido - realizando um “parallel make”, seja configurando - uma variável de ambiente; ou dizendo para o aplicativo - make quantos - processadores estão disponíveis. Por exemplo, uma CPU Intel - i5-6500 pode suportar quatro processos simultâneos com: -

-
export MAKEFLAGS='-j4'
-

- ou somente construindo com: -

-
make -j4
-

- Quando múltiplos processadores são usados dessa maneira, as - unidades UPC no livro irão variar ainda mais do que - normalmente aconteceria. Em alguns casos, o passo make - simplesmente falhará. Analisar a saída dos processos de - construção também será mais difícil, pois as linhas de - diferentes processos estarão intercaladas. Se você tiver um - problema com um passo de construção, então retorne para uma - construção de processador único para analisar adequadamente - as mensagens de erro. -

-
-
-
-
-
-
-

- 4.6. Sobre as Suítes - de Teste -

-
-
-
-

- A maioria dos pacotes fornece uma suíte de teste. Rodar a suíte - de teste para um pacote recém construído é uma boa ideia, pois - pode fornecer uma verificação de sanidade indicando - que tudo compilou corretamente. Uma suíte de teste que executa - seu conjunto de verificações geralmente prova que o pacote está - funcionando como a(o) desenvolvedora(r) pretendia. Entretanto - isso não garante que o pacote está totalmente livre de - defeitos. -

-

- Algumas suítes de teste são mais importantes que outras. Por - exemplo, as suítes de teste para o conjunto de ferramentas - central—GCC, binutils, e glibc—são de máxima - importância devido a seu papel central em um sistema que - funcione adequadamente. As suítes de teste para GCC e glibc - podem levar bastante tempo para completarem, especialmente em - uma máquina lenta, mas são fortemente recomendadas. -

-
-

- Nota -

-

- Executar as suítes de teste em Capítulo 5 - e - Capítulo 6 é impossível, dado que os aplicativos são - compilados com um compilador cruzado, de forma que não se - supõe que sejam aptos a executar no anfitrião de construção. -

-
-

- Um problema comum com a execução de suítes de teste para - binutils e GCC é ficar sem pseudo terminais (PTYs). Isso pode - resultar em um alto número de testes com falhas. Isso pode - acontecer por muitas razões, mas a causa mais provável é que o - sistema anfitrião não tem o sistema de arquivos devpts configurado corretamente. Esse - problema é discutido em maiores detalhes em https://www.linuxfromscratch.org/lfs/faq.html#no-ptys. -

-

- Algumas vezes suítes de testes de pacotes falharão, mas por - razões as quais as(os) desenvolvedoras(es) estão cientes e - consideraram não-críticas. Consulte os registros localizados em - https://www.linuxfromscratch.org/lfs/build-logs/11.1/ - para verificar quando essas falhas são esperadas ou não. Esse - site é válido para todos os testes ao longo deste livro. -

-
-
-
-
-
-
-
-

- Parte III. Construindo o Conjunto - de Ferramentas Cruzadas de LFS e Ferramentas Temporárias -

-
-
-
-
-
-
-
-

- Material Preliminar - Importante -

-
-
-
-
-
-
-
-

- Introdução -

-
-
-
-

- Esta parte é dividida em três estágios: primeiro construindo um - compilador cruzado e suas bibliotecas associadas; segundo, usar - esse conjunto de ferramentas cruzado para construir vários - utilitários de uma forma que os isola da distribuição anfitriã; - terceiro, entrar no ambiente chroot, o qual melhora ainda mais - o isolamento do anfitrião, e construir as ferramentas restantes - necessárias para construir o sistema final. -

-
-

- Importante -

-

- Com esta parte inicia o trabalho real de construir um novo - sistema. Exige muito cuidado em assegurar que as instruções - sejam seguidas exatamente conforme o livro as mostra. Você - deveria tentar entender o que elas fazem, e qualquer que seja - sua ânsia para finalizar sua construção, você deveria evitar - digitá-las cegamente como mostrado, mas ler documentação - quando houver algo que você não entenda. Além disso, - acompanhe sua digitação e da saída de comandos, enviando-as - para um arquivo, usando o utilitário tee. Isso permite um melhor - diagnóstico se algo der errado. -

-
-

- A próxima seção dá uma introdução técnica ao processo de - construção, enquanto que a seguinte contém instruções gerais - muito importantes. -

-
-
-
-
-
-

- Notas Técnicas do - Conjunto de Ferramentas -

-
-
-
-

- Esta seção explana algumas das razões e detalhes técnicos por - trás do método completo de construção. Não é essencial entender - imediatamente tudo nesta seção. A maior parte desta informação - ficará mais clara após executar uma construção atual. Esta - seção pode e deve ser consultada a qualquer momento durante o - processo. -

-

- O objetivo geral do Capítulo 5 - e do Capítulo 6 - é o de produzir uma área temporária que contém um conjunto - reconhecidamente bom de ferramentas que pode ser isolado do - sistema anfitrião. Usando-se chroot, os comandos nos - capítulos subsequentes estarão confinados naquele ambiente, - assegurando uma construção limpa e livre de problemas do - sistema LFS alvo. O processo de construção foi desenhado para - minimizar os riscos para leitores novatos e para prover o maior - valor educacional ao mesmo tempo. -

-

- O processo de construção é baseado no processo de compilação cruzada. A compilação - cruzada normalmente é usada para construir um compilador e o - conjunto de ferramentas dele para uma máquina diferente daquela - que é usada para a construção. Isso não é estritamente - necessário para LFS, dado que a máquina onde o novo sistema - executará é a mesma usada para a construção. Porém, a - compilação cruzada tem a grande vantagem de que tudo o que é - compilado cruzadamente não pode depender do ambiente do - anfitrião. -

-
-

- Acerca da - Compilação Cruzada -

-
-

- Nota -

-

- O livro LFS não é, e não contém, um tutorial geral para - construir um conjunto de ferramentas cruzado (ou nativo). - Não use os comandos no livro para um conjunto de - ferramentas cruzado o qual será usado para algum outro - propósito que não construir LFS, a menos que você realmente - entenda o que está fazendo. -

-
-

- Compilação cruzada envolve alguns conceitos que merecem uma - seção por si próprios. Apesar que esta seção pode ser omitida - em uma primeira leitura, retornar até ela mais tarde será - benéfico para o seu completo entendimento do processo. -

-

- Permita-nos primeiro definir alguns termos usados nesse - contexto -

-
-
-
- build -
-
-

- é a máquina onde nós construímos aplicativos. Note que - essa máquina é referenciada como sendo a anfitriã em outras seções. -

-
-
- host -
-
-

- é a máquina/sistema onde os aplicativos construídos - executarão. Note que esse uso de host não é o mesmo que o - uso em outras seções. -

-
-
- target -
-
-

- é usado apenas para compiladores. Ele é a máquina para - a qual o compilador produz código. Ele pode ser - diferente de ambos build e host. -

-
-
-
-

- Como um exemplo, permita-nos imaginar o seguinte cenário (as - vezes rotulado de Cruzado Canadense): nós podemos - ter um compilador somente em uma máquina lenta, vamos - rotulá-la de máquina A, e o compilador de - ccA. Nós também podemos ter uma - máquina rápida (B), porém sem compilador, e nós eventualmente - desejamos produzir código para outra máquina lenta (C). Para - construir um compilador para a máquina C, - nós teríamos três estágios: -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Estágio - - Build - - Host - - Target - - Ação -
- 1 - - A - - A - - B - - construir compilador cruzado cc1 usando ccA na - máquina A -
- 2 - - A - - B - - C - - construir compilador cruzado cc2 usando cc1 na - máquina A -
- 3 - - B - - C - - C - - construir compilador ccC usando cc2 na máquina B -
-
-

- Então, todos os outros programas necessários para a máquina C - podem ser compilados usando cc2 na rápida máquina B. Note que - a menos que B possa executar aplicativos produzidos por C, - não existe maneira de testar os aplicativos construídos até - que a própria máquina C esteja em execução. Por exemplo, para - testar ccC, nós eventualmente desejamos adicionar um quarto - estágio: -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
- Estágio - - Build - - Host - - Target - - Ação -
- 4 - - C - - C - - C - - reconstruir e testar ccC usando o próprio na máquina - C -
-
-

- No exemplo acima, somente cc1 e cc2 são compiladores - cruzados, isto é, eles produzem código para uma máquina - diferente daquela na qual estão sendo executados. Tais - compiladores são rotulados de compiladores nativos. -

-
-
-

- Implementação de - Compilação Cruzada para LFS -

-
-

- Nota -

-

- Quase todos os sistemas de construção usam nomes da forma - cpu-vendor-kernel-os rotulados como o trio de máquina. Um - leitor atento eventualmente questionará porque um - trio rotula um nome de quatro - componentes. A razão é histórica: inicialmente, três nomes - de componente eram suficientes para designar uma máquina - inequivocamente, porém com novas máquinas e sistemas - aparecendo, isso se provou insuficiente. A palavra - trio subsistiu. Uma maneira - simples de determinar seu trio de máquina é executar o - script config.guess que vem com - o fonte para muitos pacotes. Desempacote os fontes do - pacote binutils e execute o script: - ./config.guess e observe - a saída. Por exemplo, para um processador Intel de 32-bits, - a saída será i686-pc-linux-gnu. Em um sistema - de 64-bits, a saída será x86_64-pc-linux-gnu. -

-

- Esteja também ciente do nome do vinculador dinâmico da - plataforma, frequentemente rotulado de carregador dinâmico - (não confundir com o vinculador padrão ld o qual é parte do - pacote binutils). O vinculador - dinâmico provido por Glibc encontra e carrega as - bibliotecas compartilhadas necessárias para um aplicativo, - prepara o aplicativo para execução, e então o executa. O - nome do vinculador dinâmico para uma máquina Intel de - 32-bits é ld-linux.so.2 e é - ld-linux-x86-64.so.2 para - sistemas 64-bits. Uma maneira infalível de determinar o - nome do vinculador dinâmico é inspecionar uma biblioteca - aleatória do sistema anfitrião executando: readelf -l <nome de binário> | grep - interpreter e observando a saída. A - referência oficial cobrindo todas as plataformas está no - arquivo shlib-versions na - raiz da árvore do fonte do Glibc. -

-
-

- Para falsificar uma compilação cruzada em LFS, o nome do trio - do anfitrião é ligeiramente ajustado modificando-se o campo - "vendor" na variável LFS_TGT. Nós - também usamos a opção --with-sysroot quando da - construção do vinculador dinâmico e do compilador cruzado - para informá-los onde encontrar os necessários arquivos do - anfitrião. Isso assegura que nenhum dos outros aplicativos - construídos em - Capítulo 6 pode se vincular a bibliotecas na máquina - de construção. Somente dois estágios são obrigatórios, e mais - um para testes: -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Estágio - - Build - - Host - - Target - - Ação -
- 1 - - pc - - pc - - lfs - - construir compilador cruzado cc1 usando cc-pc em pc -
- 2 - - pc - - lfs - - lfs - - construir compilador cc-lfs usando cc1 em pc -
- 3 - - lfs - - lfs - - lfs - - reconstruir e testar cc-lfs usando o próprio em lfs -
-
-

- Na tabela acima, em pc significa que os comandos - são executados em uma máquina usando a distribuição já - instalada. Em - lfs significa que os comandos são - executados dentro de um ambiente enjaulado. -

-

- Agora, existe mais acerca de compilação cruzada: a linguagem - C não é apenas um compilador, mas também define uma - biblioteca padrão. Neste livro, a biblioteca GNU C, rotulada - de glibc, é usada. Essa biblioteca - deve ser compilada para a máquina lfs, isto é, usando o - compilador cruzado cc1. Porém, o próprio compilador usa uma - biblioteca interna implementando complexas instruções não - disponíveis no conjunto de instruções do montador. Essa - biblioteca interna é rotulada de libgcc, e deve ser vinculada à - biblioteca glibc para ser completamente - funcional! Além disso, a biblioteca padrão para C++ - (libstdc++) também precisa estar vinculada à glibc. A solução para esse - problema de ovo e galinha é primeiro construir uma libgcc - degradada baseada em cc1, faltando algumas funcionalidades - tais como camadas e manipulação de exceções, então construir - glibc usando esse compilador degradado (o próprio glibc não - degradado), então construir libstdc++. Porém, nessa última - biblioteca faltarão as mesmas funcionalidades que libgcc. -

-

- Esse não é o fim da história: a conclusão do parágrafo - precedente é a de que cc1 é incapaz de construir uma - libstdc++ completamente funcional, porém esse é o único - compilador disponível para construir as bibliotecas C/C++ - durante o estágio 2! Certamente, o compilador construído - durante o estágio 2, cc-lfs, seria capaz de construir aquelas - bibliotecas, porém (1) o sistema de construção do GCC não - sabe que está utilizável em pc; e (2) usá-lo em pc estaria - sob o risco de vinculamento às bibliotecas de pc, dado que - cc-lfs é um compilador nativo. Assim, nós temos de construir - libstdc++ mais tarde, em jaula. -

-
-
-

- Outros - detalhes procedurais -

-

- O compilador cruzado será instalado em um diretório - $LFS/tools separado, dado que - ele não será parte do sistema final. -

-

- Binutils é instalado primeiro, pois a execução de - configure de - ambos GCC e Glibc executa vários testes de características no - montador e no vinculador para determinar quais - características de software habilitar ou desabilitar. Isso é - mais importante do que, inicialmente, alguém possa perceber. - Um GCC ou Glibc configurado incorretamente pode resultar em - um conjunto de ferramentas sutilmente quebrado, onde o - impacto de tal quebra talvez não se manifeste até próximo do - final da construção de uma distribuição inteira. Uma falha de - teste de suíte normalmente destacará tal erro antes que muito - mais trabalho adicional seja realizado. -

-

- O Binutils instala o montador e o vinculador dele em dois - locais, $LFS/tools/bin e - $LFS/tools/$LFS_TGT/bin. As - ferramentas em uma localização são rigidamente vinculadas à - outra. Uma faceta importante do vinculador é a ordem de - procura de biblioteca dele. Informações detalhadas podem ser - obtidas de ld - passando a flag --verbose. Por exemplo, - $LFS_TGT-ld --verbose | grep - SEARCH exibirá os caminhos atuais de procura - e a ordem deles. Isso mostra quais arquivos estão vinculados - por ld pela - compilação de um aplicativo fictício e passagem do - modificador --verbose - ao vinculador. Por exemplo, $LFS_TGT-gcc dummy.c -Wl,--verbose - 2>&1 | grep succeeded exibirá todos os - arquivos abertos com sucesso durante o vinculamento. -

-

- O próximo pacote instalado é o GCC. Um exemplo do que pode - ser visto durante a execução dele de configure é: -

-
checking what assembler to use... /mnt/lfs/tools/i686-lfs-linux-gnu/bin/as
-checking what linker to use... /mnt/lfs/tools/i686-lfs-linux-gnu/bin/ld
-

- Isso é importante pelas razões mencionadas acima. Também - demonstra que o script de configuração do GCC não busca os - diretórios do PATH para encontrar quais ferramentas usar. - Entretanto, durante a operação atual do próprio gcc, os mesmos caminhos de - busca não são necessariamente usados. Para descobrir qual - vinculador padrão gcc usará, execute: - $LFS_TGT-gcc - -print-prog-name=ld. -

-

- Informação detalhada pode ser obtida de gcc passando-se a opção de - linha de comando -v - durante a compilação de um aplicativo fictício. Por exemplo, - gcc -v dummy.c - exibirá informação detalhada acerca do preprocessador, - compilação e estágios da montagem, incluindo os caminhos de - busca incluídos do gcc e a ordem deles. -

-

- Os próximos instalados são os cabeçalhos sanitizados da API - do Linux. Eles permitem a interface da biblioteca C padrão - (Glibc) com características que o kernel Linux proverá. -

-

- O próximo pacote instalado é Glibc. As considerações mais - importantes para a construção do Glibc são o compilador, - ferramentas binárias e os cabeçalhos do kernel. O compilador - geralmente não é um problema dado que Glibc sempre usará o - compilador relacionado ao parâmetro --host passado ao script de - configuração dele; por exemplo, em nosso caso, o compilador - será $LFS_TGT-gcc. As - ferramentas binárias e os cabeçalhos do kernel podem ser um - bocado mais complicados. Dessa maneira, nós não nos - arriscamos e usamos os modificadores de configuração - disponíveis para forçar as seleções corretas. Após a execução - de configure, - verifique o conteúdo do arquivo config.make no diretório build para todos os detalhes importantes. - Observe o uso de CC="$LFS_TGT-gcc" (com - $LFS_TGT expandida) para controlar - quais ferramentas binárias são usadas e o uso das flags - -nostdinc e - -isystem para - controlar o caminho de busca incluído do compilador. Esses - itens destacam um importante aspecto do pacote - Glibc—ele é muito autossuficiente em termos de - maquinário de construção e geralmente não confia em padrões - de conjuntos de ferramentas. -

-

- Como dito acima, a biblioteca C++ padrão é compilada depois, - seguida em - Capítulo 6 por todos os aplicativos que necessitam - deles próprios para serem construídos. O passo de instalação - de todos aqueles pacotes usa os aplicativos instalados no - sistema de arquivos do LFS. -

-

- Ao final do - Capítulo 6 o compilador nativo do LFS é instalado. - Primeiro binutils-pass2 é construído, com a mesma instalação - DESTDIR como os outros programas, - então a segunda passagem de GCC é construída, omitindo - libstdc++ e outras bibliotecas não importantes. Devido a - algumas lógicas estranhas no script configure do GCC, - CC_FOR_TARGET termina como - cc quando o - host for o mesmo que o target, porém for diferente do sistema - de construção. Essa é a razão pela qual CC_FOR_TARGET=$LFS_TGT-gcc é - colocado explicitamente nas opções de configuração. -

-

- Uma vez dentro do ambiente chroot no - Capítulo 7, a primeira tarefa é instalar libstdc++. - Então instalações temporárias de programas necessários para a - operação apropriada do conjunto de ferramentas são - executadas. Deste ponto em diante, o conjunto central de - ferramentas está autocontido e auto-hospedado. No Capítulo 8, - as versões finais de todos os pacotes necessários para um - sistema completamente funcional são construídos, testados e - instalados. -

-
-
-
-
-
-
-

- Instruções - Gerais de Compilação -

-
-
-
-

- Quando da construção de pacotes existem várias suposições - feitas dentro das instruções: -

-
-
    -
  • -

    - Vários dos pacotes recebem patches antes da compilação, - mas apenas quando o patch é necessário para evitar um - problema. Um patch frequentemente é necessário tanto - neste quanto nos seguintes capítulos, mas algumas vezes - em apenas uma localização. Portanto, não se preocupe se - as instruções para um patch baixado pareçam estar - faltando. Mensagens de alerta acerca de offset ou fuzz também talvez sejam - encontradas quando da aplicação de um patch. Não se - preocupe com esses alertas, uma vez que o patch ainda foi - aplicado com sucesso. -

    -
  • -
  • -

    - Durante a compilação da maior parte dos pacotes, - existirão vários alertas que rolarão na tela. Esses são - normais e seguramente podem ser ignorados. Esses alertas - são o que parecem—alertas acerca de uso de sintaxe - C ou C++ obsoleta, mas não inválida. Padrões C mudam com - ampla frequência, e alguns pacotes ainda usam o padrão - antigo. Isso não é um problema, mas gera o alerta. -

    -
  • -
  • -

    - Verifique uma última vez que a variável de ambiente - LFS está configurada - adequadamente: -

    -
    echo $LFS
    -

    - Certifique-se de que a saída mostra o caminho para o - ponto de montagem da partição LFS, que é /mnt/lfs, usando nosso exemplo. -

    -
  • -
  • -

    - Finalmente, dois itens importantes devem ser enfatizados: -

    -
    -

    - Importante -

    -

    - As instruções de construção assumem que as Exigências do - Sistema Anfitrião, incluindo links simbólicos, - foram configuradas adequadamente: -

    -
    -
      -
    • -

      - bash é o shell - em uso. -

      -
    • -
    • -

      - sh - é um link simbólico para bash. -

      -
    • -
    • -

      - /usr/bin/awk é - um link simbólico para gawk. -

      -
    • -
    • -

      - /usr/bin/yacc é - um link simbólico para bison ou um - script pequeno que executa bison. -

      -
    • -
    -
    -
    -
    -

    - Importante -

    -

    - Para reenfatizar o processo de construção: -

    -
    -
      -
    1. -

      - Coloque todos os pacotes e patches em um - diretório que estará acessível a partir do - ambiente chroot, tal como /mnt/lfs/sources/. -

      -
    2. -
    3. -

      - Mude para o diretório dos fontes. -

      -
    4. -
    5. -

      - Para cada pacote: -

      -
      -
        -
      1. -

        - Usando o aplicativo tar, - extraia o pacote para ser construído. Em - - Capítulo 5 e - Capítulo 6, certifique-se de que - você seja a(o) usuária(o) lfs quando - extrair o pacote. -

        -

        - Todos os métodos para obter a árvore de - código fonte sendo construído em-posição, - exceto extrair o tarball de pacote, não são - suportados. Notadamente, usar cp -R - para copiar a árvore de código fonte para - outro lugar pode destruir links e marcas - temporais na árvore de fontes e causar - falha de construção. -

        -
      2. -
      3. -

        - Mude para o diretório criado quando o - pacote foi extraído. -

        -
      4. -
      5. -

        - Siga as instruções do livro para construir - o pacote. -

        -
      6. -
      7. -

        - Mude de volta para o diretório de fontes. -

        -
      8. -
      9. -

        - Delete o diretório de fonte extraído a - menos que instruído o contrário. -

        -
      10. -
      -
      -
    6. -
    -
    -
    -
  • -
-
-
-
-
-
-
-
-

- Capítulo 5. Compilando um - Conjunto de Ferramentas Cruzado -

-
-
-
-
-
-
-
-

- 5.1. Introdução -

-
-
-
-

- Este capítulo mostra como construir um compilador cruzado e - suas ferramentas associadas. Apesar de aqui a compilação - cruzada ser falseada, os princípios são os mesmos que aqueles - para um conjunto de ferramentas cruzado real. -

-

- Os aplicativos compilados neste capítulo serão instalados sob o - diretório $LFS/tools para - mantê-los separados dos arquivos instalados nos capítulos - seguintes. As bibliotecas, por outro lado, são instaladas em - seus locais finais, dado que elas pertencem ao sistema que - queremos construir. -

-
-
-
-
-
-

- 5.2. Binutils-2.38 - - Passagem 1 -

-
-
-
-
-

- O pacote Binutils contém um vinculador, um montador, e outras - ferramentas para manusear arquivos objeto. -

-
-
-
- Tempo aproximado de - construção: 1 UPC -
-
- Espaço em disco - exigido: 620 MB -
-
-
-
-
-

- 5.2.1. Instalação de Binutils Cruzado -

-
-

- Nota -

-

- Volte e releia as notas na seção intitulada Instruções Gerais de - Compilação. Entender as notas rotuladas como importante - pode salvar você de um monte de problemas depois. -

-
-

- É importante que Binutils seja o primeiro pacote compilado, - pois ambos Glibc e GCC realizam vários testes sobre o - vinculador e montador disponíveis para determinar quais de - suas próprias características habilitar. -

-

- A documentação de Binutils recomenda construir Binutils em um - diretório dedicado à construção: -

-
mkdir -v build
-cd       build
-
-

- Nota -

-

- Com a finalidade de que os valores de UPC listados no resto - do livro sejam de qualquer uso, meça o tempo que leva para - construir este pacote desde a configuração até e incluindo - a primeira instalação. Para fazer isso facilmente, - encapsule os comandos em um time desta forma: - time { ../configure ... - && make && make install; }. -

-
-

- Agora prepare Binutils para compilação: -

-
../configure --prefix=$LFS/tools \
-             --with-sysroot=$LFS \
-             --target=$LFS_TGT   \
-             --disable-nls       \
-             --disable-werror
-
-

- O significado das opções do configure: -

-
-
- --prefix=$LFS/tools -
-
-

- Isso diz para o script configure para preparar para - instalar os aplicativos de binutils no diretório - $LFS/tools. -

-
-
- --with-sysroot=$LFS -
-
-

- Para compilação cruzada, isso diz ao sistema de - construção para procurar em $LFS pelas bibliotecas alvo - de sistema conforme necessário. -

-
-
- --target=$LFS_TGT -
-
-

- Por causa da descrição de máquina na variável - LFS_TGT ser ligeiramente - diferente do valor retornado pelo script config.guess, essa - chave dirá ao script configure para - ajustar o sistema de construção do binutils para - construir um vinculador cruzado. -

-
-
- --disable-nls -
-
-

- Isso desabilita internacionalização, uma vez que i18n - não é necessária para as ferramentas temporárias. -

-
-
- --disable-werror -
-
-

- Isso evita que a construção pare no caso de existirem - alertas originários do compilador do anfitrião. -

-
-
-
-

- Continue compilando o pacote: -

-
make
-

- Instale o pacote: -

-
make install
-
-
-

- Detalhes deste pacote estão localizados em Seção 8.18.2, - “Conteúdo de Binutils.” -

-
-
-
-
-
-
-

- 5.3. GCC-11.2.0 - Passagem - 1 -

-
-
-
-
-

- O pacote GCC contém a GNU compiler collection, o qual inclui - os compiladores C e C++. -

-
-
-
- Tempo aproximado de - construção: 11 UPC -
-
- Espaço em disco - exigido: 3,3 GB -
-
-
-
-
-

- 5.3.1. Instalação de GCC Cruzado -

-

- GCC exige os pacotes GMP, MPFR e MPC. Uma vez que esses - pacotes talvez não estejam incluídos na sua distribuição - anfitriã, eles serão construídos com GCC. Desempacote cada - pacote dentro do diretório de fonte de GCC e renomeie os - diretórios resultantes de forma que os procedimentos de - construção de GCC automaticamente os usarão: -

-
-

- Nota -

-

- Existem mal-entendidos frequentes sobre este capítulo. Os - procedimentos são os mesmos que todos os outros capítulos - explicados anteriormente (Instruções de construção de pacote). - Primeiro extraia o tarball de gcc a partir do diretório de - fontes e então mude para o diretório criado. Somente então - deveria você prosseguir com as instruções abaixo. -

-
-
tar -xf ../mpfr-4.1.0.tar.xz
-mv -v mpfr-4.1.0 mpfr
-tar -xf ../gmp-6.2.1.tar.xz
-mv -v gmp-6.2.1 gmp
-tar -xf ../mpc-1.2.1.tar.gz
-mv -v mpc-1.2.1 mpc
-

- Em anfitriões x86_64, configure o nome padrão de diretório - para bibliotecas de 64 bits para lib: -

-
case $(uname -m) in
-  x86_64)
-    sed -e '/m64=/s/lib64/lib/' \
-        -i.orig gcc/config/i386/t-linux64
- ;;
-esac
-

- A documentação de GCC recomenda construir GCC em um diretório - de construção dedicado: -

-
mkdir -v build
-cd       build
-

- Prepare GCC para compilação: -

-
../configure                  \
-    --target=$LFS_TGT         \
-    --prefix=$LFS/tools       \
-    --with-glibc-version=2.35 \
-    --with-sysroot=$LFS       \
-    --with-newlib             \
-    --without-headers         \
-    --enable-initfini-array   \
-    --disable-nls             \
-    --disable-shared          \
-    --disable-multilib        \
-    --disable-decimal-float   \
-    --disable-threads         \
-    --disable-libatomic       \
-    --disable-libgomp         \
-    --disable-libquadmath     \
-    --disable-libssp          \
-    --disable-libvtv          \
-    --disable-libstdcxx       \
-    --enable-languages=c,c++
-
-

- O significado das opções de configure: -

-
-
- --with-glibc-version=2.35 -
-
-

- Essa opção especifica a versão de glibc a qual será - usada no alvo. Ela não é relevante para a libc da - distro anfitriã, pois tudo compilado por gcc passagem 1 - executará no ambiente chroot, o qual é isolado de libc - da distro anfitriã. -

-
-
- --with-newlib -
-
-

- Uma vez que uma biblioteca C funcional ainda não está - disponível, isso assegura que a constante inhibit_libc - esteja definida quando da construção de libgcc. Isso - evita a compilação de qualquer código que exija suporte - de libc. -

-
-
- --without-headers -
-
-

- Quando da criação de um compilador cruzado completo, - GCC exige cabeçalhos padrão compatíveis com o sistema - alvo. Para nossos propósitos esses cabeçalhos não serão - necessários. Essa chave evita que GCC procure por eles. -

-
-
- --enable-initfini-array -
-
-

- Essa chave força o uso de algumas estruturas internas - de dados que são necessárias, porém não podem ser - detectadas quando da construção de um compilador - cruzado. -

-
-
- --disable-shared -
-
-

- Essa chave força GCC a vincular suas bibliotecas - internas estaticamente. Nós precisamos disso, pois as - bibliotecas compartilhadas exigem glibc, que ainda não - está instalado no sistema alvo. -

-
-
- --disable-multilib -
-
-

- Em x86_64, LFS não suporta uma configuração multilib. - Essa chave é inofensiva para x86. -

-
-
- --disable-decimal-float, - --disable-threads, --disable-libatomic, - --disable-libgomp, --disable-libquadmath, - --disable-libssp, --disable-libvtv, - --disable-libstdcxx -
-
-

- Essas chaves desabilitam suporte para a extensão de - ponto flutuante decimal, threading, libatomic, libgomp, - libquadmath, libssp, libvtv, e a biblioteca padrão C++ - respectivamente. Essas características falharão na - compilação quando da construção de um compilador - cruzado e não são necessárias para a tarefa de compilar - cruzadamente a libc temporária. -

-
-
- --enable-languages=c,c++ -
-
-

- Essa opção garante que apenas os compiladores C e C++ - sejam construídos. Essas são as únicas linguagens - necessárias agora. -

-
-
-
-

- Compile GCC executando: -

-
make
-

- Instale o pacote: -

-
make install
-

- Essa construção de GCC instalou um par de cabeçalhos internos - de sistema. Normalmente um deles, limits.h, sequencialmente incluiria o - cabeçalho limits.h de sistema - correspondente, nesse caso, $LFS/usr/include/limits.h. Entretanto, ao - tempo dessa construção de GCC, $LFS/usr/include/limits.h não existe, de - forma que o cabeçalho interno recém instalado é um arquivo - parcial, autocontido, e não inclui as características - estendidas do cabeçalho de sistema. Isso é adequado para a - construção de glibc, porém o cabeçalho interno completo será - necessário mais tarde. Crie uma versão completa do cabeçalho - interno usando um comando que é idêntico ao que o sistema de - construção de GCC faz em circunstâncias normais: -

-
cd ..
-cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \
-  `dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/install-tools/include/limits.h
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.26.2, “Conteúdo - de GCC.” -

-
-
-
-
-
-
-

- 5.4. Cabeçalhos da API - do Linux-5.16.9 -

-
-
-
-
-

- Os Cabeçalhos da API do Linux (em linux-5.16.9.tar.xz) expõem - a API do kernel para uso por Glibc. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 1,2 GB -
-
-
-
-
-

- 5.4.1. Instalação dos Cabeçalhos da API do Linux -

-

- O kernel Linux precisa expor uma Interface de Programação de - Aplicativos (API) para a biblioteca C do sistema (Glibc em - LFS) usar. Isso é feito por meio de sanitizar vários arquivos - de cabeçalho C que são incluídos no tarball de fonte de - kernel Linux. -

-

- Certifique-se de que não existem arquivos obsoletos embutidos - no pacote: -

-
make mrproper
-

- Agora extraia os cabeçalhos de kernel visíveis ao usuário a - partir do fonte. O alvo recomendado de make headers_install não pode ser - usado, pois ele exige rsync, - que talvez não esteja disponível. Os cabeçalhos são primeiro - colocados em ./usr, então - copiados para a localização necessária. -

-
make headers
-find usr/include -name '.*' -delete
-rm usr/include/Makefile
-cp -rv usr/include $LFS/usr
-
-
-

- 5.4.2. Conteúdo dos Cabeçalhos - da API do Linux -

-
-
-
- Cabeçalhos instalados: - /usr/include/asm/*.h, - /usr/include/asm-generic/*.h, /usr/include/drm/*.h, - /usr/include/linux/*.h, /usr/include/misc/*.h, - /usr/include/mtd/*.h, /usr/include/rdma/*.h, - /usr/include/scsi/*.h, /usr/include/sound/*.h, - /usr/include/video/*.h, and /usr/include/xen/*.h -
-
- Diretórios instalados: - /usr/include/asm, - /usr/include/asm-generic, /usr/include/drm, - /usr/include/linux, /usr/include/misc, /usr/include/mtd, - /usr/include/rdma, /usr/include/scsi, /usr/include/sound, - /usr/include/video, and /usr/include/xen -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- /usr/include/asm/*.h -

-
-

- Os Cabeçalhos API ASM Linux -

-
-

- /usr/include/asm-generic/*.h -

-
-

- Os Cabeçalhos Genéricos API ASM Linux -

-
-

- /usr/include/drm/*.h -

-
-

- Os Cabeçalhos API DRM Linux -

-
-

- /usr/include/linux/*.h -

-
-

- Os Cabeçalhos Linux API Linux -

-
-

- /usr/include/misc/*.h -

-
-

- Os Cabeçalhos Miscelâneas API Linux -

-
-

- /usr/include/mtd/*.h -

-
-

- Os Cabeçalhos API MTD Linux -

-
-

- /usr/include/rdma/*.h -

-
-

- Os Cabeçalhos API RDMA Linux -

-
-

- /usr/include/scsi/*.h -

-
-

- Os Cabeçalhos API SCSI Linux -

-
-

- /usr/include/sound/*.h -

-
-

- Os Cabeçalhos de Som API Linux -

-
-

- /usr/include/video/*.h -

-
-

- Os Cabeçalhos de Vídeo API Linux -

-
-

- /usr/include/xen/*.h -

-
-

- Os Cabeçalhos Xen API Linux -

-
-
-
-
-
-
-
-
-

- 5.5. Glibc-2.35 -

-
-
-
-
-

- O pacote Glibc contém a biblioteca C principal. Essa - biblioteca fornece as rotinas básicas para alocação de - memória, busca em diretórios, abertura e fechamento de - arquivos, leitura e escrita de arquivos, manuseio de - sequências de caracteres, correspondência de padrões, - aritmética, e daí por diante. -

-
-
-
- Tempo aproximado de - construção: 4,3 UPC -
-
- Espaço em disco - exigido: 818 MB -
-
-
-
-
-

- 5.5.1. Instalação de Glibc -

-

- Primeiro, crie um link simbólico para conformidade com LSB. - Adicionalmente, para x86_64, crie um link simbólico de - compatibilidade exigido para a operação adequada do - carregador dinâmico de biblioteca: -

-
case $(uname -m) in
-    i?86)   ln -sfv ld-linux.so.2 $LFS/lib/ld-lsb.so.3
-    ;;
-    x86_64) ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64
-            ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3
-    ;;
-esac
-
-

- Nota -

-

- O comando acima está correto. O comando ln tem umas poucas - versões sintáticas, de forma que tenha certeza de verificar - info coreutils - ln e ln(1) - antes de relatar o que você talvez pense que seja um erro. -

-
-

- Alguns dos aplicativos Glibc usam o diretório não conforme - com FHS /var/db para armazenar - seus dados em tempo de execução. Aplique a seguinte correção - para fazer com que tais aplicativos armazenem seus dados em - tempo de execução nos locais conformes com FHS: -

-
patch -Np1 -i ../glibc-2.35-fhs-1.patch
-

- A documentação de Glibc recomenda construir Glibc em um - diretório dedicado à construção: -

-
mkdir -v build
-cd       build
-

- Assegure que os utilitários ldconfig e sln sejam instalados em - /usr/sbin: -

-
echo "rootsbindir=/usr/sbin" > configparms
-

- A seguir, prepare Glibc para compilação: -

-
../configure                             \
-      --prefix=/usr                      \
-      --host=$LFS_TGT                    \
-      --build=$(../scripts/config.guess) \
-      --enable-kernel=3.2                \
-      --with-headers=$LFS/usr/include    \
-      libc_cv_slibdir=/usr/lib
-
-

- O significado das opções de configure: -

-
-
- --host=$LFS_TGT, - --build=$(../scripts/config.guess) -
-
-

- O efeito combinado dessas chaves é o de que o sistema - de construção do Glibc se autoconfigura para ser - compilado cruzadamente, usando o vinculador cruzado e - compilador cruzado em $LFS/tools. -

-
-
- --enable-kernel=3.2 -
-
-

- Isso diz a Glibc para compilar a biblioteca com suporte - para kernels Linux 3.2 e posteriores. Contornos para - kernels antigos não estão habilitados. -

-
-
- --with-headers=$LFS/usr/include -
-
-

- Isso diz a Glibc para compilar a si mesmo com os - cabeçalhos recentemente instalados no diretório - $LFS/usr/include, de forma que ele saiba exatamente - quais características o kernel tem e possa otimizar-se - adequadamente. -

-
-
- libc_cv_slibdir=/usr/lib -
-
-

- Isso garante que a biblioteca seja instalada em - /usr/lib em vez do padrão /lib64 em máquinas de 64 - bits. -

-
-
-
-

- Durante este estágio o seguinte alerta pode aparecer: -

-
-
-
configure: WARNING:
-*** These auxiliary programs are missing or
-*** incompatible versions: msgfmt
-*** some features will be disabled.
-*** Check the INSTALL file for required versions.
-
-
-

- O aplicativo msgfmt faltando ou - incompatível geralmente é inofensivo. Esse aplicativo - msgfmt é parte - do pacote Gettext que a distribuição anfitriã deveria - fornecer. -

-
-

- Nota -

-

- Tem havido relatos de que esse pacote talvez falhe quando - da construção como um "parallel make". Se isso ocorrer, - então reexecute o comando make com uma opção "-j1". -

-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
-

- Atenção -

-

- Se LFS não estiver adequadamente - configurada, e a despeito das recomendações, você estiver - construindo como root, - então o próximo comando instalará a recém construída glibc - em seu sistema anfitrião, o que possivelmente o tornará - inutilizável. Portanto, verifique duas vezes se o ambiente - está corretamente configurado, antes de executar o seguinte - comando. -

-
-
make DESTDIR=$LFS install
-
-

- O significado da opção make install: -

-
-
- DESTDIR=$LFS -
-
-

- A variável DESTDIR de make é - usada por quase todos os pacotes para definir a - localização onde o pacote deveria ser instalado. Se ela - não estiver configurada, então o padrão é o diretório - raiz (/). Aqui nós - especificamos que o pacote seja instalado em - $LFS, que se tornará a - raiz após Seção 7.4, - “Entrando no Ambiente Chroot”. -

-
-
-
-

- Corrija caminho codificado rigidamente para o carregador de - executável em script ldd: -

-
sed '/RTLDLIST=/s@/usr@@g' -i $LFS/usr/bin/ldd
-
-

- Cuidado -

-

- Neste ponto, é imperativo parar e certificar-se de que as - funções básicas (compilar e lincar) do novo conjunto de - ferramentas estão funcionando como esperado. Para realizar - uma verificação de sanidade, execute os seguintes comandos: -

-
echo 'int main(){}' > dummy.c
-$LFS_TGT-gcc dummy.c
-readelf -l a.out | grep '/ld-linux'
-

- Se tudo estiver funcionando corretamente, então não - deveriam existir quaisquer erros, e a saída do último - comando será na forma: -

-
[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
-

- Note que para máquinas de 32 bits, o nome do interpretador - será /lib/ld-linux.so.2. -

-

- Se a saída não for mostrada como acima ou não existir saída - nenhuma, então alguma coisa está errada. Investigue e - retrace os passos para encontrar onde está o problema e - corrija-o. Esse problema deve ser resolvido antes de - continuar. -

-

- Uma vez que tudo esteja bem, limpe os arquivos de teste: -

-
rm -v dummy.c a.out
-
-
-

- Nota -

-

- Construir pacotes no próximo capítulo servirá como uma - verificação adicional de que o conjunto de ferramentas foi - construído adequadamente. Se algum pacote, especialmente - binutils-passagem 2 ou gcc-passagem 2, falhar na - construção, então isso é uma indicação de que alguma coisa - deu errado com as instalações anteriores de Binutils, GCC - ou Glibc. -

-
-

- Agora que nosso conjunto de ferramentas cruzadas está - completa, finalize a instalação do cabeçalho limits.h. Para - fazer isso, execute um utilitário fornecido pelas(os) - desenvolvedoras(os) de GCC: -

-
$LFS/tools/libexec/gcc/$LFS_TGT/11.2.0/install-tools/mkheaders
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.5.3, “Conteúdo - de Glibc.” -

-
-
-
-
-
-
-

- 5.6. Libstdc++ - oriundo de GCC-11.2.0, Passagem 1 -

-
-
-
-
-

- Libstdc++ é a biblioteca padrão C++. Ela é necessária para - compilar código C++ (parte de GCC é escrito em C++), porém - nós tivemos que adiar sua instalação quando construímos - gcc-pass1, pois ela - depende de glibc, que ainda não estava disponível no - diretório alvo. -

-
-
-
- Tempo aproximado de - construção: 0,4 UPC -
-
- Espaço em disco - exigido: 818 MB -
-
-
-
-
-

- 5.6.1. Instalação de Libstdc++ Alvo -

-
-

- Nota -

-

- Libstdc++ é parte dos - fontes de GCC. Você deveria primeiro desempacotar o tarball - de GCC e mudar para o diretório gcc-11.2.0. -

-
-

- Crie um diretório de construção separado para libstdc++ e - entre nele: -

-
mkdir -v build
-cd       build
-

- Prepare libstdc++ para compilação: -

-
../libstdc++-v3/configure           \
-    --host=$LFS_TGT                 \
-    --build=$(../config.guess)      \
-    --prefix=/usr                   \
-    --disable-multilib              \
-    --disable-nls                   \
-    --disable-libstdcxx-pch         \
-    --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/11.2.0
-
-

- O significado das opções de configure: -

-
-
- --host=... -
-
-

- Especifica que o compilador cruzado que nós acabamos de - construir deveria ser usado em vez daquele em - /usr/bin. -

-
-
- --disable-libstdcxx-pch -
-
-

- Essa chave evita a instalação de arquivos include - pré-compilados, os quais não são necessários neste - estágio. -

-
-
- --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/11.2.0 -
-
-

- Isso especifica o diretório de instalação para arquivos - include. Por causa de libstdc++ ser a biblioteca padrão - C++ para LFS, esse diretório deveria coincidir com a - localização onde o compilador C++ ($LFS_TGT-g++) - procuraria pelos arquivos include C++ padrão. Em uma - construção normal, essa informação é automaticamente - passada para as opções configure de - libstdc++ a partir do diretório de nível de topo. Em - nosso caso, essa informação deve ser explicitamente - dada. O compilador C++ precederá o caminho raiz de - sistema $LFS - (especificado quando da construção de GCC passagem 1) - para o caminho de pesquisa de arquivo include, de forma - que ele atualmente pesquisará em $LFS/tools/$LFS_TGT/include/c++/11.2.0. - A combinação da variável DESTDIR (no comando - make - install abaixo) e essa chave garante - instalar os cabeçalhos lá. -

-
-
-
-

- Compile libstdc++ executando: -

-
make
-

- Instale a biblioteca: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.26.2, “Conteúdo - de GCC.” -

-
-
-
-
-
-
-
-

- Capítulo 6. Compilando - Cruzadamente Ferramentas Temporárias -

-
-
-
-
-
-
-
-

- 6.1. Introdução -

-
-
-
-

- Este capítulo mostra como compilar cruzadamente utilitários - básicos usando o recém construído conjunto de ferramentas - cruzadas. Esses utilitários são instalados no local final - deles, porém ainda não podem ser usados. Tarefas básicas ainda - dependem das ferramentas do anfitrião. Apesar disso, as - bibliotecas instaladas são usadas quando da vinculação. -

-

- O uso dos utilitários será possível no próximo capítulo após - entrada no ambiente chroot. Porém, todos os pacotes - construídos no presente capítulo precisam ser construídos antes - que façamos isso. Dessa forma nós ainda não podemos ficar - independentes do sistema anfitrião. -

-

- Uma vez mais, permita-nos relembrar que a configuração - inapropriada de LFS junto com a - construção como root, talvez - torne seu computador inutilizável. Este capítulo inteiro - precisa ser feito como usuária(o) lfs, com o ambiente conforme descrito em - Seção 4.4, - “Configurando o Ambiente”. -

-
-
-
-
-
-

- 6.2. M4-1.4.19 -

-
-
-
-
-

- O pacote M4 contém um processador de macro. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 31 MB -
-
-
-
-
-

- 6.2.1. Instalação de M4 -

-

- Prepare M4 para compilação: -

-
./configure --prefix=/usr   \
-            --host=$LFS_TGT \
-            --build=$(build-aux/config.guess)
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.12.2, “Conteúdo - de M4.” -

-
-
-
-
-
-
-

- 6.3. Ncurses-6.3 -

-
-
-
-
-

- O pacote Ncurses contém bibliotecas para manipulação de telas - de caracteres independente de terminal. -

-
-
-
- Tempo aproximado de - construção: 0,7 UPC -
-
- Espaço em disco - exigido: 50 MB -
-
-
-
-
-

- 6.3.1. Instalação de Ncurses -

-

- Primeiro, assegure que gawk é encontrado primeiro - durante a configuração: -

-
sed -i s/mawk// configure
-

- Então, execute os seguintes comandos para construir o - aplicativo tic no anfitrião de construção: -

-
mkdir build
-pushd build
-  ../configure
-  make -C include
-  make -C progs tic
-popd
-

- Prepare Ncurses para compilação: -

-
./configure --prefix=/usr                \
-            --host=$LFS_TGT              \
-            --build=$(./config.guess)    \
-            --mandir=/usr/share/man      \
-            --with-manpage-format=normal \
-            --with-shared                \
-            --without-debug              \
-            --without-ada                \
-            --without-normal             \
-            --disable-stripping          \
-            --enable-widec
-
-

- O significado das novas opções de - configure: -

-
-
- --with-manpage-format=normal -
-
-

- Isso evita que Ncurses instale páginas comprimidas de - manual, o que talvez aconteceu se a própria - distribuição anfitriã tiver páginas comprimidas de - manual. -

-
-
- --without-ada -
-
-

- Isso assegura que Ncurses não construa suporte para o - compilador Ada, o qual talvez esteja presente no - anfitrião, porém não estará disponível até que nós - entremos no ambiente chroot. -

-
-
- --disable-stripping -
-
-

- Essa chave impede o sistema de construção de despojar - os aplicativos usando o aplicativo strip oriundo do - anfitrião. O uso de ferramentas de anfitrião em - aplicativo compilado cruzadamente pode causar falha. -

-
-
- --enable-widec -
-
-

- Essa chave faz com que bibliotecas de caracteres largos - (por exemplo, libncursesw.so.6.3) sejam construídas - em vez de bibliotecas normais (por exemplo, - libncurses.so.6.3). Essas - bibliotecas de caracteres largos são utilizáveis tanto - em locales de múltiplos bytes quanto em tradicionais de - oito (08) bits, enquanto bibliotecas normais funcionam - adequadamente só em locales de oito (08) bits. - Bibliotecas de caracteres largos e bibliotecas normais - são compatíveis em fonte, mas não são compatíveis em - binário. -

-
-
- --without-normal -
-
-

- Essa chave desabilita a construção e instalação da - maioria das bibliotecas estáticas. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS TIC_PATH=$(pwd)/build/progs/tic install
-echo "INPUT(-lncursesw)" > $LFS/usr/lib/libncurses.so
-
-

- O significado das opções de install: -

-
-
- TIC_PATH=$(pwd)/build/progs/tic -
-
-

- Nós precisamos passar o caminho do recém construído - tic apto - para executar na máquina de construção, de forma que a - base de dados de terminal possa ser criada sem erros. -

-
-
- echo - "INPUT(-lncursesw)" > - $LFS/usr/lib/libncurses.so -
-
-

- A biblioteca libncurses.so é necessária para uns - poucos pacotes que nós construiremos breve. Nós criamos - esse pequeno script vinculador, pois isso é o que é - feito em - Capítulo 8. -

-
-
-
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.28.2, - “Conteúdo de Ncurses.” -

-
-
-
-
-
-
-

- 6.4. Bash-5.1.16 -

-
-
-
-
-

- O pacote Bash contém o Bourne-Again SHell. -

-
-
-
- Tempo aproximado de - construção: 0,4 UPC -
-
- Espaço em disco - exigido: 64 MB -
-
-
-
-
-

- 6.4.1. Instalação de Bash -

-

- Prepare Bash para compilação: -

-
./configure --prefix=/usr                   \
-            --build=$(support/config.guess) \
-            --host=$LFS_TGT                 \
-            --without-bash-malloc
-
-

- O significado das opções de configure: -

-
-
- --without-bash-malloc -
-
-

- Essa opção desliga o uso da função de alocação de - memória do Bash (malloc) - a qual é conhecida por causar falhas de segmentação. Ao - se desligar essa opção, Bash usará as funções - malloc originárias de - Glibc que são mais estáveis. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-

- Faça um link para os aplicativos que usam sh para um shell: -

-
ln -sv bash $LFS/bin/sh
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.34.2, “Conteúdo - do Bash.” -

-
-
-
-
-
-
-

- 6.5. Coreutils-9.0 -

-
-
-
-
-

- O pacote Coreutils contém utilitários para mostrar e - configurar as características básicas de sistema. -

-
-
-
- Tempo aproximado de - construção: 0,6 UPC -
-
- Espaço em disco - exigido: 158 MB -
-
-
-
-
-

- 6.5.1. Instalação de Coreutils -

-

- Prepare Coreutils para compilação: -

-
./configure --prefix=/usr                     \
-            --host=$LFS_TGT                   \
-            --build=$(build-aux/config.guess) \
-            --enable-install-program=hostname \
-            --enable-no-install-program=kill,uptime
-
-

- O significado das opções de configure: -

-
-
- --enable-install-program=hostname -
-
-

- Isso habilita o binário hostname para ser - construído e instalado – ele é desabilitado por - padrão, porém é exigido pela suíte de teste de Perl. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-

- Mova aplicativos para seus locais finais esperados. Apesar de - isso não ser necessário neste ambiente temporário, nós - precisamos fazer isso, pois alguns aplicativos codificam - rigidamente locais de executável: -

-
mv -v $LFS/usr/bin/chroot              $LFS/usr/sbin
-mkdir -pv $LFS/usr/share/man/man8
-mv -v $LFS/usr/share/man/man1/chroot.1 $LFS/usr/share/man/man8/chroot.8
-sed -i 's/"1"/"8"/'                    $LFS/usr/share/man/man8/chroot.8
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.53.2, - “Conteúdo do Coreutils.” -

-
-
-
-
-
-
-

- 6.6. Diffutils-3.8 -

-
-
-
-
-

- O pacote Diffutils contém aplicativos que mostram as - diferenças entre arquivos ou diretórios. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 27 MB -
-
-
-
-
-

- 6.6.1. Instalação de Diffutils -

-

- Prepare Diffutils para compilação: -

-
./configure --prefix=/usr --host=$LFS_TGT
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.55.2, - “Conteúdo do Diffutils.” -

-
-
-
-
-
-
-

- 6.7. File-5.41 -

-
-
-
-
-

- O pacote File contém um utilitário para determinar o tipo de - um dado arquivo ou arquivos. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 32 MB -
-
-
-
-
-

- 6.7.1. Instalação de File -

-

- O comando file - no anfitrião de construção precisa ser da mesma versão que - aquele que nós estamos construindo com a finalidade de criar - o arquivo de assinatura. Execute os seguintes comandos para - construí-lo: -

-
mkdir build
-pushd build
-  ../configure --disable-bzlib      \
-               --disable-libseccomp \
-               --disable-xzlib      \
-               --disable-zlib
-  make
-popd
-
-

- O significado da nova opção de configure: -

-
-
- --disable-* -
-
-

- O script de configuração tenta usar alguns pacotes - originários da distribuição anfitriã se os arquivos de - biblioteca correspondentes existirem. Isso talvez cause - falha de compilação se um arquivo de biblioteca - existir, porém os arquivos de cabeçalhos - correspondentes não. Essas opções impedem o uso dessas - capacidades desnecessárias a partir do anfitrião. -

-
-
-
-

- Prepare File para compilação: -

-
./configure --prefix=/usr --host=$LFS_TGT --build=$(./config.guess)
-

- Compile o pacote: -

-
make FILE_COMPILE=$(pwd)/build/src/file
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.10.2, “Conteúdo - de File.” -

-
-
-
-
-
-
-

- 6.8. Findutils-4.9.0 -

-
-
-
-
-

- O pacote Findutils contém aplicativos para procurar arquivos. - Esses aplicativos são fornecidos para procurar recursivamente - dentro de uma árvore de diretório e para criar, manter e - buscar um banco de dados (geralmente mais rápido que o find - recursivo, porém não é confiável se o banco de dados não for - atualizado recentemente). -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 42 MB -
-
-
-
-
-

- 6.8.1. Instalação de Findutils -

-

- Prepare Findutils para compilação: -

-
./configure --prefix=/usr                   \
-            --localstatedir=/var/lib/locate \
-            --host=$LFS_TGT                 \
-            --build=$(build-aux/config.guess)
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.57.2, - “Conteúdo do Findutils.” -

-
-
-
-
-
-
-

- 6.9. Gawk-5.1.1 -

-
-
-
-
-

- O pacote Gawk contém aplicativos para manipular arquivos de - texto. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 45 MB -
-
-
-
-
-

- 6.9.1. Instalação de Gawk -

-

- Primeiro, garanta que alguns arquivos desnecessários não - sejam instalados: -

-
sed -i 's/extras//' Makefile.in
-

- Prepare Gawk para compilação: -

-
./configure --prefix=/usr   \
-            --host=$LFS_TGT \
-            --build=$(build-aux/config.guess)
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.56.2, “Conteúdo - do Gawk.” -

-
-
-
-
-
-
-

- 6.10. Grep-3.7 -

-
-
-
-
-

- O pacote Grep contém aplicativos para procura ao longo do - conteúdo de arquivos. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 26 MB -
-
-
-
-
-

- 6.10.1. Instalação de Grep -

-

- Prepare Grep para compilação: -

-
./configure --prefix=/usr   \
-            --host=$LFS_TGT
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.33.2, “Conteúdo - do Grep.” -

-
-
-
-
-
-
-

- 6.11. Gzip-1.11 -

-
-
-
-
-

- O pacote Gzip contém aplicativos para compressão e - descompressão de arquivos. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 11 MB -
-
-
-
-
-

- 6.11.1. Instalação de Gzip -

-

- Prepare Gzip para compilação: -

-
./configure --prefix=/usr --host=$LFS_TGT
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.60.2, “Conteúdo - do Gzip.” -

-
-
-
-
-
-
-

- 6.12. Make-4.3 -

-
-
-
-
-

- O pacote Make contém um aplicativo para controlar a geração - de executáveis e outros arquivos não fonte de um pacote a - partir de arquivos fonte. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 15 MB -
-
-
-
-
-

- 6.12.1. Instalação de Make -

-

- Prepare Make para compilação: -

-
./configure --prefix=/usr   \
-            --without-guile \
-            --host=$LFS_TGT \
-            --build=$(build-aux/config.guess)
-
-

- O significado da nova opção de configure: -

-
-
- --without-guile -
-
-

- Apesar de nós estarmos compilando cruzadamente, - configure tenta usar guile a partir do anfitrião de - construção se encontrá-lo. Isso provoca falha de - compilação, de forma que essa chave impede o uso de - guile. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.64.2, “Conteúdo - do Make.” -

-
-
-
-
-
-
-

- 6.13. Patch-2.7.6 -

-
-
-
-
-

- O pacote Patch contém um aplicativo para modificar ou criar - arquivos por aplicação de um arquivo patch - tipicamente criado pelo aplicativo diff. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 12 MB -
-
-
-
-
-

- 6.13.1. Instalação de Patch -

-

- Prepare Patch para compilação: -

-
./configure --prefix=/usr   \
-            --host=$LFS_TGT \
-            --build=$(build-aux/config.guess)
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.65.2, - “Conteúdo do Patch.” -

-
-
-
-
-
-
-

- 6.14. Sed-4.8 -

-
-
-
-
-

- O pacote Sed contém um editor de fluxo. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 20 MB -
-
-
-
-
-

- 6.14.1. Instalação de Sed -

-

- Prepare Sed para compilação: -

-
./configure --prefix=/usr   \
-            --host=$LFS_TGT
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.29.2, “Conteúdo - do Sed.” -

-
-
-
-
-
-
-

- 6.15. Tar-1.34 -

-
-
-
-
-

- O pacote Tar fornece a habilidade para criar arquivamentos - tar bem como realizar vários outros tipos de manipulação de - arquivamento. Tar pode ser usado em arquivamentos previamente - criados para extrair arquivos, para armazenar arquivos - adicionais, ou para atualizar ou listar arquivos que já foram - armazenados. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 38 MB -
-
-
-
-
-

- 6.15.1. Instalação de Tar -

-

- Prepare Tar para compilação: -

-
./configure --prefix=/usr                     \
-            --host=$LFS_TGT                   \
-            --build=$(build-aux/config.guess)
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.66.2, “Conteúdo - do Tar.” -

-
-
-
-
-
-
-

- 6.16. Xz-5.2.5 -

-
-
-
-
-

- O pacote Xz contém aplicativos para compressão e - descompressão de arquivos. Ele fornece capacidades para os - formatos de compressão lzma e o mais novo xz. Comprimir - arquivos de texto com xz gera uma melhor - percentagem de compressão que os tradicionais comandos - gzip ou - bzip2. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 15 MB -
-
-
-
-
-

- 6.16.1. Instalação de Xz -

-

- Prepare Xz para compilação: -

-
./configure --prefix=/usr                     \
-            --host=$LFS_TGT                   \
-            --build=$(build-aux/config.guess) \
-            --disable-static                  \
-            --docdir=/usr/share/doc/xz-5.2.5
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.8.2, “Conteúdo de - Xz.” -

-
-
-
-
-
-
-

- 6.17. Binutils-2.38 - - Passagem 2 -

-
-
-
-
-

- O pacote Binutils contém um vinculador, um montador, e outras - ferramentas para manusear arquivos objeto. -

-
-
-
- Tempo aproximado de - construção: 1,3 UPC -
-
- Espaço em disco - exigido: 520 MB -
-
-
-
-
-

- 6.17.1. Instalação de Binutils -

-

- Binutils entrega uma cópia desatualizada de libtool no - tarball. Ela carece de suporte de raiz de sistema de forma - que os binários produzidos serão erroneamente vinculados à - bibliotecas originárias da distribuição anfitriã. Contorne - esse problema: -

-
sed '6009s/$add_dir//' -i ltmain.sh
-

- Crie um diretório de construção separado novamente: -

-
mkdir -v build
-cd       build
-

- Prepare Binutils para compilação: -

-
../configure                   \
-    --prefix=/usr              \
-    --build=$(../config.guess) \
-    --host=$LFS_TGT            \
-    --disable-nls              \
-    --enable-shared            \
-    --disable-werror           \
-    --enable-64-bit-bfd
-
-

- O significado das novas opções de - configure: -

-
-
- --enable-shared -
-
-

- Constrói libbfd como uma - biblioteca compartilhada. -

-
-
- --enable-64-bit-bfd -
-
-

- Habilita suporte de 64 bits (em anfitriões com tamanhos - de palavra mais estreitos). Talvez não seja necessário - em sistemas de 64 bits, porém não causa dano. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.18.2, - “Conteúdo de Binutils.” -

-
-
-
-
-
-
-

- 6.18. GCC-11.2.0 - - Passagem 2 -

-
-
-
-
-

- O pacote GCC contém a GNU compiler collection, o qual inclui - os compiladores C e C++. -

-
-
-
- Tempo aproximado de - construção: 11 UPC -
-
- Espaço em disco - exigido: 3,3 GB -
-
-
-
-
-

- 6.18.1. Instalação de GCC -

-

- Como na primeira construção de GCC, os pacotes GMP, MPFR, e - MPC são exigidos. Desempacote os tarballs e mova-os para os - nomes de diretório exigidos: -

-
tar -xf ../mpfr-4.1.0.tar.xz
-mv -v mpfr-4.1.0 mpfr
-tar -xf ../gmp-6.2.1.tar.xz
-mv -v gmp-6.2.1 gmp
-tar -xf ../mpc-1.2.1.tar.gz
-mv -v mpc-1.2.1 mpc
-

- Se construindo em x86_64, então mude o nome padrão de - diretório para bibliotecas de 64 bits para lib: -

-
case $(uname -m) in
-  x86_64)
-    sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64
-  ;;
-esac
-

- Crie um diretório de construção separado novamente: -

-
mkdir -v build
-cd       build
-

- Crie um link simbólico que permite que libgcc seja construída - com suporte posix de camadas: -

-
mkdir -pv $LFS_TGT/libgcc
-ln -s ../../../libgcc/gthr-posix.h $LFS_TGT/libgcc/gthr-default.h
-

- Antes de iniciar a construção de GCC, lembre-se de - desconfigurar quaisquer variáveis de ambiente que substituam - os sinalizadores de otimização padrão. -

-

- Agora prepare GCC para compilação: -

-
../configure                                       \
-    --build=$(../config.guess)                     \
-    --host=$LFS_TGT                                \
-    --prefix=/usr                                  \
-    CC_FOR_TARGET=$LFS_TGT-gcc                     \
-    --with-build-sysroot=$LFS                      \
-    --enable-initfini-array                        \
-    --disable-nls                                  \
-    --disable-multilib                             \
-    --disable-decimal-float                        \
-    --disable-libatomic                            \
-    --disable-libgomp                              \
-    --disable-libquadmath                          \
-    --disable-libssp                               \
-    --disable-libvtv                               \
-    --disable-libstdcxx                            \
-    --enable-languages=c,c++
-
-

- O significado das novas opções de - configure: -

-
-
- -with-build-sysroot=$LFS -
-
-

- Normalmente, usar --host garante que um - compilador cruzado seja usado para construir GCC, e que - o compilador sabe que tem que procurar por cabeçalhos e - bibliotecas em $LFS. - Porém, o sistema de construção de GCC usa outras - ferramentas, que não estão cientes dessa localização. - Essa chave é necessária para que elas busquem os - arquivos necessários em $LFS, e não no anfitrião. -

-
-
- --enable-initfini-array -
-
-

- Essa opção é automaticamente habilitada quando da - construção de um compilador nativo com um compilador - nativo em x86. Porém, aqui, nós construímos com um - compilador cruzado, de forma que nós precisamos - explicitamente configurar essa opção. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-

- Como um toque final, crie um link simbólico utilitário. - Muitos aplicativos e scripts executam cc em vez de gcc, o que é usado para - manter genéricos os aplicativos e, assim, utilizáveis em - todos os tipos de sistemas UNIX onde o compilador C de GNU - nem sempre está instalado. Executar cc deixa a(o) - administradora(r) de sistema livre para decidir qual - compilador C instalar: -

-
ln -sv gcc $LFS/usr/bin/cc
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.26.2, “Conteúdo - de GCC.” -

-
-
-
-
-
-
-
-

- Capítulo 7. - Entrando em Chroot e Construindo Ferramentas Temporárias - Adicionais -

-
-
-
-
-
-
-
-

- 7.1. Introdução -

-
-
-
-

- Este capítulo mostra como construir os últimos bits que faltam - no sistema temporário: as ferramentas necessárias para o - maquinário de construção de vários pacotes. Agora que todas as - dependências circulares foram resolvidas, um ambiente - chroot, completamente isolado do - sistema operacional anfitrião (exceto pelo kernel em execução), - pode ser usado para a construção. -

-

- Para operação adequada do ambiente isolado, alguma comunicação - com o kernel em execução precisa ser estabelecida. Isso é feito - por meio dos assim chamados Sistemas - de Arquivos Virtuais de Kernel, que precisam ser - montados quando da entrada no ambiente chroot. Você talvez - queira verificar que eles estejam montados emitindo - findmnt. -

-

- Até Seção 7.4, - “Entrando no Ambiente Chroot”, os comandos - precisam ser executados como root, com a variável LFS configurada. Após a entrada em chroot, todos - os comandos são executados como root, por sorte sem acesso ao - OS do computador no qual que você construiu LFS. Seja - cuidadosa(o) de qualquer maneira, dado que é fácil destruir o - sistema LFS inteiro com comandos mau formados. -

-
-
-
-
-
-

- 7.2. Mudando - Propriedade -

-
-
-
-
-

- Nota -

-

- Os comandos no resto deste livro precisam ser realizados - enquanto logada(o) como usuária(o) root e não mais como usuária(o) - lfs. Também, verifique - duplamente que $LFS está - configurada no ambiente do root. -

-
-

- Atualmente, a hierarquia de diretório inteira em $LFS é de propriedade da(o) usuária(o) - lfs, uma(m) usuária(o) que - existe somente no sistema anfitrião. Se os diretórios e - arquivos sob $LFS forem mantidos - como estão, então eles serão de propriedade de um ID de - usuária(o) sem uma conta correspondente. Isso é perigoso, pois - uma conta de usuária(o) criada posteriormente poderia receber - esse mesmo ID de usuária(o) e se tornaria proprietária(o) de - todos os arquivos sob $LFS, dessa - forma expondo esses arquivos a possível manipulação maliciosa. -

-

- Para endereçar esse problema, mude a propriedade dos diretórios - $LFS/* para usuária(o) - root executando o seguinte - comando: -

-
chown -R root:root $LFS/{usr,lib,var,etc,bin,sbin,tools}
-case $(uname -m) in
-  x86_64) chown -R root:root $LFS/lib64 ;;
-esac
-
-
-
-
-
-

- 7.3. Preparando Sistemas de - Arquivos Virtuais de Kernel -

-
-
-
-

- Vários sistemas de arquivos exportados pelo kernel são usados - para comunicar para e oriunda do próprio kernel. Esses sistemas - de arquivos são virtuais uma vez que nenhum espaço de disco é - usado por eles. O conteúdo dos sistemas de arquivos reside em - memória. -

-

- Comece criando diretórios nos quais os sistemas de arquivos - serão montados: -

-
mkdir -pv $LFS/{dev,proc,sys,run}
-
-

- 7.3.1. Criando Nós de Dispositivos Iniciais -

-

- Quando o kernel inicializa o sistema, ele exige a presença de - alguns nós de dispositivos, em particular os dispositivos - console e null. Os nós de dispositivos precisam ser - criados no disco rígido de modo que eles estejam disponíveis - antes que o kernel povoe /dev), e adicionalmente quando Linux é - iniciado com init=/bin/bash. Crie os - dispositivos executando os seguintes comandos: -

-
mknod -m 600 $LFS/dev/console c 5 1
-mknod -m 666 $LFS/dev/null c 1 3
-
-
-

- 7.3.2. Montando e Povoando /dev -

-

- O método recomendado de povoar o diretório /dev com dispositivos é montar um sistema - de arquivos virtuais (tal como tmpfs) no diretório /dev, e permitir que os dispositivos sejam - criados dinamicamente naquele sistema de arquivos virtuais - conforme eles sejam detectados ou acessados. Criação de - dispositivos é geralmente feita durante o processo de - inicialização por Udev. Uma vez que esse novo sistema ainda - não tem Udev e ainda não foi inicializado, é necessário - montar e povoar /dev - manualmente. Isso é conseguido montando com bind o diretório - /dev do sistema anfitrião. Uma - montagem com bind é um tipo especial de montagem que permite - que você crie um espelho de um diretório ou ponto de montagem - para alguma outra localização. Use o seguinte comando para - conseguir isso: -

-
mount -v --bind /dev $LFS/dev
-
-
-

- 7.3.3. Montando Sistemas de - Arquivos Virtuais de Kernel -

-

- Agora monte os restantes sistemas de arquivos virtuais de - kernel: -

-
mount -v --bind /dev/pts $LFS/dev/pts
-mount -vt proc proc $LFS/proc
-mount -vt sysfs sysfs $LFS/sys
-mount -vt tmpfs tmpfs $LFS/run
-

- Em alguns sistemas anfitrião, /dev/shm é um link simbólico para - /run/shm. O tmpfs /run foi - montado acima então, nesse caso, apenas um diretório precisa - ser criado. -

-
if [ -h $LFS/dev/shm ]; then
-  mkdir -pv $LFS/$(readlink $LFS/dev/shm)
-fi
-
-
-
-
-
-
-

- 7.4. Entrando no Ambiente - Chroot -

-
-
-
-

- Agora que todos os pacotes que são exigidos para construir o - resto das ferramentas necessárias estão no sistema, é hora de - entrar no ambiente chroot para finalizar a instalação das - restantes ferramentas temporárias. Esse ambiente estará em uso - também para a instalação do sistema final. Como usuária(o) - root, execute o seguinte - comando para entrar no ambiente que é, neste momento, povoado - apenas com as ferramentas temporárias: -

-
chroot "$LFS" /usr/bin/env -i   \
-    HOME=/root                  \
-    TERM="$TERM"                \
-    PS1='(lfs chroot) \u:\w\$ ' \
-    PATH=/usr/bin:/usr/sbin     \
-    /bin/bash --login
-

- A opção -i dada para o - comando env - limpará todas as variáveis do ambiente chroot. Depois disso, - apenas as variáveis HOME, - TERM, PS1, e PATH são - configuradas novamente. A construção TERM=$TERM configurará a variável - TERM dentro de chroot para o mesmo - valor que fora de chroot. Essa variável é necessária para - aplicativos como vim e less operarem adequadamente. - Se outras variáveis forem desejadas, tais como CFLAGS ou CXXFLAGS, - então esse é um bom lugar para configurá-las novamente. -

-

- Deste ponto em diante, não mais há necessidade de usar a - variável LFS, pois todo o trabalho - estará restrito ao sistema de arquivos de LFS. Isso acontece - pois o shell Bash é informado que $LFS agora é o diretório raiz (/). -

-

- Perceba que /tools/bin não está - no PATH. Isso significa que o - conjunto de ferramentas cruzadas não mais será usado no - ambiente chroot. -

-

- Note que o prompt de bash dirá I have no name! Isso é normal, pois o - arquivo /etc/passwd ainda não foi - criado. -

-
-

- Nota -

-

- É importante que todos os comandos até o final deste capítulo - e nos capítulos seguintes sejam executados de dentro do - ambiente chroot. Se você deixar esse ambiente por qualquer - razão (reiniciar, por exemplo), então certifique-se que os - sistemas de arquivos virtuais de kernel estejam montados como - explicado em Seção 7.3.2, - “Montando e Povoando /dev” e Seção 7.3.3, - “Montando Sistemas de Arquivos Virtuais de - Kernel” e entre no chroot novamente antes de - continuar a instalação. -

-
-
-
-
-
-
-

- 7.5. Criando Diretórios -

-
-
-
-

- É tempo de criar a estrutura completa no sistema de arquivos - LFS. -

-

- Crie alguns diretórios de nível de raiz que não estão no - conjunto limitado exigido nos capítulos anteriores emitindo o - seguinte comando: -

-
-

- Nota -

-

- Alguns dos diretórios abaixo já foram criados anteriormente - com instruções explícitas ou quando da instalação de alguns - pacotes. Elas estão repetidas abaixo para completude. -

-
-
mkdir -pv /{boot,home,mnt,opt,srv}
-

- Crie o conjunto exigido de subdiretórios abaixo do nível de - raiz emitindo os seguintes comandos: -

-
mkdir -pv /etc/{opt,sysconfig}
-mkdir -pv /lib/firmware
-mkdir -pv /media/{floppy,cdrom}
-mkdir -pv /usr/{,local/}{include,src}
-mkdir -pv /usr/local/{bin,lib,sbin}
-mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man}
-mkdir -pv /usr/{,local/}share/{misc,terminfo,zoneinfo}
-mkdir -pv /usr/{,local/}share/man/man{1..8}
-mkdir -pv /var/{cache,local,log,mail,opt,spool}
-mkdir -pv /var/lib/{color,misc,locate}
-
-ln -sfv /run /var/run
-ln -sfv /run/lock /var/lock
-
-install -dv -m 0750 /root
-install -dv -m 1777 /tmp /var/tmp
-

- Diretórios são, por padrão, criados com modo de permissão 755, - mas isso não é desejável para todos os diretórios. Nos comandos - acima, duas mudanças são feitas—uma para o diretório home - da(o) usuária(o) root, e outra - para os diretórios para arquivos temporários. -

-

- A primeira mudança de modo assegura que nem qualquer pessoa - possa entrar no diretório /root—o mesmo que uma(m) usuária(o) - normal faria com o diretório home dela ou dele. A segunda - mudança de modo garante que qualquer usuária(o) possa escrever - nos diretórios /tmp e - /var/tmp, mas não possa remover - deles os arquivos de outras(os) usuárias(os). Essa última é - proibida pelo assim chamado sticky - bit, o bit mais alto (1) na máscara de - bits 1777. -

-
-

- 7.5.1. Nota de conformidade FHS -

-

- A árvore de diretório é baseada no Padrão de Hierarquia de - Sistema de Arquivos (Filesystem Hierarchy Standard - FHS) - (disponível em https://refspecs.linuxfoundation.org/fhs.shtml). - O FHS também especifica a existência opcional de alguns - diretórios tais como /usr/local/games e /usr/share/games. Nós criamos apenas os - diretórios que são necessários. Entretanto, sinta-se livre - para criar esses diretórios. -

-
-
-
-
-
-
-

- 7.6. Criando Arquivos - Essenciais e Links Simbólicos -

-
-
-
-

- Historicamente, o Linux mantém uma lista dos sistemas de - arquivos montados no arquivo /etc/mtab. Kernels modernos mantém essa lista - internamente e expõem ela para a(o) usuária(o) via sistema de - arquivos /proc. Para satisfazer - utilitários que esperam a presença de /etc/mtab, crie o seguinte link simbólico: -

-
ln -sv /proc/self/mounts /etc/mtab
-

- Crie um arquivo /etc/hosts básico - para ser referenciado em algumas suítes de teste, e em um dos - arquivos de configuração do Perl também: -

-
cat > /etc/hosts << EOF
-127.0.0.1  localhost $(hostname)
-::1        localhost
-EOF
-

- Para que a(o) usuária(o) root - seja capaz de logar e para que o nome root - seja reconhecido, precisa existir entradas relevantes nos - arquivos /etc/passwd e - /etc/group. -

-

- Crie o arquivo /etc/passwd - executando o seguinte comando: -

-
cat > /etc/passwd << "EOF"
-root:x:0:0:root:/root:/bin/bash
-bin:x:1:1:bin:/dev/null:/usr/bin/false
-daemon:x:6:6:Daemon User:/dev/null:/usr/bin/false
-messagebus:x:18:18:D-Bus Message Daemon User:/run/dbus:/usr/bin/false
-systemd-journal-gateway:x:73:73:systemd Journal Gateway:/:/usr/bin/false
-systemd-journal-remote:x:74:74:systemd Journal Remote:/:/usr/bin/false
-systemd-journal-upload:x:75:75:systemd Journal Upload:/:/usr/bin/false
-systemd-network:x:76:76:systemd Network Management:/:/usr/bin/false
-systemd-resolve:x:77:77:systemd Resolver:/:/usr/bin/false
-systemd-timesync:x:78:78:systemd Time Synchronization:/:/usr/bin/false
-systemd-coredump:x:79:79:systemd Core Dumper:/:/usr/bin/false
-uuidd:x:80:80:UUID Generation Daemon User:/dev/null:/usr/bin/false
-systemd-oom:x:81:81:systemd Out Of Memory Daemon:/:/usr/bin/false
-nobody:x:99:99:Unprivileged User:/dev/null:/usr/bin/false
-EOF
-

- A senha atual para root será - configurada mais tarde. -

-

- Crie o arquivo /etc/group - executando o seguinte comando: -

-
cat > /etc/group << "EOF"
-root:x:0:
-bin:x:1:daemon
-sys:x:2:
-kmem:x:3:
-tape:x:4:
-tty:x:5:
-daemon:x:6:
-floppy:x:7:
-disk:x:8:
-lp:x:9:
-dialout:x:10:
-audio:x:11:
-video:x:12:
-utmp:x:13:
-usb:x:14:
-cdrom:x:15:
-adm:x:16:
-messagebus:x:18:
-systemd-journal:x:23:
-input:x:24:
-mail:x:34:
-kvm:x:61:
-systemd-journal-gateway:x:73:
-systemd-journal-remote:x:74:
-systemd-journal-upload:x:75:
-systemd-network:x:76:
-systemd-resolve:x:77:
-systemd-timesync:x:78:
-systemd-coredump:x:79:
-uuidd:x:80:
-systemd-oom:x:81:
-wheel:x:97:
-nogroup:x:99:
-users:x:999:
-EOF
-

- Os grupos criados não são parte de qualquer padrão—eles - são grupos decididos em parte pelas exigências da configuração - de Udev no Capítulo 9, e em parte pelas convenções comuns - empregadas por um número de distribuições Linux existentes. Em - adição, algumas suítes de teste dependem de usuárias(os) ou - grupos específicos. A Base Padrão Linux (Linux Standard Base - - LSB, disponível em http://refspecs.linuxfoundation.org/lsb.shtml) - apenas recomenda que, além do grupo root com um ID de Grupo (GID) de 0, um - grupo bin com um GID de 1 - esteja presente. Todos os outros nomes de grupo e GIDs podem - ser escolhidos livremente pela(o) administradora(r) de sistema - uma vez que aplicativos bem escritos não dependem de números de - GID, mas sim usam o nome do grupo. -

-

- Alguns testes em Capítulo 8 - precisam de uma(m) usuária(o) regular. Nós adicionamos essa(e) - usuária(o) aqui e deletamos essa conta ao final daquele - capítulo. -

-
echo "tester:x:101:101::/home/tester:/bin/bash" >> /etc/passwd
-echo "tester:x:101:" >> /etc/group
-install -o tester -d /home/tester
-

- Para remover o prompt I have no name!, inicie um novo - shell. Uma vez que os arquivos /etc/passwd e /etc/group foram criados, resolução de nome - de usuária(o) e nome de grupo agora funcionará: -

-
exec /usr/bin/bash --login
-

- Os aplicativos login, agetty, e init (e outros) usam um - número de arquivos de log para registrar informação tais como - quem esteve logada(o) no sistema e quando. Entretanto, esses - aplicativos não escreverão nos arquivos de log se eles já não - existirem. Inicialize os arquivos de log e dê a eles permissões - adequadas: -

-
touch /var/log/{btmp,lastlog,faillog,wtmp}
-chgrp -v utmp /var/log/lastlog
-chmod -v 664  /var/log/lastlog
-chmod -v 600  /var/log/btmp
-

- O arquivo /var/log/wtmp registra - todos os logins e logouts. O arquivo /var/log/lastlog registra quando cada - usuária(o) logou pela última vez. O arquivo /var/log/faillog registra tentativas de login - falhas. O arquivo /var/log/btmp - registra tentativas de login inválidas. -

-
-

- Nota -

-

- O arquivo /run/utmp registra - as(os) usuárias(os) que estão atualmente logadas(os). Esse - arquivo é criado dinamicamente nos scripts de inicialização. -

-
-
-
-
-
-
-

- 7.7. Libstdc++ - oriundo de GCC-11.2.0, Passagem 2 -

-
-
-
-
-

- Quando da construção de gcc-pass2 nós tivemos que - adiar a instalação da biblioteca padrão C++, pois nenhum - compilador adequado estava disponível para compilá-la. Nós - não poderíamos usar o compilador construído naquela seção, - por causa de que ele é um compilador nativo e não deveria ser - usado do lado de fora do chroot e riscos de poluir as - bibliotecas com alguns componentes do anfitrião. -

-
-
-
- Tempo aproximado de - construção: 0,8 UPC -
-
- Espaço em disco - exigido: 1,1 GB -
-
-
-
-
-

- 7.7.1. Instalação de Libstdc++ Alvo -

-
-

- Nota -

-

- Libstdc++ é parte dos - fontes de GCC. Você deveria primeiro desempacotar o tarball - de GCC e mudar para o diretório gcc-11.2.0. -

-
-

- Crie um link que existe quando da construção de libstdc++ na - árvore de gcc: -

-
ln -s gthr-posix.h libgcc/gthr-default.h
-

- Crie um diretório de construção separado para libstdc++ e - entre nele: -

-
mkdir -v build
-cd       build
-

- Prepare libstdc++ para compilação: -

-
../libstdc++-v3/configure            \
-    CXXFLAGS="-g -O2 -D_GNU_SOURCE"  \
-    --prefix=/usr                    \
-    --disable-multilib               \
-    --disable-nls                    \
-    --host=$(uname -m)-lfs-linux-gnu \
-    --disable-libstdcxx-pch
-
-

- O significado das opções de configure: -

-
-
- CXXFLAGS="-g -O2 - -D_GNU_SOURCE" -
-
-

- Esses sinalizadores são passados pelo Makefile de nível - de topo quando da feitura de uma construção completa de - GCC. -

-
-
- --host=$(uname - -m)-lfs-linux-gnu -
-
-

- Nós temos que imitar o que teria acontecido se esse - pacote fosse construído como parte de uma construção - completa de compilador. Essa chave teria sido passada - para configure pelo maquinário de construção do GCC. -

-
-
- --disable-libstdcxx-pch -
-
-

- Essa chave evita a instalação de arquivos include - pré-compilados, os quais não são necessários neste - estágio. -

-
-
-
-

- Compile libstdc++ executando: -

-
make
-

- Instale a biblioteca: -

-
make install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.26.2, “Conteúdo - de GCC.” -

-
-
-
-
-
-
-

- 7.8. Gettext-0.21 -

-
-
-
-
-

- O pacote Gettext contém utilitários para internacionalização - e localização. Eles permitem que aplicativos sejam compilados - com Suporte ao Idioma Nativo (Native Language Support - NLS), - habilitando-os a emitir mensagens no idioma nativo da(o) - usuária(o). -

-
-
-
- Tempo aproximado de - construção: 1,6 UPC -
-
- Espaço em disco - exigido: 280 MB -
-
-
-
-
-

- 7.8.1. Instalação de Gettext -

-

- Para nosso conjunto temporário de ferramentas, nós apenas - precisamos instalar três aplicativos originários de Gettext. -

-

- Prepare Gettext para compilação: -

-
./configure --disable-shared
-
-

- O significado da opção de configure: -

-
-
- --disable-shared -
-
-

- Nós não precisamos instalar quaisquer das bibliotecas - compartilhadas de Gettext nesta ocasião, assim não - existe necessidade de construí-las. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale os aplicativos msgfmt, msgmerge, e xgettext: -

-
cp -v gettext-tools/src/{msgfmt,msgmerge,xgettext} /usr/bin
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.31.2, - “Conteúdo do Gettext.” -

-
-
-
-
-
-
-

- 7.9. Bison-3.8.2 -

-
-
-
-
-

- O pacote Bison contém um gerador de analisador. -

-
-
-
- Tempo aproximado de - construção: 0,3 UPC -
-
- Espaço em disco - exigido: 50 MB -
-
-
-
-
-

- 7.9.1. Instalação de Bison -

-

- Prepare Bison para compilação: -

-
./configure --prefix=/usr \
-            --docdir=/usr/share/doc/bison-3.8.2
-
-

- O significado da nova opção de configure: -

-
-
- --docdir=/usr/share/doc/bison-3.8.2 -
-
-

- Isso diz ao sistema de construção para instalar - documentação de bison em um diretório versionado. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.32.2, - “Conteúdo do Bison.” -

-
-
-
-
-
-
-

- 7.10. Perl-5.34.0 -

-
-
-
-
-

- O pacote Perl contém o Practical Extraction and Report - Language. -

-
-
-
- Tempo aproximado de - construção: 1,6 UPC -
-
- Espaço em disco - exigido: 272 MB -
-
-
-
-
-

- 7.10.1. Instalação de Perl -

-

- Prepare Perl para compilação: -

-
sh Configure -des                                        \
-             -Dprefix=/usr                               \
-             -Dvendorprefix=/usr                         \
-             -Dprivlib=/usr/lib/perl5/5.34/core_perl     \
-             -Darchlib=/usr/lib/perl5/5.34/core_perl     \
-             -Dsitelib=/usr/lib/perl5/5.34/site_perl     \
-             -Dsitearch=/usr/lib/perl5/5.34/site_perl    \
-             -Dvendorlib=/usr/lib/perl5/5.34/vendor_perl \
-             -Dvendorarch=/usr/lib/perl5/5.34/vendor_perl
-
-

- O significado das novas opções de - Configure: -

-
-
- -des -
-
-

- Essa é uma combinação de três opções: -d usa padrões - para todos os itens; -e assegura completamento de todas - as tarefas; -s silencia saída não essencial. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.41.2, “Conteúdo - do Perl.” -

-
-
-
-
-
-
-

- 7.11. Python-3.10.2 -

-
-
-
-
-

- O pacote Python 3 contém o ambiente Python de - desenvolvimento. Ele é útil para programação orientada a - objetos, escrita de scripts, prototipagem de aplicativos - grandes, ou desenvolvimento de aplicações inteiras. -

-
-
-
- Tempo aproximado de - construção: 1,2 UPC -
-
- Espaço em disco - exigido: 359 MB -
-
-
-
-
-

- 7.11.1. Instalação de Python -

-
-

- Nota -

-

- Existem dois arquivos de pacotes cujos nomes se iniciam com - python. Aquele a se extrair a - partir dele é Python-3.10.2.tar.xz (perceba a primeira - letra maiúscula). -

-
-

- Prepare Python para compilação: -

-
./configure --prefix=/usr   \
-            --enable-shared \
-            --without-ensurepip
-
-

- O significado da opção de configure: -

-
-
- --enable-shared -
-
-

- Essa chave impede instalação de bibliotecas estáticas. -

-
-
- --without-ensurepip -
-
-

- Essa chave desabilita o instalador de pacote de Python, - o qual não é necessário neste estágio. -

-
-
-
-

- Compile o pacote: -

-
make
-
-

- Nota -

-

- Alguns módulos de Python 3 não podem ser construídos agora, - por causa de que as dependências não estão instaladas - ainda. O sistema de construção ainda tenta construí-las, - entretanto, de forma que a compilação de alguns arquivos - falhará e a mensagem de compilador talvez pareça indicar - fatal - error. A mensagem deveria ser - ignorada. Apenas tenha certeza de que o comando de nível de - topo make não - tenha falhado. Os módulos opcionais não são necessários - agora e eles serão construídos em Capítulo 8. -

-
-

- Instale o pacote: -

-
make install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.50.2, - “Conteúdo do Python 3.” -

-
-
-
-
-
-
-

- 7.12. Texinfo-6.8 -

-
-
-
-
-

- O pacote Texinfo contém aplicativos para leitura, escrita e - conversão de páginas info. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 109 MB -
-
-
-
-
-

- 7.12.1. Instalação de Texinfo -

-

- Primeiro, conserte um problema ao construir o pacote com - Glibc-2.34 ou posterior: -

-
sed -e 's/__attribute_nonnull__/__nonnull/' \
-    -i gnulib/lib/malloc/dynarray-skeleton.c
-

- Prepare Texinfo para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.67.2, - “Conteúdo do Texinfo.” -

-
-
-
-
-
-
-

- 7.13. Util-linux-2.37.4 -

-
-
-
-
-

- O pacote Util-linux contém diversos aplicativos utilitários. -

-
-
-
- Tempo aproximado de - construção: 0,7 UPC -
-
- Espaço em disco - exigido: 129 MB -
-
-
-
-
-

- 7.13.1. Instalação de Util-linux -

-

- O FHS recomenda usar o diretório /var/lib/hwclock em vez do usual diretório - /etc como a localização para o - arquivo adjtime. Crie esse - diretório com: -

-
mkdir -pv /var/lib/hwclock
-

- Prepare Util-linux para compilação: -

-
./configure ADJTIME_PATH=/var/lib/hwclock/adjtime    \
-            --libdir=/usr/lib    \
-            --docdir=/usr/share/doc/util-linux-2.37.4 \
-            --disable-chfn-chsh  \
-            --disable-login      \
-            --disable-nologin    \
-            --disable-su         \
-            --disable-setpriv    \
-            --disable-runuser    \
-            --disable-pylibmount \
-            --disable-static     \
-            --without-python     \
-            runstatedir=/run
-
-

- O significado das opções de configure: -

-
-
- ADJTIME_PATH=/var/lib/hwclock/adjtime -
-
-

- Isso configura a localização do arquivo gravando - informação acerca do relógio de hardware de acordo com - o FHS. Isso não é estritamente necessário para essa - ferramenta temporária, porém impede a criação de um - arquivo em outra localização, o qual não seria - sobrescrito ou removido quando da construção do pacote - util-linux final. -

-
-
- --libdir=/usr/lib -
-
-

- Essa chave assegura que os links simbólicos - .so apontem para o - arquivo de biblioteca compartilhada no mesmo diretório - (/usr/lib) diretamente. -

-
-
- --disable-* -
-
-

- Essas chaves evitam avisos acerca de componentes de - construção que exigem pacotes que não estão no LFS ou - ainda não estão instalados. -

-
-
- --without-python -
-
-

- Essa chave desabilita o uso de Python. Ela evita tentar construir - ligações desnecessárias. -

-
-
- runstatedir=/run -
-
-

- Essa chave configura corretamente a localização do - soquete usado por uuidd e libuuid. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.75.2, - “Conteúdo do Util-linux.” -

-
-
-
-
-
-
-

- 7.14. Limpando e Salvando o - Sistema Temporário -

-
-
-
-
-

- 7.14.1. Limpando -

-

- Primeiro, remova a documentação atualmente instalada para - evitar que ela termine no sistema final, e para salvar cerca - de 35 MB: -

-
rm -rf /usr/share/{info,man,doc}/*
-

- Segundo, os arquivos .la de libtool somente são úteis quando - vinculados com bibliotecas estáticas. Eles são desnecessários - e potencialmente danosos quando do uso de bibliotecas - compartilhadas dinâmicas, especialmente quando do uso de - sistemas de construção não autotools. Enquanto ainda no - chroot, remova aqueles arquivos agora: -

-
find /usr/{lib,libexec} -name \*.la -delete
-

- O tamanho atual de sistema é agora de cerca de 3 GB, - entretanto o diretório /tools não mais é necessário. Ele usa - cerca de 1 GB de espaço de disco. Delete ele agora: -

-
rm -rf /tools
-
-
-

- 7.14.2. Cópia de segurança -

-

- Neste ponto os aplicativos e bibliotecas essenciais foram - criados e seu sistema LFS atual está em um bom estado. Seu - sistema pode agora ser copiado para posterior reuso. Em caso - de falhas fatais nos capítulos subsequentes, frequentemente - acontece que remover tudo e começar de novo (mais - cuidadosamente) é a melhor opção para recuperar. - Infelizmente, todos os arquivos temporários serão removidos, - também. Para evitar desperdiçar tempo extra para refazer tudo - o que foi construído com sucesso, criar uma cópia de - segurança do sistema LFS atual talvez se prove útil. -

-
-

- Nota -

-

- Todos os passos restantes nesta seção são opcionais. Apesar - disso, tão logo você comece a instalar pacotes em Capítulo 8, - os arquivos temporários serão sobrescritos. Assim, talvez - seja uma boa ideia fazer uma cópia de segurança do sistema - atual conforme descrito abaixo. -

-
-

- Os passos seguintes são realizados a partir do lado de fora - do ambiente chroot. Isso significa, você tem de deixar o - ambiente chroot primeiro antes de continuar. A razão para - isso é para conseguir acesso a locais do sistema de arquivos - do lado de fora do ambiente chroot para armazenar/ler o - arquivamento de cópia de segurança o qual não deveria ser - colocado dentro da hierarquia de $LFS por razões de segurança. -

-

- Se você decidiu fazer uma cópia de segurança, então deixe o - ambiente chroot: -

-
exit
-
-

- Importante -

-

- Todas as instruções seguintes são executadas por - root em seu sistema - anfitrião. Tome cuidado extra acerca dos comandos que você - vai executar, uma vez que erros aqui podem modificar seu - sistema anfitrião. Esteja ciente de que a variável de - ambiente LFS está configurada - para usuária(o) lfs por - padrão, mas talvez não esteja configurada para - root. -

-

- Sempre que comandos forem ser executados por root, tenha certeza de que você - configurou LFS. -

-

- Isso foi discutido em Seção 2.6, - “Configurando a Variável $LFS”. -

-
-

- Antes de fazer uma cópia de segurança, desmonte os sistemas - de arquivos virtuais: -

-
umount $LFS/dev/pts
-umount $LFS/{sys,proc,run,dev}
-

- Tenha certeza de que tem pelo menos 1 GB de espaço de disco - livre (os tarballs de fonte serão incluídos no arquivamento - de cópia de segurança) no sistema de arquivos contendo - diretório onde você criar o arquivamento de cópia de - segurança. -

-

- Note que as instruções abaixo especificam o diretório home - da(o) usuária(o) root do - sistema anfitrião, o qual tipicamente é encontrado no sistema - de arquivos raiz. -

-

- Substitua $HOME por um diretório - da sua escolha se você não quiser ter a cópia de segurança - armazenada no diretório home de root. -

-

- Crie o arquivamento de cópia de segurança executando o - seguinte comando: -

-
-

- Nota -

-

- Por causa de que o arquivamento de cópia de segurança é - comprimido, dura um tempo relativamente longo (mais de 10 - minutos) mesmo em um sistema razoavelmente rápido. -

-
-
cd $LFS
-tar -cJpf $HOME/lfs-temp-tools-11.1-systemd.tar.xz .
-
-

- Nota -

-

- Se continuar para o capítulo 8, então não se esqueça de - entrar novamente no ambiente chroot conforme explanado na - caixa Importante abaixo. -

-
-
-
-

- 7.14.3. Restauro -

-

- No caso de alguns erros tiverem sido feitos e você precisar - começar de novo, você pode usar essa cópia de segurança para - restaurar o sistema e economizar algum tempo de recuperação. - Desde que os fontes estão localizados sob $LFS, eles são incluídos no arquivamento de - cópia de segurança também, de forma que eles não precisam ser - baixados novamente. Após verificar que $LFS está configurada adequadamente, restaure - a cópia de segurança executando os seguintes comandos: -

-
-

- Atenção -

-

- Os seguintes comandos são extremamente perigosos. Se você - executar rm -rf - ./* como a(o) usuária(o) root e você não - mudar para o diretório $LFS ou a variável de ambiente - LFS não estiver configurada para - a(o) usuária(o) root, então isso destruirá seu sistema - anfitrião inteiro. VOCÊ ESTÁ AVISADA(O). -

-
-
cd $LFS
-rm -rf ./*
-tar -xpf $HOME/lfs-temp-tools-11.1-systemd.tar.xz
-

- Novamente, verifique duplamente se o ambiente foi configurado - adequadamente e continue construindo o resto do sistema. -

-
-

- Importante -

-

- Se você deixou o ambiente chroot para criar uma cópia de - segurança ou reiniciar a construção usando um restauro, - então lembre-se de verificar se os sistemas de arquivos - virtuais ainda estão montados (findmnt | grep $LFS). Se - eles não estiverem montados, então remonte-os agora - conforme descrito em Seção 7.3, - “Preparando Sistemas de Arquivos Virtuais de - Kernel” e entre novamente no ambiente chroot - (veja Seção 7.4, - “Entrando no Ambiente Chroot”) antes de - continuar. -

-
-
-
-
-
-
-
-
-
-

- Parte IV. Construindo o Sistema - LFS -

-
-
-
-
-
-
-
-

- Capítulo 8. Instalando - Aplicativos Básicos de Sistema -

-
-
-
-
-
-
-
-

- 8.1. Introdução -

-
-
-
-

- Neste capítulo, nós começamos a construir o sistema LFS pra - valer. -

-

- A instalação desse software é simples. 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 é - saber para que cada pacote é usado e porque você (ou o sistema) - talvez precise dele. -

-

- Nós não recomendamos usar otimizações. Elas podem fazer com que - um aplicativo execute ligeiramente mais rápido, mas elas também - talvez causem dificuldades de compilação e problemas quando - executar o aplicativo. Se um pacote se recusar a compilar - quando usar otimização, então tente compilá-lo sem otimização e - veja se isso conserta o problema. Mesmo se o pacote compilar - quando usar otimização, existe o risco de que ele talvez tenha - sido compilado incorretamente devido às complexas interações - entre o código e ferramentas de construção. Note também que as - opções -march e -mtune usando valores não especificados no - livro não foram testadas. Isso talvez cause problemas com os - pacotes do conjunto de ferramentas (Binutils, GCC e Glibc). Os - pequenos ganhos potenciais alcançados usando otimizações de - compilador frequentemente são superados pelos riscos. - Construtoras(es) de primeira vez de LFS são encorajadas(os) a - construir sem otimizações personalizadas. O sistema subsequente - ainda executará muito rápido e será estável ao mesmo tempo. -

-

- Antes das instruções de instalação, cada página de instalação - fornece informação acerca 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 bibliotecas (juntamente com - breves descrições) que o pacote instala. -

-
-

- Nota -

-

- Os valores de UPC e espaço de disco exigido incluem dados de - suíte de teste para todos os pacotes aplicáveis em Capítulo 8. - Os valores de UPC foram calculados usando um núcleo sozinho - de CPU (-j1) para todas as operações. -

-
-
-

- 8.1.1. Acerca de bibliotecas -

-

- Em geral, as(os) editoras(es) de LFS desencorajam construir e - instalar bibliotecas estáticas. O propósito original para a - maioria das bibliotecas estáticas tem sido tornado obsoleto - 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 todos os aplicativos que usam - a biblioteca estática precisarão ser vinculados de novo à - 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) talvez nem mesmo sejam - conhecidos. -

-

- Nos procedimentos neste capítulo, nós removemos ou - desabilitamos a instalação da maioria das bibliotecas - estáticas. Usualmente isso é feito passando-se uma opção - --disable-static para - 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 essencial para o processo geral de - construção de pacote. -

-

- Para uma discussão mais completa acerca de bibliotecas, - veja-se a discussão - Bibliotecas: Estática ou compartilhada? no livro BLFS. -

-
-
-
-
-
-
-

- 8.2. Gerenciamento de Pacote -

-
-
-
-

- Gerenciamento de Pacote é uma adição frequentemente solicitada - ao Livro LFS. Um Gerenciador de Pacote permite monitorar a - instalação de arquivos tornando fácil remover e atualizar - pacotes. Assim como os arquivos binários e bibliotecas, um - gerenciador de pacote lidará com a instalação de arquivos de - configuração. Antes que você comece a questionar, - NÃO—esta seção não falará nem recomendará qualquer - gerenciador de pacote em particular. O que ela fornece é um - resumo acerca das técnicas mais populares e como elas - funcionam. O gerenciador de pacote perfeito para você talvez - esteja entre essas técnicas ou talvez seja uma combinação de - duas ou mais dessas técnicas. Esta seção menciona brevemente - problemas que talvez surjam quando da atualização de pacotes. -

-

- Algumas razões porque nenhum gerenciador de pacote é mencionado - em LFS ou BLFS incluem: -

-
-
    -
  • -

    - Lidar com gerenciamento de pacote retira o foco das - finalidades desses livros—ensinar como um sistema - Linux é construído. -

    -
  • -
  • -

    - Existem múltiplas soluções para gerenciamento de pacote, - cada uma tendo seus pontos fortes e fracos. Incluir uma - que satisfaça todas as audiências é difícil. -

    -
  • -
-
-

- Existem algumas dicas escritas no tópico acerca de - gerenciamento de pacote. Visite o Hints - Project e veja se uma delas se adéqua às suas necessidades. -

-
-

- 8.2.1. Problemas de Atualização -

-

- Um Gerenciador de Pacote torna fácil atualizar para versões - mais novas quando elas são liberadas. Geralmente as - instruções nos livros LFS e BLFS podem ser usadas para - atualizar para versões mais novas. Aqui estão alguns pontos - que você deveria estar ciente quando da atualização de - pacotes, especialmente em um sistema em execução. -

-
-
    -
  • -

    - Se o kernel Linux precisar ser atualizado (por exemplo, - de 5.10.17 para 5.10.18 ou 5.11.1), então nada mais - precisa ser reconstruído. O sistema seguirá funcionando - bem graças à borda bem definida entre kernel e espaço - de usuária(o). Especificamente, os cabeçalhos de API de - Linux não precisam ser (e não deveriam ser, veja-se o - próximo item) atualizados juntamente com o kernel. Você - precisará reiniciar seu sistema para usar o kernel - atualizado. -

    -
  • -
  • -

    - Se os cabeçalhos de API de Linux ou Glibc precisarem - ser atualizados para uma versão mais nova, (por - exemplo, de glibc-2.31 para glibc-2.32), então é mais - seguro reconstruir LFS. Ainda que você talvez seja capaz de - reconstruir todos os pacotes na ordem de dependência - deles, nós não recomendamos isso. -

    -
  • -
  • -

    - Se um pacote contendo uma biblioteca compartilhada for - atualizado, e se o nome da biblioteca mudar, então - quaisquer pacotes dinamicamente vinculados à biblioteca - precisam ser recompilados com a finalidade de vincular - à biblioteca mais nova. (Note que não existe correlação - entre a versão de pacote e o nome da biblioteca). Por - exemplo, considere um pacote foo-1.2.3 que instala uma - biblioteca compartilhada com nome libfoo.so.1. Se você atualizar o - pacote para uma versão mais nova foo-1.2.4 que instala - uma biblioteca compartilhada com nome libfoo.so.2. Nesse caso, quaisquer - pacotes que estiverem dinamicamente vinculados à - libfoo.so.1 precisam ser - recompilados para vincular à libfoo.so.2 com a finalidade de usar - a nova versão de biblioteca. Você não deveria remover - as bibliotecas anteriores a menos que todos os pacotes - dependentes sejam recompilados. -

    -
  • -
  • -

    - Se um pacote contendo uma biblioteca compartilhada for - atualizado, e o nome da biblioteca não mudar, porém o - número de versão do arquivo de biblioteca - decrescer (por exemplo, o nome da biblioteca é mantido - como libfoo.so.1, porém o - nome do arquivo de biblioteca é modificado de - libfoo.so.1.25 para - libfoo.so.1.24), então - você deveria remover o arquivo de biblioteca originário - da versão previamente instalada (libfoo.so.1.25 no caso). Ou, uma - execução de ldconfig (por você - mesmo usando uma linha de comando, ou pela instalação - de algum pacote) reconfigurará o link simbólico - libfoo.so.1 para apontar - para o antigo arquivo de biblioteca, pois ele aparenta - ter uma versão mais nova, uma vez que seu - número de versão é mais largo. Essa situação talvez - aconteceu se você teve que desatualizar um pacote, ou o - pacote muda repentinamente o esquema de versionamento - de arquivos de biblioteca. -

    -
  • -
  • -

    - Se um pacote contendo uma biblioteca compartilhada for - atualizado, e o nome da biblioteca não mudar, porém um - problema severo (especialmente, uma vulnerabilidade de - segurança) for corrigido, então todos os aplicativos em - execução vinculados à biblioteca compartilhada deveriam - ser reiniciados. O seguinte comando, executado como - root após atualização, - listará o que está usando as versões antigas daquelas - bibliotecas (substitua libfoo com o nome da - biblioteca): -

    -
    grep -l  -e 'libfoo.*deleted' /proc/*/maps |
    -   tr -cd 0-9\\n | xargs -r ps u
    -

    - Se OpenSSH estiver - sendo usado para acessar o sistema e ele estiver - vinculado à biblioteca atualizada, então você precisa - reiniciar o serviço sshd, então - deslogar-se, logar-se novamente, e reexecutar aquele - comando para confirmar que nada ainda está usando as - bibliotecas deletadas. -

    -
  • -
  • -

    - Se um binário ou uma biblioteca compartilhada for - sobrescrito, então os processos usando o código ou - dados no binário ou biblioteca talvez quebrem. A - maneira correta para atualizar um binário ou uma - biblioteca compartilhada sem causar quebra ao processo - é removê-lo primeiro, então instalar a versão nova na - posição. O comando install fornecido por - Coreutils já - implementou isso e a maioria dos pacotes usa ele para - instalar binários e bibliotecas. Isso significa que - você não estaria encrencada(o) por esse problema a - maior parte do tempo. Entretanto, o processo de - instalação de alguns pacotes (notadamente Mozilla JS em - BLFS) apenas sobrescreve o arquivo se ele existir e - causa uma quebra, de forma que é mais seguro salvar seu - trabalho e fechar processos em execução desnecessários - antes de atualizar um pacote. -

    -
  • -
-
-
-
-

- 8.2.2. Técnicas de Gerenciamento de Pacote -

-

- As seguintes são algumas técnicas comuns de gerenciamento de - pacote. Antes de se decidir acerca de um gerenciador de - pacote, pesquise sobre as várias técnicas, particularmente os - pontos fracos do esquema em particular. -

-
-
-
-
-

- 8.2.2.1. Está Tudo na Minha - Cabeça! -

-
-
-
-

- Sim, isso é uma técnica de gerenciamento de pacote. Algumas - pessoas não encontram a necessidade para um gerenciador de - pacote, pois elas conhecem os pacotes intimamente e sabem - quais arquivos estão instalados por cada pacote. - Algumas(ns) usuárias(os) também não precisam de qualquer - gerenciamento de pacote, pois elas(es) planejam reconstruir - o sistema inteiro quando um pacote for mudado. -

-
-
-
-
-
-

- 8.2.2.2. Instalação em Diretórios - Separados -

-
-
-
-

- Esse é um gerenciamento de pacote simplista que não - necessita de qualquer pacote extra para gerenciar as - instalações. Cada pacote é instalado em um diretório - separado. Por exemplo, o pacote foo-1.1 é instalado em - /usr/pkg/foo-1.1 e um link - simbólico é feito de /usr/pkg/foo para /usr/pkg/foo-1.1. Quando da instalação de - uma nova versão foo-1.2, ela é instalada em /usr/pkg/foo-1.2 e o link simbólico - anterior é substituído por um link simbólico para a nova - versão. -

-

- Variáveis de ambiente tais como PATH, LD_LIBRARY_PATH, MANPATH, INFOPATH - e CPPFLAGS precisam ser - expandidas para incluir /usr/pkg/foo. Para mais que uns poucos - pacotes, esse esquema se torna ingerenciável. -

-
-
-
-
-
-

- 8.2.2.3. Gerenciamento de Pacote - Estilo Link Simbólico -

-
-
-
-

- Essa é uma variação da técnica de gerenciamento de pacote - anterior. Cada pacote é instalado similar ao esquema - anterior. Mas, em vez de fazer o link simbólico, cada - arquivo é simbolicamente vinculado à hierarquia - /usr. Isso remove a - necessidade de expandir as variáveis de ambiente. Ainda que - os links simbólicos possam ser criados pela(o) usuária(o) - para automatizar a criação, muitos gerenciadores de pacote - tem sido escritos usando essa abordagem. Alguns dos - populares inclui Stow, Epkg, Graft, e Depot. -

-

- A instalação precisa ser falseada, de modo que o pacote - pense que está instalado em /usr, ainda que, na realidade, ele esteja - instalado na hierarquia /usr/pkg. Instalar dessa maneira - geralmente não é uma tarefa trivial. Por exemplo, considere - que você está instalando um pacote libfoo-1.1. As seguintes - instruções talvez não instalem adequadamente o pacote: -

-
./configure --prefix=/usr/pkg/libfoo/1.1
-make
-make install
-

- A instalação funcionará, mas os pacotes dependentes talvez - não se vinculem à libfoo conforme você esperaria. Se você - compilar um pacote que vincula à libfoo, então você talvez - note que ele está vinculado a /usr/pkg/libfoo/1.1/lib/libfoo.so.1 em - vez de /usr/lib/libfoo.so.1 - como você esperaria. A abordagem correta é usar a - estratégia DESTDIR para falsear - a instalação do pacote. Essa abordagem funciona como se - segue: -

-
./configure --prefix=/usr
-make
-make DESTDIR=/usr/pkg/libfoo/1.1 install
-

- A maioria dos pacotes suporta essa abordagem, mas existem - alguns que não. Para os pacotes não conformes, você talvez - ou precise instalar manualmente o pacote, ou você talvez - ache que é mais fácil instalar alguns pacotes problemáticos - em /opt. -

-
-
-
-
-
-

- 8.2.2.4. Baseado em Marca - Temporal -

-
-
-
-

- Nessa técnica, um arquivo é marcado temporalmente antes da - instalação do pacote. Após a instalação, um simples uso do - comando find - com as opções apropriadas pode gerar um registro de todos - os arquivos instalados após o arquivo de marca temporal ser - criado. Um gerenciador de pacote escrito com essa abordagem - é instalação-registro. -

-

- Ainda que esse esquema tenha a vantagem de ser simples, ele - tem duas desvantagens. Se, durante a instalação, os - arquivos forem instalados com qualquer marca temporal outra - que a hora atual, então aqueles arquivos não serão - rastreados pelo gerenciador de pacote. Além disso, esse - esquema pode ser usado apenas quando um pacote for - instalado de cada vez. Os registros não são confiáveis se - dois pacotes estão sendo instalados em dois consoles. -

-
-
-
-
-
-

- 8.2.2.5. Scripts de Rastreamento - de Instalação -

-
-
-
-

- Nessa abordagem, os comandos que os scripts de instalação - realizam são gravados. Existem duas técnicas que se pode - usar: -

-

- A variável de ambiente LD_PRELOAD pode ser configurada para apontar - para uma biblioteca a ser pré-carregada antes da - instalação. Durante a instalação, essa biblioteca rastreia - os pacotes que estão sendo instalados anexando-se a vários - executáveis tais como cp, install, mv e rastreando as - chamadas de sistema que modificam o sistema de arquivos. - Para que essa abordagem funcione, todos os executáveis - precisam ser dinamicamente vinculados sem o bit suid ou - sgid. Pré-carregar a biblioteca talvez cause alguns efeitos - colaterais indesejados durante a instalação. Portanto, - aconselha-se que se realize alguns testes para garantir que - o gerenciador de pacote não quebre nada e registre todos os - arquivos adequados. -

-

- A segunda técnica é usar strace, que registra - todas as chamadas de sistema feitas durante a execução dos - scripts de instalação. -

-
-
-
-
-
-

- 8.2.2.6. Criando Arquivamentos de - Pacote -

-
-
-
-

- Nesse esquema, a instalação do pacote é falseada em uma - árvore separada como descrito no gerenciamento de pacote - estilo Link Simbólico. Após a instalação, um arquivamento - de pacote é criado usando os arquivos instalados. Esse - arquivamento é então usado para instalar o pacote tanto na - máquina local quanto pode até ser usado para instalar o - pacote em outras máquinas. -

-

- Essa abordagem é usada pela maioria dos gerenciadores de - pacote encontrados nas distribuições comerciais. Exemplos - de gerenciadores de pacote que seguem essa abordagem são - RPM (o qual, incidentalmente, é exigido pela Linux - Standard Base Specification), pkg-utils, apt do Debian, - e sistema Portage do Gentoo. Uma dica descrevendo como - adotar esse estilo de gerenciamento de pacote para sistemas - LFS está localizada em - https://www.linuxfromscratch.org/hints/downloads/files/fakeroot.txt. -

-

- Criação de arquivos pacote que incluem informação de - dependência é complexa e está além do escopo de LFS. -

-

- Slackware usa um sistema baseado em tar para arquivamentos de - pacote. Esse sistema intencionalmente não manuseia - dependências de pacote como gerenciadores de pacote mais - complexos fazem. Para detalhes de gerenciamento de pacote - Slackware, veja http://www.slackbook.org/html/package-management.html. -

-
-
-
-
-
-

- 8.2.2.7. Gerenciamento Baseado em - Usuária(o) -

-
-
-
-

- Esse esquema, único para LFS, foi concebido por Matthias - Benkmann, e está disponível a partir do Hints - Project. Nesse esquema, cada pacote é instalado como - uma(m) usuária(o) separada(o) nos locais padrão. Arquivos - pertencentes a um pacote são facilmente identificados - checando o ID de usuária(o). As características e - deficiências dessa abordagem são muito complexas para serem - descritas nesta seção. Para os detalhes, por favor veja a - dica em - https://www.linuxfromscratch.org/hints/downloads/files/more_control_and_pkg_man.txt. -

-
-
-
-

- 8.2.3. Implantando LFS em Múltiplos Sistemas -

-

- Uma das vantagens de um sistema LFS é a de que não existem - arquivos que dependam da posição de arquivos em um sistema de - disco. Clonar uma construção LFS para outro computador com a - mesma arquitetura que a do sistema base é tão simples quanto - usar tar na - partição LFS que contém o diretório raiz (cerca de 250MB - descomprimido para uma construção base LFS), copiando aquele - arquivo via transferência de rede ou CD-ROM para o novo - sistema e expandindo-o. A partir daquele ponto, uns poucos - arquivos de configuração terão que ser mudados. Arquivos de - configuração que talvez precisem ser atualizados incluem: - /etc/hosts, /etc/fstab, /etc/passwd, /etc/group, /etc/shadow, e - /etc/ld.so.conf. -

-

- Um kernel personalizado talvez seja necessário ser construído - para o novo sistema dependendo das diferenças entre hardware - de sistema e a configuração original do kernel. -

-
-

- Nota -

-

- Tem havido alguns relatos de problemas quando da cópia - entre arquiteturas similares, porém não idênticas. Por - exemplo, o conjunto de instrução para um sistema Intel não - é idêntico com um processador AMD, e versões posteriores de - alguns processadores talvez tenham instruções que estão - indisponíveis em versões anteriores. -

-
-

- Finalmente, o novo sistema tem de ser tornado inicializável - via - Seção 10.4, “Usando o GRUB para Configurar o - Processo de Inicialização”. -

-
-
-
-
-
-
-

- 8.3. Man-pages-5.13 -

-
-
-
-
-

- O pacote Man-pages contém mais que 2.200 páginas de manual. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 33 MB -
-
-
-
-
-

- 8.3.1. Instalação de Man-pages -

-

- Instale Man-pages executando: -

-
make prefix=/usr install
-
-
-

- 8.3.2. - Conteúdo de Man-pages -

-
-
-
- Arquivos instalados: - várias páginas de manual -
-
-
-
-

- Breves Descrições -

- - - - - - - - - - - -
-

- man - pages -

-
-

- Descreve funções da linguagem de programação C, - arquivos importantes de dispositivo e arquivos - significantes de configuração -

-
-
-
-
-
-
-
-
-

- 8.4. Iana-Etc-20220207 -

-
-
-
-
-

- O pacote Iana-Etc fornece dados para serviços e protocolos de - rede. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 4,7 MB -
-
-
-
-
-

- 8.4.1. Instalação de Iana-Etc -

-

- Para esse pacote, nós apenas precisamos copiar os arquivos - para o lugar: -

-
cp services protocols /etc
-
-
-

- 8.4.2. - Conteúdo de Iana-Etc -

-
-
-
- Arquivos instalados: - /etc/protocols e - /etc/services -
-
-
-
-

- Breves Descrições -

- - - - - - - - - - - - - - - -
-

- /etc/protocols -

-
-

- Descreve os vários protocolos DARPA de Internet que - estão disponíveis a partir do subsistema TCP/IP -

-
-

- /etc/services -

-
-

- Fornece um mapeamento entre nomes textuais - amigáveis para serviços de internet e seus números - de porta atribuídos e tipos de protocolos não - expostos -

-
-
-
-
-
-
-
-
-

- 8.5. Glibc-2.35 -

-
-
-
-
-

- O pacote Glibc contém a biblioteca C principal. Essa - biblioteca fornece as rotinas básicas para alocação de - memória, busca em diretórios, abertura e fechamento de - arquivos, leitura e escrita de arquivos, manuseio de - sequências de caracteres, correspondência de padrões, - aritmética, e daí por diante. -

-
-
-
- Tempo aproximado de - construção: 24 UPC -
-
- Espaço em disco - exigido: 2,8 GB -
-
-
-
-
-

- 8.5.1. Instalação de Glibc -

-

- Alguns dos aplicativos Glibc usam o diretório não conforme - com FHS /var/db para armazenar - seus dados em tempo de execução. Aplique a seguinte correção - para fazer com que tais aplicativos armazenem seus dados em - tempo de execução nos locais conformes com FHS: -

-
patch -Np1 -i ../glibc-2.35-fhs-1.patch
-

- A documentação de Glibc recomenda construir Glibc em um - diretório dedicado à construção: -

-
mkdir -v build
-cd       build
-

- Garanta que os utilitários ldconfig e sln serão instalados no - /usr/sbin: -

-
echo "rootsbindir=/usr/sbin" > configparms
-

- Prepare Glibc para compilação: -

-
../configure --prefix=/usr                            \
-             --disable-werror                         \
-             --enable-kernel=3.2                      \
-             --enable-stack-protector=strong          \
-             --with-headers=/usr/include              \
-             libc_cv_slibdir=/usr/lib
-
-

- O significado das opções de configure: -

-
-
- --disable-werror -
-
-

- Essa opção desabilita a opção -Werror passada para GCC. - Isso é necessário para a execução da suíte de teste. -

-
-
- --enable-kernel=3.2 -
-
-

- Essa opção diz ao sistema de construção que este glibc - talvez seja usado com kernels tão antigos quanto 3.2. - Isso significa que a geração de contornos no caso de - uma chamada de sistema introduzida em uma versão - posterior não pode ser usada. -

-
-
- --enable-stack-protector=strong -
-
-

- Essa opção aumenta a segurança de sistema adicionando - código extra para verificar estouros de buffer, tais - como ataques de esmagamento de pilha. -

-
-
- --with-headers=/usr/include -
-
-

- Essa opção diz ao sistema de construção onde encontrar - os cabeçalhos de API de kernel. -

-
-
- libc_cv_slibdir=/usr/lib -
-
-

- Essa variável configura a biblioteca correta para todos - os sistemas. Nós não queremos que lib64 seja usada. -

-
-
-
-

- Compile o pacote: -

-
make
-
-

- Importante -

-

- Nesta seção, a suíte de teste para Glibc é considerada - crítica. Não pule sob qualquer circunstância. -

-
-

- Geralmente uns poucos testes não passam. As falhas de teste - listadas abaixo são usualmente seguras ignorar. -

-
make check
-

- Você talvez veja algumas falhas de teste. A suíte de teste de - Glibc é de alguma forma dependente do sistema anfitrião. Umas - poucas falhas saídas de mais que 4.200 testes geralmente - podem ignoradas. Esta é uma lista dos problemas mais comuns - vistos para versões recentes de LFS: -

-
-
    -
  • -

    - io/tst-lchmod é - conhecido por falhar no ambiente chroot de LFS. -

    -
  • -
  • -

    - misc/tst-ttyname - é conhecido por falhar no ambiente chroot de LFS. -

    -
  • -
  • -

    - O teste nss/tst-nss-files-hosts-multi - é conhecido por falhar se o sistema não tiver endereços - IP não loopback. -

    -
  • -
-
-

- Mesmo sendo uma mensagem inofensiva, o estágio de instalação - de Glibc reclamará acerca da ausência de /etc/ld.so.conf. Impeça esse alerta com: -

-
touch /etc/ld.so.conf
-

- Conserte o Makefile para pular uma verificação de sanidade - desnecessária que falha no ambiente parcial de LFS: -

-
sed '/test-installation/s@$(PERL)@echo not running@' -i ../Makefile
-

- Instale o pacote: -

-
make install
-

- Conserte caminho codificado rigidamente para o carregador de - executável em script ldd: -

-
sed '/RTLDLIST=/s@/usr@@g' -i /usr/bin/ldd
-

- Instale o arquivo de configuração e diretório de tempo de - execução para nscd: -

-
cp -v ../nscd/nscd.conf /etc/nscd.conf
-mkdir -pv /var/cache/nscd
-

- Instale os arquivos de suporte de systemd para nscd: -

-
install -v -Dm644 ../nscd/nscd.tmpfiles /usr/lib/tmpfiles.d/nscd.conf
-install -v -Dm644 ../nscd/nscd.service /usr/lib/systemd/system/nscd.service
-

- Em seguida, instale os locales que podem fazer o sistema - responder em um idioma diferente. Nenhum dos locales é - exigido, mas se algum deles estiver faltando, então as suítes - de teste de futuros pacotes pulariam casos de teste - importantes. -

-

- Locales individuais podem ser instalados usando o aplicativo - localedef. Por - exemplo, o segundo comando localedef abaixo combina a - definição de locale independente de carácter /usr/share/i18n/locales/cs_CZ com a - definição de mapa de caracteres /usr/share/i18n/charmaps/UTF-8.gz e - adiciona o resultado ao arquivo /usr/lib/locale/locale-archive. As - seguintes instruções instalarão o conjunto mínimo de locales - necessário para a cobertura ótima de testes: -

-
mkdir -pv /usr/lib/locale
-localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true
-localedef -i cs_CZ -f UTF-8 cs_CZ.UTF-8
-localedef -i de_DE -f ISO-8859-1 de_DE
-localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro
-localedef -i de_DE -f UTF-8 de_DE.UTF-8
-localedef -i el_GR -f ISO-8859-7 el_GR
-localedef -i en_GB -f ISO-8859-1 en_GB
-localedef -i en_GB -f UTF-8 en_GB.UTF-8
-localedef -i en_HK -f ISO-8859-1 en_HK
-localedef -i en_PH -f ISO-8859-1 en_PH
-localedef -i en_US -f ISO-8859-1 en_US
-localedef -i en_US -f UTF-8 en_US.UTF-8
-localedef -i es_ES -f ISO-8859-15 es_ES@euro
-localedef -i es_MX -f ISO-8859-1 es_MX
-localedef -i fa_IR -f UTF-8 fa_IR
-localedef -i fr_FR -f ISO-8859-1 fr_FR
-localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro
-localedef -i fr_FR -f UTF-8 fr_FR.UTF-8
-localedef -i is_IS -f ISO-8859-1 is_IS
-localedef -i is_IS -f UTF-8 is_IS.UTF-8
-localedef -i it_IT -f ISO-8859-1 it_IT
-localedef -i it_IT -f ISO-8859-15 it_IT@euro
-localedef -i it_IT -f UTF-8 it_IT.UTF-8
-localedef -i ja_JP -f EUC-JP ja_JP
-localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true
-localedef -i ja_JP -f UTF-8 ja_JP.UTF-8
-localedef -i nl_NL@euro -f ISO-8859-15 nl_NL@euro
-localedef -i ru_RU -f KOI8-R ru_RU.KOI8-R
-localedef -i ru_RU -f UTF-8 ru_RU.UTF-8
-localedef -i se_NO -f UTF-8 se_NO.UTF-8
-localedef -i ta_IN -f UTF-8 ta_IN.UTF-8
-localedef -i tr_TR -f UTF-8 tr_TR.UTF-8
-localedef -i zh_CN -f GB18030 zh_CN.GB18030
-localedef -i zh_HK -f BIG5-HKSCS zh_HK.BIG5-HKSCS
-localedef -i zh_TW -f UTF-8 zh_TW.UTF-8
-

- Em adição, instale o locale para seu próprio país, idioma e - conjunto de caracteres. -

-

- Alternativamente, instale todos os locales listados no - arquivo glibc-2.35/localedata/SUPPORTED (inclui - cada locale listado acima e muitos mais) de uma vez com o - seguinte comando consumidor de tempo: -

-
make localedata/install-locales
-

- Então, use o comando localedef para criar e - instalar locales não listados no arquivo glibc-2.35/localedata/SUPPORTED quando você - precisar deles. Por exemplo, os seguintes dois locales são - necessários para alguns testes posteriormente neste capítulo: -

-
localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true
-localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true
-
-

- Nota -

-

- Glibc agora usa libidn2 quando da resolução de nomes - internacionalizados de domínio. Essa é uma dependência de - tempo de execução. Se essa capacidade for necessária, então - as instruções para instalar libidn2 estão na - página libidn2 de BLFS. -

-
-
-
-

- 8.5.2. Configurando - Glibc -

-
-
-
-
-

- 8.5.2.1. Adicionando - nsswitch.conf -

-
-
-
-

- O arquivo /etc/nsswitch.conf - precisa ser criado, pois os padrões de Glibc não funcionam - bem em um ambiente em rede. -

-

- Crie um novo arquivo /etc/nsswitch.conf executando o seguinte: -

-
cat > /etc/nsswitch.conf << "EOF"
-# Begin /etc/nsswitch.conf
-
-passwd: files
-group: files
-shadow: files
-
-hosts: files dns
-networks: files
-
-protocols: files
-services: files
-ethers: files
-rpc: files
-
-# End /etc/nsswitch.conf
-EOF
-
-
-
-
-
-

- 8.5.2.2. Adicionando dados de - fuso horário -

-
-
-
-

- Instale e configure os dados de fuso horário com o - seguinte: -

-
tar -xf ../../tzdata2021e.tar.gz
-
-ZONEINFO=/usr/share/zoneinfo
-mkdir -pv $ZONEINFO/{posix,right}
-
-for tz in etcetera southamerica northamerica europe africa antarctica  \
-          asia australasia backward; do
-    zic -L /dev/null   -d $ZONEINFO       ${tz}
-    zic -L /dev/null   -d $ZONEINFO/posix ${tz}
-    zic -L leapseconds -d $ZONEINFO/right ${tz}
-done
-
-cp -v zone.tab zone1970.tab iso3166.tab $ZONEINFO
-zic -d $ZONEINFO -p America/New_York
-unset ZONEINFO
-
-

- O significado dos comandos zic: -

-
-
- zic -L - /dev/null ... -
-
-

- Isso cria fusos horários posix sem quaisquer segundos - bissextos. É convencional colocá-los em ambos - zoneinfo e zoneinfo/posix. É necessário - colocar os fusos horários POSIX em zoneinfo, do contrário várias - suítes de teste reportarão erros. Em um sistema - embarcado, onde o espaço é apertado e você não - pretende nunca atualizar os fusos horários, você - poderia economizar 1,9 MB não usando o diretório - posix, mas alguns - aplicativos ou suítes de teste poderiam produzir - algumas falhas. -

-
-
- zic -L - leapseconds ... -
-
-

- Isso cria fusos horários corretos, incluindo segundos - bissextos. Em um sistema embarcado, onde o espaço é - apertado e você não pretende nunca atualizar os fusos - horários, ou se importa com a hora correta, você - poderia economizar 1,9 MB omitindo o diretório - right. -

-
-
- zic ... - -p ... -
-
-

- Isso cria o arquivo posixrules. Nós usamos New York, - pois POSIX exige que as regras de horário de verão - estejam de acordo com regras dos Estados Unidos da - América do Norte. -

-
-
-
-

- Uma maneira para determinar o fuso horário local é - executando o seguinte script: -

-
tzselect
-

- Depois de responder à umas poucas perguntas sobre a - localização, o script retornará o nome do fuso horário (por - exemplo, America/Edmonton). Existem - também alguns outros possíveis fusos horários listados em - /usr/share/zoneinfo, tais - como Canada/Eastern - ou EST5EDT que não - são identificados pelo script, mas podem ser usados. -

-

- Então crie o arquivo /etc/localtime executando: -

-
ln -sfv /usr/share/zoneinfo/<xxx> /etc/localtime
-

- Substitua <xxx> com o nome do - fuso horário selecionado (por exemplo, Canada/Eastern). -

-
-
-
-
-
-

- 8.5.2.3. Configurando o - Carregador Dinâmico -

-
-
-
-

- Por padrão, o carregador dinâmico (/lib/ld-linux.so.2) procura em - /lib e /usr/lib por bibliotecas dinâmicas que - são necessárias para aplicativos assim que são executados. - Entretanto, se existirem bibliotecas em outros diretórios - diferentes de /lib e - /usr/lib, então esses - precisam ser adicionados ao arquivo /etc/ld.so.conf para a finalidade de que - o carregador dinâmico encontre elas. Dois diretórios que - são comumente conhecidos por conterem bibliotecas - adicionais são /usr/local/lib - e /opt/lib, então adicione - esses diretórios ao caminho de busca do carregador - dinâmico. -

-

- Crie um novo arquivo /etc/ld.so.conf executando o seguinte: -

-
cat > /etc/ld.so.conf << "EOF"
-# Begin /etc/ld.so.conf
-/usr/local/lib
-/opt/lib
-
-EOF
-

- Se desejado, o carregador dinâmico também pode pesquisar um - diretório e incluir o conteúdo de arquivos encontrados lá. - Geralmente os arquivos nesse diretório include são uma - linha especificando o caminho de biblioteca desejado. Para - adicionar essa capacidade, execute os seguintes comandos: -

-
cat >> /etc/ld.so.conf << "EOF"
-# Add an include directory
-include /etc/ld.so.conf.d/*.conf
-
-EOF
-mkdir -pv /etc/ld.so.conf.d
-
-
-
-

- 8.5.3. - Conteúdo de Glibc -

-
-
-
- Aplicativos instalados: - gencat, getconf, getent, iconv, - iconvconfig, ldconfig, ldd, lddlibc4, ld.so (link - simbólico para ld-linux-x86-64.so.2 ou ld-linux.so.2), - locale, localedef, makedb, mtrace, nscd, pcprofiledump, - pldd, sln, sotruss, sprof, tzselect, xtrace, zdump, e - zic -
-
- Bibliotecas instaladas: - ld-linux-x86-64.so.2, - ld-linux.so.2, libBrokenLocale.{a,so}, libanl.{a,so}, - libc.{a,so}, libc_nonshared.a, libc_malloc_debug.so, - libcrypt.{a,so}, libdl.{a,so.2}, libg.a, libm.{a,so}, - libmcheck.a, libmemusage.so, libmvec.{a,so}, libnsl.so.1, - libnss_compat.so, libnss_dns.so, libnss_files.so, - libnss_hesiod.so, libpcprofile.so, libpthread.{a,so.0}, - libresolv.{a,so}, librt.{a,so.1}, libthread_db.so, e - libutil.{a,so.1} -
-
- Diretórios instalados: - /usr/include/arpa, - /usr/include/bits, /usr/include/gnu, /usr/include/net, - /usr/include/netash, /usr/include/netatalk, - /usr/include/netax25, /usr/include/neteconet, - /usr/include/netinet, /usr/include/netipx, - /usr/include/netiucv, /usr/include/netpacket, - /usr/include/netrom, /usr/include/netrose, - /usr/include/nfs, /usr/include/protocols, - /usr/include/rpc, /usr/include/sys, /usr/lib/audit, - /usr/lib/gconv, /usr/lib/locale, /usr/libexec/getconf, - /usr/share/i18n, /usr/share/zoneinfo, /var/cache/nscd, e - /var/lib/nss_db -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- gencat -

-
-

- Gera catálogos de mensagem -

-
-

- getconf -

-
-

- Exibe os valores de configuração de sistema para - variáveis específicas do sistema de arquivos -

-
-

- getent -

-
-

- Obtém entradas a partir de uma base de dados - administrativa -

-
-

- iconv -

-
-

- Realiza conversão de conjuntos de caracteres -

-
-

- iconvconfig -

-
-

- Cria arquivos de configuração de módulos de - carregamento rápido de iconv -

-
-

- ldconfig -

-
-

- Configura as ligações de tempo de execução do - vinculador dinâmico -

-
-

- ldd -

-
-

- Reporta quis bibliotecas compartilhadas são - exigidas por cada dado aplicativo ou biblioteca - compartilhada -

-
-

- lddlibc4 -

-
-

- Auxilia ldd com arquivos - objeto. Isso não existe em arquiteturas mais novas - como x86_64 -

-
-

- locale -

-
-

- Imprime várias informações sobre o locale atual -

-
-

- localedef -

-
-

- Compila especificações de locale -

-
-

- makedb -

-
-

- Cria um banco de dados simples a partir de uma - entrada textual -

-
-

- mtrace -

-
-

- Lê e interpreta um arquivo de rastreamento de - memória e exibe um resumo em formato legível por - humanos -

-
-

- nscd -

-
-

- Um daemon que fornece um cache para as solicitações - de serviço de nomes mais comuns -

-
-

- pcprofiledump -

-
-

- Despeja informação gerada pelos perfis do PC -

-
-

- pldd -

-
-

- Lista objetos dinâmicos compartilhados usados por - processos em execução -

-
-

- sln -

-
-

- Um aplicativo ln vinculado - estaticamente -

-
-

- sotruss -

-
-

- Rastreia chamadas de procedimentos de bibliotecas - compartilhadas de um comando especificado -

-
-

- sprof -

-
-

- Lê e exibe dados de perfil de objetos - compartilhados -

-
-

- tzselect -

-
-

- Pergunta ao usuário sobre a localização do sistema - e reporta a correspondente descrição de fuso - horário -

-
-

- xtrace -

-
-

- Rastreia a execução de um aplicativo exibindo a - função atualmente executada -

-
-

- zdump -

-
-

- O despejador de fuso horário -

-
-

- zic -

-
-

- O compilador de fuso horário -

-
-

- ld-*.so -

-
-

- O aplicativo ajudador para executáveis de - bibliotecas compartilhadas -

-
-

- libBrokenLocale -

-
-

- Usado internamente por Glibc como um hack grosseiro - para executar aplicativos quebrados (por exemplo, - alguns aplicativos Motif). Veja comentários em - glibc-2.35/locale/broken_cur_max.c - para mais informação -

-
-

- libanl -

-
-

- Uma biblioteca assíncrona de pesquisa de nomes -

-
-

- libc -

-
-

- A biblioteca C principal -

-
-

- libc_malloc_debug -

-
-

- Liga verificação de alocação de memória quando - pré-carregada -

-
-

- libcrypt -

-
-

- A biblioteca de criptografia -

-
-

- libdl -

-
-

- Biblioteca fictícia que não contém funções. - Anteriormente era a biblioteca de interface do - vinculador dinâmico, cujas funções agora estão em - libc -

-
-

- libg -

-
-

- Biblioteca fictícia que não contém funções. - Anteriormente era uma biblioteca de tempo de - execução para g++ -

-
-

- libm -

-
-

- A biblioteca matemática -

-
-

- libmvec -

-
-

- A biblioteca de vetor matemático, vinculada - conforme necessária quando libm for usada -

-
-

- libmcheck -

-
-

- Liga verificação de alocação de memória quando - quando vinculada para -

-
-

- libmemusage -

-
-

- Usado por memusage para - ajudar a coletar informação sobre o uso de memória - de um aplicativo -

-
-

- libnsl -

-
-

- A biblioteca de serviços de rede, agora obsoleta -

-
-

- libnss_* -

-
-

- Os módulos de Name Service Switch, contendo funções - para resolução de nomes de hosts, nomes de - usuárias(os), nomes de grupos, pseudônimos, - serviços, protocolos, etc. Carregados por - libc conforme a - configuração em /etc/nsswitch.conf -

-
-

- libpcprofile -

-
-

- Pode ser pré-carregada para PC perfilar um - executável -

-
-

- libpthread -

-
-

- Biblioteca fictícia que não contém funções. - Anteriormente continha funções fornecendo a maior - parte das interfaces especificadas pela Extensão - POSIX.1b de Tempo Real, agora as funções estão em - libc -

-
-

- libresolv -

-
-

- Contém funções para criação, envio e interpretação - de pacotes para os servidores de nomes de domínio - de Internet -

-
-

- librt -

-
-

- Contém funções fornecendo a maior parte das - interfaces especificadas pela Extensão POSIX.1b de - Tempo Real -

-
-

- libthread_db -

-
-

- Contém funções úteis para construir depuradores - para aplicativos de múltiplas camadas -

-
-

- libutil -

-
-

- Biblioteca fictícia que não contém funções. - Anteriormente continha código para funções - standard usadas em - muitos utilitários Unix. Essas funções agora estão - em libc -

-
-
-
-
-
-
-
-
-

- 8.6. Zlib-1.2.11 -

-
-
-
-
-

- O pacote Zlib contém rotinas de compressão e descompressão - usadas por alguns aplicativos. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 5,0 MB -
-
-
-
-
-

- 8.6.1. Instalação de Zlib -

-

- Prepare Zlib para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-

- Remova uma biblioteca estática inútil: -

-
rm -fv /usr/lib/libz.a
-
-
-

- 8.6.2. - Conteúdo de Zlib -

-
-
-
- Bibliotecas instaladas: - libz.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- libz -

-
-

- Contém funções de compressão e descompressão usadas - por alguns aplicativos -

-
-
-
-
-
-
-
-
-

- 8.7. Bzip2-1.0.8 -

-
-
-
-
-

- O pacote Bzip2 contém aplicativos para comprimir e - descomprimir arquivos. Comprimir arquivos de texto com - bzip2 gera uma - muito melhor percentagem de compressão que com o tradicional - gzip. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 7,2 MB -
-
-
-
-
-

- 8.7.1. Instalação de Bzip2 -

-

- Aplique um patch que instalará a documentação para esse - pacote: -

-
patch -Np1 -i ../bzip2-1.0.8-install_docs-1.patch
-

- O seguinte comando garante que a instalação de links - simbólicos sejam relativos: -

-
sed -i 's@\(ln -s -f \)$(PREFIX)/bin/@\1@' Makefile
-

- Garanta que as páginas de manual sejam instaladas na - localização correta: -

-
sed -i "s@(PREFIX)/man@(PREFIX)/share/man@g" Makefile
-

- Prepare Bzip2 para compilação com: -

-
make -f Makefile-libbz2_so
-make clean
-
-

- O significado do parâmetro de make: -

-
-
- -f - Makefile-libbz2_so -
-
-

- Isso causará Bzip2 ser construído usando um arquivo - Makefile diferente, nesse - caso o arquivo Makefile-libbz2_so, o qual cria uma - biblioteca dinâmica libbz2.so e vincula os utilitários de - Bzip2 a ela. -

-
-
-
-

- Compile e teste o pacote: -

-
make
-

- Instale os aplicativos: -

-
make PREFIX=/usr install
-

- Instale a biblioteca compartilhada: -

-
cp -av libbz2.so.* /usr/lib
-ln -sv libbz2.so.1.0.8 /usr/lib/libbz2.so
-

- Instale o binário compartilhado bzip2 no diretório - /usr/bin, e substitua duas - cópias de bzip2 - com links simbólicos: -

-
cp -v bzip2-shared /usr/bin/bzip2
-for i in /usr/bin/{bzcat,bunzip2}; do
-  ln -sfv bzip2 $i
-done
-

- Remova uma biblioteca estática inútil: -

-
rm -fv /usr/lib/libbz2.a
-
-
-

- 8.7.2. - Conteúdo de Bzip2 -

-
-
-
- Aplicativos instalados: - bunzip2 (link para bzip2), bzcat - (link para bzip2), bzcmp (link para bzdiff), bzdiff, - bzegrep (link para bzgrep), bzfgrep (link para bzgrep), - bzgrep, bzip2, bzip2recover, bzless (link para bzmore), e - bzmore -
-
- Bibliotecas instaladas: - libbz2.so -
-
- Diretórios instalados: - /usr/share/doc/bzip2-1.0.8 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- bunzip2 -

-
-

- Descomprime arquivos compactados com bzip -

-
-

- bzcat -

-
-

- Descomprime para a saída padrão -

-
-

- bzcmp -

-
-

- Executa cmp em arquivos - compactados com bzip -

-
-

- bzdiff -

-
-

- Executa diff em arquivos - compactados com bzip -

-
-

- bzegrep -

-
-

- Executa egrep em arquivos - compactados com bzip -

-
-

- bzfgrep -

-
-

- Executa fgrep em arquivos - compactados com bzip -

-
-

- bzgrep -

-
-

- Executa grep em arquivos - compactados com bzip -

-
-

- bzip2 -

-
-

- Comprime arquivos usando o algoritmo de compressão - de texto de classificação de blocos Burrows-Wheeler - com codificação Huffman; a taxa de compressão é - melhor que aquela obtida por compressores mais - convencionais usando algoritmos Lempel-Ziv, como - gzip -

-
-

- bzip2recover -

-
-

- Tenta recuperar dados a partir de arquivos - danificados comprimidos com bzip -

-
-

- bzless -

-
-

- Executa less em arquivos - compactados com bzip -

-
-

- bzmore -

-
-

- Executa more em arquivos - compactados com bzip -

-
-

- libbz2 -

-
-

- A biblioteca que implementa compressão de dados de - classificação de blocos sem perdas, usando o - algoritmo Burrows-Wheeler -

-
-
-
-
-
-
-
-
-

- 8.8. Xz-5.2.5 -

-
-
-
-
-

- O pacote Xz contém aplicativos para compressão e - descompressão de arquivos. Ele fornece capacidades para os - formatos de compressão lzma e o mais novo xz. Comprimir - arquivos de texto com xz gera uma melhor - percentagem de compressão que os tradicionais comandos - gzip ou - bzip2. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 15 MB -
-
-
-
-
-

- 8.8.1. Instalação de Xz -

-

- Prepare Xz para compilação com: -

-
./configure --prefix=/usr    \
-            --disable-static \
-            --docdir=/usr/share/doc/xz-5.2.5
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.8.2. Conteúdo de - Xz -

-
-
-
- Aplicativos instalados: - lzcat (link para xz), lzcmp (link - para xzdiff), lzdiff (link para xzdiff), lzegrep (link - para xzgrep), lzfgrep (link para xzgrep), lzgrep (link - para xzgrep), lzless (link para xzless), lzma (link para - xz), lzmadec, lzmainfo, lzmore (link para xzmore), unlzma - (link para xz), unxz (link para xz), xz, xzcat (link para - xz), xzcmp (link para xzdiff), xzdec, xzdiff, xzegrep - (link para xzgrep), xzfgrep (link para xzgrep), xzgrep, - xzless, e xzmore -
-
- Bibliotecas instaladas: - liblzma.so -
-
- Diretórios instalados: - /usr/include/lzma e - /usr/share/doc/xz-5.2.5 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- lzcat -

-
-

- Descomprime para a saída padrão -

-
-

- lzcmp -

-
-

- Executa cmp em arquivos - comprimidos LZMA -

-
-

- lzdiff -

-
-

- Executa diff em arquivos - comprimidos LZMA -

-
-

- lzegrep -

-
-

- Executa egrep em arquivos - comprimidos LZMA -

-
-

- lzfgrep -

-
-

- Executa fgrep em arquivos - comprimidos LZMA -

-
-

- lzgrep -

-
-

- Executa grep em arquivos - comprimidos LZMA -

-
-

- lzless -

-
-

- Executa less em arquivos - comprimidos LZMA -

-
-

- lzma -

-
-

- Comprime ou descomprime arquivos usando o formato - LZMA -

-
-

- lzmadec -

-
-

- Um decodificador pequeno e rápido para arquivos - comprimidos LZMA -

-
-

- lzmainfo -

-
-

- Exibe informação armazenada no cabeçalho de arquivo - comprimido com LZMA -

-
-

- lzmore -

-
-

- Executa more em arquivos - comprimidos LZMA -

-
-

- unlzma -

-
-

- Descomprime arquivos usando o formato LZMA -

-
-

- unxz -

-
-

- Descomprime arquivos usando o formato XZ -

-
-

- xz -

-
-

- Comprime ou descomprime arquivos usando o formato - XZ -

-
-

- xzcat -

-
-

- Descomprime para a saída padrão -

-
-

- xzcmp -

-
-

- Executa cmp em arquivos - comprimidos XZ -

-
-

- xzdec -

-
-

- Um decodificador pequeno e rápido para arquivos - comprimidos XZ -

-
-

- xzdiff -

-
-

- Executa diff em arquivos - comprimidos XZ -

-
-

- xzegrep -

-
-

- Executa egrep em arquivos - comprimidos XZ -

-
-

- xzfgrep -

-
-

- Executa fgrep em arquivos - comprimidos XZ -

-
-

- xzgrep -

-
-

- Executa grep em arquivos - comprimidos XZ -

-
-

- xzless -

-
-

- Executa less em arquivos - comprimidos XZ -

-
-

- xzmore -

-
-

- Executa more em arquivos - comprimidos XZ -

-
-

- liblzma -

-
-

- A biblioteca que implementa compressão de dados de - classificação de blocos, sem perdas, usando o - algoritmo de cadeia Lempel-Ziv-Markov -

-
-
-
-
-
-
-
-
-

- 8.9. Zstd-1.5.2 -

-
-
-
-
-

- Zstandard é um algoritmo de tempo real de compressão, - fornecendo taxas altas de compressão. Ele oferece um - intervalo muito amplo de combinações de - compressão/velocidade, enquanto é apoiado por um - decodificador muito rápido. -

-
-
-
- Tempo aproximado de - construção: 1,1 UPC -
-
- Espaço em disco - exigido: 55 MB -
-
-
-
-
-

- 8.9.1. Instalação de Zstd -

-

- Compile o pacote: -

-
make
-
-

- Nota -

-

- Na saída de teste existem muitos lugares que indicam - 'failed'. Essas são esperadas e apenas 'FAIL' é uma falha - atual de teste. Não deveriam existir falhas de teste. -

-
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make prefix=/usr install
-

- Remova a biblioteca estática: -

-
rm -v /usr/lib/libzstd.a
-
-
-

- 8.9.2. - Conteúdo de Zstd -

-
-
-
- Aplicativos instalados: - zstd, zstdcat (link para zstd), - zstdgrep, zstdless, zstdmt (link para zstd), e unzstd - (link para zstd) -
-
- Bibliotecas instaladas: - libzstd.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- zstd -

-
-

- Comprime ou descomprime arquivos usando o formato - ZSTD -

-
-

- zstdgrep -

-
-

- Executa grep em arquivos - comprimidos ZSTD -

-
-

- zstdless -

-
-

- Executa less em arquivos - comprimidos ZSTD -

-
-

- libzstd -

-
-

- A biblioteca que implementa compressão de dados sem - perdas, usando o algoritmo ZSTD -

-
-
-
-
-
-
-
-
-

- 8.10. File-5.41 -

-
-
-
-
-

- O pacote File contém um utilitário para determinar o tipo de - um dado arquivo ou arquivos. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 15 MB -
-
-
-
-
-

- 8.10.1. Instalação de File -

-

- Prepare File para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.10.2. - Conteúdo de File -

-
-
-
- Aplicativos instalados: - file -
-
- Bibliotecas instaladas: - libmagic.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- file -

-
-

- Tenta classificar cada arquivo dado; ele faz isso - realizando vários testes—testes de sistema de - arquivos, testes de números mágicos, e testes de - idioma -

-
-

- libmagic -

-
-

- Contém rotinas para reconhecimento de números - mágicos, usado pelo aplicativo file -

-
-
-
-
-
-
-
-
-

- 8.11. Readline-8.1.2 -

-
-
-
-
-

- O pacote Readline é um conjunto de bibliotecas que oferecem - edição de linha de comando e capacidades de histórico. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 15 MB -
-
-
-
-
-

- 8.11.1. Instalação de Readline -

-

- Reinstalar Readline causará as bibliotecas antigas serem - movidas para <libraryname>.old. Mesmo que isso - normalmente não seja um problema, em alguns casos isso pode - deflagrar um defeito de vinculação em ldconfig. Isso pode ser - evitado executando os seguintes dois seds: -

-
sed -i '/MV.*old/d' Makefile.in
-sed -i '/{OLDSUFF}/c:' support/shlib-install
-

- Prepare Readline para compilação: -

-
./configure --prefix=/usr    \
-            --disable-static \
-            --with-curses    \
-            --docdir=/usr/share/doc/readline-8.1.2
-
-

- O significado da opção de configure: -

-
-
- --with-curses -
-
-

- Essa opção diz a Readline que ela pode encontrar as - funções de biblioteca de termcap na biblioteca curses, - em vez de uma biblioteca termcap separada. Ela permite - a geração de um arquivo readline.pc correto. -

-
-
-
-

- Compile o pacote: -

-
make SHLIB_LIBS="-lncursesw"
-
-

- O significado da opção de make: -

-
-
- SHLIB_LIBS="-lncursesw" -
-
-

- Essa opção força Readline a vincular com a biblioteca - libncursesw. -

-
-
-
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
make SHLIB_LIBS="-lncursesw" install
-

- Se desejado, instale a documentação: -

-
install -v -m644 doc/*.{ps,pdf,html,dvi} /usr/share/doc/readline-8.1.2
-
-
-

- 8.11.2. Conteúdo de Readline -

-
-
-
- Bibliotecas instaladas: - libhistory.so e - libreadline.so -
-
- Diretórios instalados: - /usr/include/readline e - /usr/share/doc/readline-8.1.2 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- libhistory -

-
-

- Fornece uma consistente interface de usuária(o) - para recordar linhas de histórico -

-
-

- libreadline -

-
-

- Fornece um conjunto de comandos para manipular - texto digitado em uma sessão interativa de um - aplicativo -

-
-
-
-
-
-
-
-
-

- 8.12. M4-1.4.19 -

-
-
-
-
-

- O pacote M4 contém um processador de macro. -

-
-
-
- Tempo aproximado de - construção: 0,7 UPC -
-
- Espaço em disco - exigido: 49 MB -
-
-
-
-
-

- 8.12.1. Instalação de M4 -

-

- Prepare M4 para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.12.2. Conteúdo - de M4 -

-
-
-
- Aplicativo instalado: - m4 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- m4 -

-
-

- Copia os arquivos dados enquanto expande as macros - que eles contém. Essas macros são ou nativas ou - definidas pela(o) usuária(o) e podem receber - qualquer número de argumentos. Além de executar - expansão de macro, m4 tem funções - nativas para incluir arquivos nomeados, executar - comandos Unix, realizar aritmética de inteiros, - manipular texto, recursão, etc. O aplicativo - m4 - pode ser usado ou como um front-end para um - compilador ou como um processador de macro - independente -

-
-
-
-
-
-
-
-
-

- 8.13. Bc-5.2.2 -

-
-
-
-
-

- O pacote Bc contém uma linguagem de processamento numérica de - precisão arbitrária. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 7,1 MB -
-
-
-
-
-

- 8.13.1. Instalação de Bc -

-

- Prepare Bc para compilação: -

-
CC=gcc ./configure --prefix=/usr -G -O3
-
-

- O significado das opções de configure: -

-
-
- CC=gcc -
-
-

- Esse parâmetro especifica o compilador a usar. -

-
-
- -O3 -
-
-

- Especifica a optimização a usar. -

-
-
- -G -
-
-

- Omite partes da suíte de teste que não funcionariam sem - um GNU bc presente. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar bc, execute: -

-
make test
-

- Instale o pacote: -

-
make install
-
-
-

- 8.13.2. Conteúdo - de Bc -

-
-
-
- Aplicativos instalados: - bc e dc -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- bc -

-
-

- Uma calculadora de linha de comando -

-
-

- dc -

-
-

- Uma calculadora de linha de comando de entrada - polonesa - reversa -

-
-
-
-
-
-
-
-
-

- 8.14. Flex-2.6.4 -

-
-
-
-
-

- O pacote Flex contém um utilitário para gerar aplicativos que - reconhecem padrões em texto. -

-
-
-
- Tempo aproximado de - construção: 0,4 UPC -
-
- Espaço em disco - exigido: 32 MB -
-
-
-
-
-

- 8.14.1. Instalação de Flex -

-

- Prepare Flex para compilação: -

-
./configure --prefix=/usr \
-            --docdir=/usr/share/doc/flex-2.6.4 \
-            --disable-static
-

- Compile o pacote: -

-
make
-

- Para testar os resultados (cerca de 0,5 UPC), execute: -

-
make check
-

- Instale o pacote: -

-
make install
-

- Uns poucos aplicativos não sabem acerca de flex ainda e tentam - executar seu predecessor, lex. Para suportar esses - aplicativos, crie um link simbólico chamado lex que executa flex em modo de emulação lex: -

-
ln -sv flex /usr/bin/lex
-
-
-

- 8.14.2. - Conteúdo de Flex -

-
-
-
- Aplicativos instalados: - flex, flex++ (link para flex), e - lex (link para flex) -
-
- Bibliotecas instaladas: - libfl.so -
-
- Diretórios instalados: - /usr/share/doc/flex-2.6.4 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- flex -

-
-

- Uma ferramenta para gerar aplicativos que - reconhecem padrões em texto; ele permite, para a - versatilidade, especificar as regras para encontrar - padrões, erradicando a necessidade de desenvolver - um aplicativo especializado -

-
-

- flex++ -

-
-

- Uma extensão de flex, é usada para gerar código e - classes C++. É um link simbólico para flex -

-
-

- lex -

-
-

- Um link simbólico que executa flex em modo de - emulação lex -

-
-

- libfl -

-
-

- A biblioteca flex -

-
-
-
-
-
-
-
-
-

- 8.15. Tcl-8.6.12 -

-
-
-
-
-

- O pacote Tcl contém a Tool - Command Language, uma linguagem de script robusta de - propósito geral. O pacote Expect é escrito na linguagem - Tcl. -

-
-
-
- Tempo aproximado de - construção: 3,4 UPC -
-
- Espaço em disco - exigido: 87 MB -
-
-
-
-
-

- 8.15.1. Instalação de Tcl -

-

- Esse pacote e os próximos dois (Expect e DejaGNU) são - instalados para suportar a execução das suítes de teste para - binutils e GCC e outros pacotes. Instalar três pacotes para - propósitos de teste talvez pareça excessivo, mas é muito - assegurador, se não essencial, saber que as ferramentas mais - importantes estão funcionando adequadamente. -

-

- Primeiro, desempacote a documentação executando o seguinte - comando: -

-
tar -xf ../tcl8.6.12-html.tar.gz --strip-components=1
-

- Prepare Tcl para compilação: -

-
SRCDIR=$(pwd)
-cd unix
-./configure --prefix=/usr           \
-            --mandir=/usr/share/man \
-            $([ "$(uname -m)" = x86_64 ] && echo --enable-64bit)
-
-

- O significado das opções de configure: -

-
-
- $([ - "$(uname -m)" = x86_64 ] && echo - --enable-64bit) -
-
-

- A construção $(<shell - command>) é substituída pela saída do - comando de shell. Aqui essa saída é vazia se executada - em uma máquina de 32 bits, e é --enable-64bit se - executada em uma máquina de 64 bits. -

-
-
-
-

- Construa o pacote: -

-
make
-
-sed -e "s|$SRCDIR/unix|/usr/lib|" \
-    -e "s|$SRCDIR|/usr/include|"  \
-    -i tclConfig.sh
-
-sed -e "s|$SRCDIR/unix/pkgs/tdbc1.1.3|/usr/lib/tdbc1.1.3|" \
-    -e "s|$SRCDIR/pkgs/tdbc1.1.3/generic|/usr/include|"    \
-    -e "s|$SRCDIR/pkgs/tdbc1.1.3/library|/usr/lib/tcl8.6|" \
-    -e "s|$SRCDIR/pkgs/tdbc1.1.3|/usr/include|"            \
-    -i pkgs/tdbc1.1.3/tdbcConfig.sh
-
-sed -e "s|$SRCDIR/unix/pkgs/itcl4.2.2|/usr/lib/itcl4.2.2|" \
-    -e "s|$SRCDIR/pkgs/itcl4.2.2/generic|/usr/include|"    \
-    -e "s|$SRCDIR/pkgs/itcl4.2.2|/usr/include|"            \
-    -i pkgs/itcl4.2.2/itclConfig.sh
-
-unset SRCDIR
-

- As várias instruções sed após o comando make - removem referências ao diretório de construção dos arquivos - de configuração e as substituem com o diretório de - instalação. Isso não é obrigatório para o restante de LFS, - porém talvez seja necessário caso um pacote construído - posteriormente use Tcl. -

-

- Para testar os resultados, execute: -

-
make test
-

- Instale o pacote: -

-
make install
-

- Torne as bibliotecas instaladas graváveis de modo que - símbolos de depuração possam ser removidos posteriormente: -

-
chmod -v u+w /usr/lib/libtcl8.6.so
-

- Instale os cabeçalhos do Tcl. O próximo pacote, Expect, exige - elas. -

-
make install-private-headers
-

- Agora faça um necessário link simbólico: -

-
ln -sfv tclsh8.6 /usr/bin/tclsh
-

- Renomeie uma página de manual que conflita com uma página de - manual de Perl: -

-
mv /usr/share/man/man3/{Thread,Tcl_Thread}.3
-

- Se você transferiu a documentação opcional, então instale ela - executando os seguintes comandos: -

-
mkdir -v -p /usr/share/doc/tcl-8.6.12
-cp -v -r  ../html/* /usr/share/doc/tcl-8.6.12
-
-
-

- 8.15.2. Conteúdo - de Tcl -

-
-
-
- Aplicativos instalados: - tclsh (link to tclsh8.6) e - tclsh8.6 -
-
- Bibliotecas instaladas: - libtcl8.6.so e - libtclstub8.6.a -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- tclsh8.6 -

-
-

- O shell de comando de Tcl -

-
-

- tclsh -

-
-

- Um link para tclsh8.6 -

-
-

- libtcl8.6.so -

-
-

- A biblioteca Tcl -

-
-

- libtclstub8.6.a -

-
-

- A biblioteca Stub de Tcl -

-
-
-
-
-
-
-
-
-

- 8.16. Expect-5.45.4 -

-
-
-
-
-

- O pacote Expect contém - ferramentas para automatizar, via diálogos com script, - aplicativos interativos tais como telnet, ftp, passwd, fsck, rlogin, e tip. Expect também é útil para testar esses - mesmos aplicativos bem como facilitar todos os tipos de - tarefas que são proibitivamente difíceis com qualquer outra - coisa. A estrutura subjacente de DejaGnu é escrita em Expect. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 3,9 MB -
-
-
-
-
-

- 8.16.1. Instalação de Expect -

-

- Prepare Expect para compilação: -

-
./configure --prefix=/usr           \
-            --with-tcl=/usr/lib     \
-            --enable-shared         \
-            --mandir=/usr/share/man \
-            --with-tclinclude=/usr/include
-
-

- O significado das opções de configure: -

-
-
- --with-tcl=/usr/lib -
-
-

- Esse parâmetro é necessário para dizer a configure onde o - script tclConfig.sh está - localizado. -

-
-
- --with-tclinclude=/usr/include -
-
-

- Isso explicitamente diz a Expect onde encontrar os - cabeçalhos internos de Tcl. -

-
-
-
-

- Construa o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make test
-

- Instale o pacote: -

-
make install
-ln -svf expect5.45.4/libexpect5.45.4.so /usr/lib
-
-
-

- 8.16.2. - Conteúdo de Expect -

-
-
-
- Aplicativo instalado: - expect -
-
- Biblioteca instalada: - libexpect5.45.4.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- expect -

-
-

- Comunica-se com outros aplicativos interativos de - acordo com um script -

-
-

- libexpect-5.45.4.so -

-
-

- Contém funções que permitem a Expect ser usado como - uma extensão Tcl ou ser usado diretamente a partir - de C ou C++ (sem Tcl) -

-
-
-
-
-
-
-
-
-

- 8.17. DejaGNU-1.6.3 -

-
-
-
-
-

- O pacote DejaGnu contém uma - estrutura subjacente para executar suítes de teste em - ferramentas GNU. Ele é escrito em expect, a qual usa ela - própria Tcl (Tool Command - Language). -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 6,9 MB -
-
-
-
-
-

- 8.17.1. Instalação de DejaGNU -

-

- A(O) desenvolvedora(r) recomenda construir DejaGNU em um - diretório dedicado à construção: -

-
mkdir -v build
-cd       build
-

- Prepare DejaGNU para compilação: -

-
../configure --prefix=/usr
-makeinfo --html --no-split -o doc/dejagnu.html ../doc/dejagnu.texi
-makeinfo --plaintext       -o doc/dejagnu.txt  ../doc/dejagnu.texi
-

- Construa e instale o pacote: -

-
make install
-install -v -dm755  /usr/share/doc/dejagnu-1.6.3
-install -v -m644   doc/dejagnu.{html,txt} /usr/share/doc/dejagnu-1.6.3
-

- Para testar os resultados, execute: -

-
make check
-
-
-

- 8.17.2. - Conteúdo de DejaGNU -

-
-
-
- Aplicativos instalados: - dejagnu e runtest -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- dejagnu -

-
-

- Iniciador de comando auxiliar DejaGNU -

-
-

- runtest -

-
-

- Um script encapsulador que localiza o shell - expect adequado - e, em seguida, executa o DejaGNU -

-
-
-
-
-
-
-
-
-

- 8.18. Binutils-2.38 -

-
-
-
-
-

- O pacote Binutils contém um vinculador, um montador, e outras - ferramentas para manusear arquivos objeto. -

-
-
-
- Tempo aproximado de - construção: 6,1 UPC -
-
- Espaço em disco - exigido: 4,6 GB -
-
-
-
-
-

- 8.18.1. Instalação de Binutils -

-

- Verifique se os Pseudo Terminais (PTYs) estão funcionando - adequadamente dentro do ambiente chroot executando um teste - simples: -

-
expect -c "spawn ls"
-

- Esse comando deveria retornar o seguinte: -

-
spawn ls
-

- Se, ao invés, a saída incluir a mensagem abaixo, então o - ambiente não está configurado para operação adequada de PTY. - Esse problema precisa ser resolvido antes de executar as - suítes de teste para Binutils e GCC: -

-
The system has no more ptys.
-Ask your system administrator to create more.
-

- A(O) desenvolvedora(r) fez um conjunto curto de comandos para - fixar um problema quando do uso de binutils para construir - alguns pacotes BLFS com Link Time Optimization (LTO) - habilitado. Aplique ele agora: -

-
patch -Np1 -i ../binutils-2.38-lto_fix-1.patch
-

- Agora, faça um conserto identificado pela(o) - desenvolvedora(r) que afeta a construção alguns pacotes: -

-
sed -e '/R_386_TLS_LE /i \   || (TYPE) == R_386_TLS_IE \\' \
-    -i ./bfd/elfxx-x86.h
-

- A documentação de Binutils recomenda construir Binutils em um - diretório dedicado à construção: -

-
mkdir -v build
-cd       build
-

- Prepare Binutils para compilação: -

-
../configure --prefix=/usr       \
-             --enable-gold       \
-             --enable-ld=default \
-             --enable-plugins    \
-             --enable-shared     \
-             --disable-werror    \
-             --enable-64-bit-bfd \
-             --with-system-zlib
-
-

- O significado dos parâmetros de configure: -

-
-
- --enable-gold -
-
-

- Constrói o vinculador gold e instala ele como ld.gold - (juntamente com o vinculador padrão). -

-
-
- --enable-ld=default -
-
-

- Constrói o vinculador bfd original e instala ele como - ambos ld (o vinculador padrão) e ld.bfd. -

-
-
- --enable-plugins -
-
-

- Habilita suporte de plugin para o vinculador. -

-
-
- --enable-64-bit-bfd -
-
-

- Habilita suporte de 64 bits (em anfitriões com tamanhos - de palavra mais estreitos). Talvez não seja necessário - em sistemas de 64 bits, porém não causa dano. -

-
-
- --with-system-zlib -
-
-

- Usa a biblioteca zlib instalada em vez de construir a - versão incluída. -

-
-
-
-

- Compile o pacote: -

-
make tooldir=/usr
-
-

- O significado do parâmetro de make: -

-
-
- tooldir=/usr -
-
-

- Normalmente, o tooldir (o diretório onde os executáveis - estarão ultimamente localizados) é configurado para - $(exec_prefix)/$(target_alias). Por - exemplo, máquinas x86_64 expandiriam isso para - /usr/x86_64-pc-linux-gnu. - Por causa que este é um sistema personalizado, esse - diretório alvo específico em /usr não é exigido. $(exec_prefix)/$(target_alias) seria - usado se o sistema fosse usado para compilar - cruzadamente (por exemplo, compilar um pacote em uma - máquina Intel que gera código que pode ser executado em - máquinas PowerPC). -

-
-
-
-
-

- Importante -

-

- A suíte de teste para Binutils nesta seção é considerada - crítica. Não pule sob quaisquer circunstâncias. -

-
-

- Teste os resultados: -

-
make -k check
-

- Instale o pacote: -

-
make tooldir=/usr install
-

- Remova bibliotecas estáticas inúteis: -

-
rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes}.a
-
-
-

- 8.18.2. Conteúdo de Binutils -

-
-
-
- Aplicativos instalados: - addr2line, ar, as, c++filt, dwp, - elfedit, gprof, ld, ld.bfd, ld.gold, nm, objcopy, - objdump, ranlib, readelf, size, strings, e strip -
-
- Bibliotecas instaladas: - libbfd.so, libctf.so, - libctf-nobfd.so, e libopcodes.so -
-
- Diretório instalado: - /usr/lib/ldscripts -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- addr2line -

-
-

- Traduz endereços de aplicativos para nomes de - arquivo e números de linha; dado um endereço e o - nome de um executável, ele usa a informação de - depuração no executável para determinar qual - arquivo fonte e número de linha estão associados ao - endereço -

-
-

- ar -

-
-

- Cria, modifica e extrai a partir de arquivamentos -

-
-

- as -

-
-

- Um montador que monta a saída de gcc para dentro - de arquivos objeto -

-
-

- c++filt -

-
-

- Usado pelo vinculador para desmembrar símbolos C++ - e Java e para impedir que funções sobrecarregadas - entrem em conflito -

-
-

- dwp -

-
-

- O utilitário de empacotamento DWARF -

-
-

- elfedit -

-
-

- Atualiza o cabeçalho ELF de arquivos ELF -

-
-

- gprof -

-
-

- Exibe dados do perfil de gráfico de chamada -

-
-

- ld -

-
-

- Um vinculador que combina um número de objetos e - arquivos de arquivamento em um arquivo, realocando - seus dados e vinculando referências de símbolos -

-
-

- ld.gold -

-
-

- Uma versão reduzida de ld que suporta apenas o - formato de arquivo de objeto elf -

-
-

- ld.bfd -

-
-

- Hard link para ld -

-
-

- nm -

-
-

- Lista os símbolos que ocorrem em um dado arquivo de - objeto -

-
-

- objcopy -

-
-

- Traduz um tipo de arquivo de objeto em outro -

-
-

- objdump -

-
-

- Exibe informação sobre o dado arquivo de objeto, - com opções controlando a informação particular a - ser exibida; a informação mostrada é útil para - programadores que estão trabalhando nas ferramentas - de compilação -

-
-

- ranlib -

-
-

- Gera um índice do conteúdo de um arquivamento e o - armazena no arquivamento; o índice lista todos os - símbolos definidos pelos membros do arquivamento - que são arquivos de objeto realocáveis -

-
-

- readelf -

-
-

- Exibe informação sobre binários de tipo ELF -

-
-

- size -

-
-

- Lista os tamanhos de seção e o tamanho total para - os arquivos de objeto dados -

-
-

- strings -

-
-

- Exibe, para cada arquivo dado, as sequências de - caracteres imprimíveis que são de, no mínimo, o - tamanho especificado (padronizado para quatro); - para arquivos de objeto, ele imprime, por padrão, - apenas as sequências de caracteres a partir das - seções de inicialização e carregamento enquanto que - para outros tipos de arquivos, ele escaneia o - arquivo inteiro -

-
-

- strip -

-
-

- Descarta símbolos de arquivos de objeto -

-
-

- libbfd -

-
-

- A biblioteca de Descritor de Arquivo Binário -

-
-

- libctf -

-
-

- A biblioteca de suporte de depuração Compat ANSI-C - Type Format -

-
-

- libctf-nobfd -

-
-

- Uma variante de libctf que não usa funcionalidade - de libbfd -

-
-

- libopcodes -

-
-

- Uma biblioteca para lidar com opcodes—as - versões de texto legível de - instruções para o processador; é usado para - construir utilitários como objdump -

-
-
-
-
-
-
-
-
-

- 8.19. GMP-6.2.1 -

-
-
-
-
-

- O pacote GMP contém bibliotecas matemáticas. Essas tem - funções úteis para aritmética de precisão arbitrária. -

-
-
-
- Tempo aproximado de - construção: 1,0 UPC -
-
- Espaço em disco - exigido: 52 MB -
-
-
-
-
-

- 8.19.1. Instalação de GMP -

-
-

- Nota -

-

- Se você estiver construindo para x86 de 32 bits, mas tem - uma CPU capaz de executar código de 64 bits e você especificou CFLAGS no ambiente, então o script configure - tentará configurar para 64 bits e falhará. Impeça isso - invocando o comando de configure abaixo com -

-
ABI=32 ./configure ...
-
-
-

- Nota -

-

- As configurações padrão de GMP produzem bibliotecas - otimizadas para o processador anfitrião. Se bibliotecas - adequadas para processadores menos capazes que a CPU do - anfitrião forem desejadas, então bibliotecas genéricas - podem ser criadas executando o seguinte: -

-
cp -v configfsf.guess config.guess
-cp -v configfsf.sub   config.sub
-
-

- Prepare GMP para compilação: -

-
./configure --prefix=/usr    \
-            --enable-cxx     \
-            --disable-static \
-            --docdir=/usr/share/doc/gmp-6.2.1
-
-

- O significado das novas opções de - configure: -

-
-
- --enable-cxx -
-
-

- Esse parâmetro habilita suporte a C++ -

-
-
- --docdir=/usr/share/doc/gmp-6.2.1 -
-
-

- Essa variável especifica o lugar correto para a - documentação. -

-
-
-
-

- Compile o pacote e gere a documentação HTML: -

-
make
-make html
-
-

- Importante -

-

- A suíte de teste para GMP nesta seção é considerada - crítica. Não pule sob quaisquer circunstâncias. -

-
-

- Teste os resultados: -

-
make check 2>&1 | tee gmp-check-log
-
-

- Cuidado -

-

- O código em gmp é altamente otimizado para o processador - onde ele é construído. Ocasionalmente, o código que detecta - o processador identifica errado as capacidades de sistema e - existirão erros nos testes ou outros aplicativos que usam - as bibliotecas de gmp com a mensagem "Illegal instruction". - Nesse caso, gmp deveria ser reconfigurado com a opção - --build=x86_64-pc-linux-gnu e reconstruído. -

-
-

- Certifique-se de que todos os 197 testes na suíte de teste - passaram. Verifique os resultados executando o seguinte - comando: -

-
awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log
-

- Instale o pacote e a documentação dele: -

-
make install
-make install-html
-
-
-

- 8.19.2. Conteúdo - de GMP -

-
-
-
- Bibliotecas instaladas: - libgmp.so e libgmpxx.so -
-
- Diretório instalado: - /usr/share/doc/gmp-6.2.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- libgmp -

-
-

- Contém funções matemáticas de precisão -

-
-

- libgmpxx -

-
-

- Contém funções matemáticas de precisão C++ -

-
-
-
-
-
-
-
-
-

- 8.20. MPFR-4.1.0 -

-
-
-
-
-

- O pacote MPFR contém funções para matemática de precisão - múltipla. -

-
-
-
- Tempo aproximado de - construção: 0,8 UPC -
-
- Espaço em disco - exigido: 38 MB -
-
-
-
-
-

- 8.20.1. Instalação de MPFR -

-

- Prepare MPFR para compilação: -

-
./configure --prefix=/usr        \
-            --disable-static     \
-            --enable-thread-safe \
-            --docdir=/usr/share/doc/mpfr-4.1.0
-

- Compile o pacote e gere a documentação HTML: -

-
make
-make html
-
-

- Importante -

-

- A suíte de teste para MPFR nesta seção é considerada - crítica. Não pule sob quaisquer circunstâncias. -

-
-

- Teste os resultados e certifique-se de que todos os testes - passaram: -

-
make check
-

- Instale o pacote e a documentação dele: -

-
make install
-make install-html
-
-
-

- 8.20.2. - Conteúdo de MPFR -

-
-
-
- Biblioteca instalada: - libmpfr.so -
-
- Diretório instalado: - /usr/share/doc/mpfr-4.1.0 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- libmpfr -

-
-

- Contém funções matemáticas de precisão múltipla -

-
-
-
-
-
-
-
-
-

- 8.21. MPC-1.2.1 -

-
-
-
-
-

- O pacote MPC contém uma biblioteca para a aritmética de - números complexos com precisão arbitrariamente alta e - arredondamento correto de resultado. -

-
-
-
- Tempo aproximado de - construção: 0,3 UPC -
-
- Espaço em disco - exigido: 21 MB -
-
-
-
-
-

- 8.21.1. Instalação de MPC -

-

- Prepare MPC para compilação: -

-
./configure --prefix=/usr    \
-            --disable-static \
-            --docdir=/usr/share/doc/mpc-1.2.1
-

- Compile o pacote e gere a documentação HTML: -

-
make
-make html
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote e a documentação dele: -

-
make install
-make install-html
-
-
-

- 8.21.2. Conteúdo - de MPC -

-
-
-
- Biblioteca instalada: - libmpc.so -
-
- Diretório instalado: - /usr/share/doc/mpc-1.2.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- libmpc -

-
-

- Contém funções matemáticas complexas -

-
-
-
-
-
-
-
-
-

- 8.22. Attr-2.5.1 -

-
-
-
-
-

- O pacote attr contém utilitários para administrar os - atributos estendidos sobre objetos de sistema de arquivos. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 4,1 MB -
-
-
-
-
-

- 8.22.1. Instalação de Attr -

-

- Prepare Attr para compilação: -

-
./configure --prefix=/usr     \
-            --disable-static  \
-            --sysconfdir=/etc \
-            --docdir=/usr/share/doc/attr-2.5.1
-

- Compile o pacote: -

-
make
-

- Os testes precisam ser executados sobre um sistema de - arquivos que suporte atributos estendidos, tais como os - sistemas de arquivos ext2, ext3 ou ext4. Para testar os - resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.22.2. - Conteúdo de Attr -

-
-
-
- Aplicativos instalados: - attr, getfattr, e setfattr -
-
- Biblioteca instalada: - libattr.so -
-
- Diretórios instalados: - /usr/include/attr e - /usr/share/doc/attr-2.5.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- attr -

-
-

- Estende atributos sobre objetos de sistemas de - arquivos -

-
-

- getfattr -

-
-

- Obtém os atributos estendidos de objetos de - sistemas de arquivos -

-
-

- setfattr -

-
-

- Configura os atributos estendidos de objetos de - sistemas de arquivos -

-
-

- libattr -

-
-

- Contém as funções de biblioteca para manipular - atributos estendidos -

-
-
-
-
-
-
-
-
-

- 8.23. Acl-2.3.1 -

-
-
-
-
-

- O pacote Acl contém utilitários para administrar Listas de - Controle de Acesso, as quais são usadas para definir direitos - de acesso discricionários mais refinados para arquivos e - diretórios. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 6,1 MB -
-
-
-
-
-

- 8.23.1. Instalação de Acl -

-

- Prepare Acl para compilação: -

-
./configure --prefix=/usr         \
-            --disable-static      \
-            --docdir=/usr/share/doc/acl-2.3.1
-

- Compile o pacote: -

-
make
-

- Os testes de Acl precisam ser executados sobre um sistema de - arquivos que suporte controles de acesso, após Coreutils ter sido construído com as - bibliotecas de Acl. Se desejado, retorne a esse pacote e - execute make - check após Coreutils ter sido construído - posteriormente neste capítulo. -

-

- Instale o pacote: -

-
make install
-
-
-

- 8.23.2. Conteúdo - de Acl -

-
-
-
- Aplicativos instalados: - chacl, getfacl, e setfacl -
-
- Biblioteca instalada: - libacl.so -
-
- Diretórios instalados: - /usr/include/acl e - /usr/share/doc/acl-2.3.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- chacl -

-
-

- Muda a lista de controle de acesso de um arquivo ou - diretório -

-
-

- getfacl -

-
-

- Obtém listas de controle de acesso de arquivo -

-
-

- setfacl -

-
-

- Configura listas de controle de acesso de arquivo -

-
-

- libacl -

-
-

- Contém as funções de biblioteca para manipular - Listas de Controle de Acesso -

-
-
-
-
-
-
-
-
-

- 8.24. Libcap-2.63 -

-
-
-
-
-

- O pacote Libcap implementa as interfaces de espaço de - usuária(o) para as capacidades POSIX 1003.1e disponíveis em - kernels Linux. Essas capacidades são um particionamento de - todo o poderoso privilégio de root em um conjunto de - privilégios distintos. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 2,7 MB -
-
-
-
-
-

- 8.24.1. Instalação de Libcap -

-

- Impeça bibliotecas estáticas de serem instaladas: -

-
sed -i '/install -m.*STA/d' libcap/Makefile
-

- Compile o pacote: -

-
make prefix=/usr lib=lib
-
-

- O significado da opção de make: -

-
-
- lib=lib -
-
-

- Esse parâmetro configura o diretório de biblioteca para - /usr/lib em vez de - /usr/lib64 em x86_64. Ele - não tem efeito em x86. -

-
-
-
-

- Para testar os resultados, execute: -

-
make test
-

- Instale o pacote: -

-
make prefix=/usr lib=lib install
-
-
-

- 8.24.2. - Conteúdo de Libcap -

-
-
-
- Aplicativos instalados: - capsh, getcap, getpcaps, e - setcap -
-
- Bibliotecas instaladas: - libcap.so e libpsx.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- capsh -

-
-

- Um encapsulador de shell para explorar e restringir - suporte de capacidade -

-
-

- getcap -

-
-

- Examina capacidades de arquivo -

-
-

- getpcaps -

-
-

- Exibe as capacidades sobre o(s) processo(s) - consultado(s) -

-
-

- setcap -

-
-

- Configura capacidades de arquivo -

-
-

- libcap -

-
-

- Contém as funções de biblioteca para manipular - capacidades POSIX 1003.1e -

-
-

- libpsx -

-
-

- Contém funções para suportar semântica POSIX para - chamadas de sistema associadas com a biblioteca - pthread -

-
-
-
-
-
-
-
-
-

- 8.25. Shadow-4.11.1 -

-
-
-
-
-

- O pacote Shadow contém aplicativos para manipular senhas de - uma maneira segura. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 49 MB -
-
-
-
-
-

- 8.25.1. Instalação de Shadow -

-
-

- Nota -

-

- Se você gostaria de reforçar o uso de senhas fortes, então - recorra a - https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/cracklib.html - para instalar CrackLib antes de construir Shadow. Então - adicione --with-libcrack ao comando - configure - abaixo. -

-
-

- Desabilite a instalação do aplicativo groups e suas páginas de - manual, uma vez que Coreutils fornece uma versão melhor. - Também, impeça a instalação de páginas de manual que já foram - instaladas em Seção 8.3, - “Man-pages-5.13”: -

-
sed -i 's/groups$(EXEEXT) //' src/Makefile.in
-find man -name Makefile.in -exec sed -i 's/groups\.1 / /'   {} \;
-find man -name Makefile.in -exec sed -i 's/getspnam\.3 / /' {} \;
-find man -name Makefile.in -exec sed -i 's/passwd\.5 / /'   {} \;
-

- Em vez de usar o método padrão - crypt, use o método - mais seguro SHA-512 de - encriptação de senha, o qual também permite senhas maiores - que oito (08) caracteres. É também necessário mudar a - localização obsoleta /var/spool/mail para caixas de correio de - usuária(o) que Shadow usa por padrão pela localização - /var/mail usada atualmente. E, - livre-se de /bin e /sbin a partir de PATH, uma vez que eles são simples links - simbólicos para seus homônimos em /usr. -

-
-

- Nota -

-

- Se /bin e (ou) /sbin forem preferidos para serem - deixados em PATH por alguma - razão, então modifique PATH em - .bashrc após LFS ser - construído. -

-
-
sed -e 's:#ENCRYPT_METHOD DES:ENCRYPT_METHOD SHA512:' \
-    -e 's:/var/spool/mail:/var/mail:'                 \
-    -e '/PATH=/{s@/sbin:@@;s@/bin:@@}'                \
-    -i etc/login.defs
-
-

- Nota -

-

- Se você escolher construir Shadow com suporte CrackLib, - então execute o seguinte: -

-
sed -i 's:DICTPATH.*:DICTPATH\t/lib/cracklib/pw_dict:' etc/login.defs
-
-

- Prepare Shadow para compilação: -

-
touch /usr/bin/passwd
-./configure --sysconfdir=/etc \
-            --disable-static  \
-            --with-group-name-max-length=32
-
-

- O significado da opção de configure: -

-
-
- touch - /usr/bin/passwd -
-
-

- O arquivo /usr/bin/passwd - precisa existir, pois a localização dele é codificada - rigidamente em alguns aplicativos, e se ele não - existir, então a localização padrão não é correta. -

-
-
- --with-group-name-max-length=32 -
-
-

- O nome de usuária(o) máximo é trinta e dois (32) - caracteres. Torne o nome de grupo máximo o mesmo. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
make exec_prefix=/usr install
-make -C man install-man
-
-
-

- 8.25.2. - Configurando Shadow -

-

- Esse pacote contém utilitários para adicionar, modificar, e - deletar usuárias(os) e grupos; configura e modifica suas - senhas; e realiza outras tarefas administrativas. Para uma - explanação completa do que password shadowing significa, veja - o arquivo doc/HOWTO dentro da - árvore desempacotada de fonte. Se usar suporte Shadow, então - tenha na mente que aplicativos que necessitem verificar - senhas (gerenciadores de tela, aplicativos de FTP, daemons - pop3, etc.) precisam ser conformes com Shadow. Isto é, eles - precisam ser capazes de trabalhar com senhas ocultas. -

-

- Para habilitar senhas ocultas, execute o seguinte comando: -

-
pwconv
-

- Para habilitar senhas ocultas de grupo, execute: -

-
grpconv
-

- A configuração padrão de Shadow para o utilitário - useradd tem - umas poucas ressalvas que precisam de alguma explanação. - Primeiro, a ação padrão para o utilitário useradd é a de criar a(o) - usuária(o) e um grupo de mesmo nome que a(o) usuária(o). Por - padrão os números de ID de usuária(o) (UID) e ID de grupo - (GID) iniciarão com 1000. Isso significa que se você não - passar parâmetros para useradd, então cada - usuária(o) será uma(m) membro de um grupo único no sistema. - Se esse comportamento for indesejável, então você precisará - passar um parâmetro de -g ou -N para useradd ou mudar a - configuração de USERGROUPS_ENAB em /etc/login.defs. Veja-se useradd(8) para mais informação. -

-

- Segundo, para mudar os parâmetros padrão, o arquivo - /etc/default/useradd precisa - ser criado e adaptado para atender às suas necessidades - particulares. Crie ele com: -

-
mkdir -p /etc/default
-useradd -D --gid 999
-
-

- Explanações de Parâmetro de /etc/default/useradd -

-
-
- GROUP=999 -
-
-

- Esse parâmetro configura o início dos números de grupo - usado no arquivo /etc/group. O valor particular 999 - vem do parâmetro --gid acima. Você pode - modificá-lo para qualquer coisa que deseje. Note que - useradd - nunca reusará um UID ou GID. Se o número identificado - nesse parâmetro for usado, então ele usará o próximo - número disponível. Note também que se você não tiver um - grupo com um ID igual a esse número em seu sistema na - primeira vez que você usar useradd sem o - parâmetro -g, - então você receberá uma mensagem exibida no terminal - que diz: useradd: unknown - GID 999, apesar de a conta estar criada - corretamente. Esse é o motivo pelo qual nós criamos o - grupo users com esse ID - de grupo em Seção 7.6, - “Criando Arquivos Essenciais e Links - Simbólicos”. -

-
-
- CREATE_MAIL_SPOOL=yes -
-
-

- Esse parâmetro faz com que useradd crie um - arquivo de caixa de correio para a(o) usuária(o) recém - criada(o). useradd tornará a - propriedade de grupo desse arquivo para o grupo - mail com permissões - 0660. Se você preferisse que esses arquivos de caixa de - correio não fossem criados por useradd, então - execute o seguinte comando: -

-
sed -i '/MAIL/s/yes/no/' /etc/default/useradd
-
-
-
-
-
-

- 8.25.3. Configurando a senha de root -

-

- Escolha uma senha para a(o) usuária(o) root e configure ela executando: -

-
passwd root
-
-
-

- 8.25.4. - Conteúdo de Shadow -

-
-
-
- Aplicativos instalados: - chage, chfn, chgpasswd, chpasswd, - chsh, expiry, faillog, getsubids, gpasswd, groupadd, - groupdel, groupmems, groupmod, grpck, grpconv, grpunconv, - lastlog, login, logoutd, newgidmap, newgrp, newuidmap, - newusers, nologin, passwd, pwck, pwconv, pwunconv, sg - (link para newgrp), su, useradd, userdel, usermod, vigr - (link para vipw), e vipw -
-
- Biblioteca instalada: - libsubid.so -
-
- Diretório instalado: - /etc/default -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- chage -

-
-

- Usado para alterar o número de dias máximo entre - mudanças obrigatórias de senha -

-
-

- chfn -

-
-

- Usado para alterar um nome completo da(o) - usuária(o) e outra informação -

-
-

- chgpasswd -

-
-

- Usado para atualizar senhas de grupo em modo de - lote -

-
-

- chpasswd -

-
-

- Usado para atualizar senhas de usuárias(os) em modo - de lote -

-
-

- chsh -

-
-

- Usado para alterar um shell de login padrão da(o) - usuária(o) -

-
-

- expiry -

-
-

- Verifica e reforça a política atual de expiração de - senha -

-
-

- faillog -

-
-

- É Usado para examinar o registro de falhas de - login, configurar um número máximo de falhas antes - que uma conta seja bloqueada, ou zerar a contagem - de falhas -

-
-

- getsubids -

-
-

- É usado para listar os intervalos subordinados de - id para uma(m) usuária(o) -

-
-

- gpasswd -

-
-

- É usado para adicionar e deletar membros e - administradoras(es) para grupos -

-
-

- groupadd -

-
-

- Cria um grupo com o nome dado -

-
-

- groupdel -

-
-

- Deleta o grupo com o nome dado -

-
-

- groupmems -

-
-

- Permite que uma(m) usuária(o) administre sua - própria lista de membros de grupo sem a exigência - de privilégios de superusuária(o) -

-
-

- groupmod -

-
-

- É usado para modificar o nome ou GID do grupo dado -

-
-

- grpck -

-
-

- Verifica a integridade dos arquivos de grupo - /etc/group e - /etc/gshadow -

-
-

- grpconv -

-
-

- Cria ou atualiza o arquivo de grupo de sombra a - partir do arquivo de grupo normal -

-
-

- grpunconv -

-
-

- Atualiza /etc/group a - partir de /etc/gshadow e então deleta o - último -

-
-

- lastlog -

-
-

- Reporta o login mais recente de todas(os) as(os) - usuárias(os) ou de uma(m) usuária(o) dada(o) -

-
-

- login -

-
-

- É usado pelo sistema para permitir usuárias(os) - logar -

-
-

- logoutd -

-
-

- É um daemon usado para reforçar restrições sobre - horário de logon e portas -

-
-

- newgidmap -

-
-

- É usado para configurar o mapeamento gid de um - espaço de nome de usuária(o) -

-
-

- newgrp -

-
-

- É usado para modificar o GID atual durante uma - sessão de login -

-
-

- newuidmap -

-
-

- É usado para configurar o mapeamento uid de um - espaço de nome de usuária(o) -

-
-

- newusers -

-
-

- É usado para criar ou atualizar uma série inteira - de contas de usuárias(os) -

-
-

- nologin -

-
-

- Exibe uma mensagem que uma conta não está - disponível; projetado para ser usado como o shell - padrão para contas que foram desabilitadas -

-
-

- passwd -

-
-

- É usado para modificar a senha para uma conta de - usuária(o) ou grupo -

-
-

- pwck -

-
-

- Verifica a integridade dos arquivos de senha - /etc/passwd e - /etc/shadow -

-
-

- pwconv -

-
-

- Cria ou atualiza o arquivo de senha de sombra a - partir do arquivo de senha normal -

-
-

- pwunconv -

-
-

- Atualiza /etc/passwd - a partir de /etc/shadow e então deleta o - último -

-
-

- sg -

-
-

- Executa um comando dado enquanto o GID da(o) - usuária(o) está configurado para aquele do grupo - dado -

-
-

- su -

-
-

- Executa um shell com IDs de usuária(o) e grupo - substitutos -

-
-

- useradd -

-
-

- Cria uma(m) usuária(o) nova(o) com o nome dado, ou - atualiza a informação padrão de nova(o) usuária(o) -

-
-

- userdel -

-
-

- Deleta a conta de usuária(o) dada -

-
-

- usermod -

-
-

- É usado para modificar o nome de login da(o) - usuária(o) dada(o), Identificação de Usuária(o) - (UID), shell, grupo inicial, diretório home, etc. -

-
-

- vigr -

-
-

- Edita os arquivos /etc/group ou /etc/gshadow -

-
-

- vipw -

-
-

- Edita os arquivos /etc/passwd ou /etc/shadow -

-
-

- libsubid -

-
-

- Biblioteca para processar intervalos subordinados - de id para usuárias(os) -

-
-
-
-
-
-
-
-
-

- 8.26. GCC-11.2.0 -

-
-
-
-
-

- O pacote GCC contém a GNU compiler collection, o qual inclui - os compiladores C e C++. -

-
-
-
- Tempo aproximado de - construção: 153 UPC (com - os testes) -
-
- Espaço em disco - exigido: 4,3 GB -
-
-
-
-
-

- 8.26.1. Instalação de GCC -

-

- Primeiramente, conserte um problema que quebra libasan.a quando da construção desse pacote - com Glibc-2.34 ou posterior: -

-
sed -e '/static.*SIGSTKSZ/d' \
-    -e 's/return kAltStackSize/return SIGSTKSZ * 4/' \
-    -i libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp
-

- Se construir em x86_64, então mude o nome de diretório padrão - para bibliotecas de 64 bits para lib: -

-
case $(uname -m) in
-  x86_64)
-    sed -e '/m64=/s/lib64/lib/' \
-        -i.orig gcc/config/i386/t-linux64
-  ;;
-esac
-

- A documentação de GCC recomenda construir GCC em um diretório - de construção dedicado: -

-
mkdir -v build
-cd       build
-

- Prepare GCC para compilação: -

-
../configure --prefix=/usr            \
-             LD=ld                    \
-             --enable-languages=c,c++ \
-             --disable-multilib       \
-             --disable-bootstrap      \
-             --with-system-zlib
-

- Note que para outras linguagens de programação, existem - alguns pré-requisitos que ainda não estão disponíveis. - Veja-se a - página de GCC do Livro BLFS para instruções sobre como - construir todas as linguagens suportadas do GCC. -

-
-

- O significado dos novos parâmetros de - configure: -

-
-
- LD=ld -
-
-

- Esse parâmetro induz o script configure a usar o ld - instalado pelo binutils construído anteriormente neste - capítulo, em vez da versão construída cruzadamente a - qual de outra maneira seria usada. -

-
-
- --with-system-zlib -
-
-

- Essa chave diz a GCC para vincular à cópia instalada de - sistema da biblioteca zlib, em vez de sua própria cópia - interna. -

-
-
-
-

- Compile o pacote: -

-
make
-
-

- Importante -

-

- Nesta seção, a suíte de teste para GCC é considerada - importante, porém ela toma um tempo longo. Construtoras(es) - de primeira vez são encorajadas(os) a não pular ela. O - tempo para executar os testes pode ser reduzido - significantemente adicionando-se -jx ao comando make - abaixo, onde x é o número de núcleos em seu sistema. -

-
-

- Um conjunto de testes na suíte de teste de GCC é conhecida - por esgotar a pilha padrão, então aumente o tamanho de pilha - antes de executar os testes: -

-
ulimit -s 32768
-

- Teste os resultados como uma(m) usuária(o) não - privilegiada(o), porém não pare aos erros: -

-
chown -Rv tester .
-su tester -c "PATH=$PATH make -k check"
-

- Para receber um sumário dos resultados de suíte de teste, - execute: -

-
../contrib/test_summary
-

- Para apenas os sumários, entube a saída por grep -A7 Summ. -

-

- Resultados podem ser comparados com aqueles localizados em - https://www.linuxfromscratch.org/lfs/build-logs/11.1/ - e https://gcc.gnu.org/ml/gcc-testresults/. -

-

- Oito testes relacionados ao analisador são conhecidos por - falhar. -

-

- Um teste chamado asan_test.C é - conhecido por falhar. -

-

- Em libstdc++, um teste chamado 49745.cc é conhecido por falhar, pois as - dependências de cabeçalho em glibc mudaram. -

-

- Em libstdc++, um teste de numeração de pontuação e seis - testes relacionados a get_time são conhecidos por falhar. - Essas são todas por causa das definições de locale em glibc - que mudaram, porém libstdc++ atualmente não suporta essas - mudanças. -

-

- Umas poucas falhas inesperadas não podem ser evitadas sempre. - As(Os) desenvolvedoras(es) de GCC geralmente estão cientes - desses problemas, mas ainda não os resolveram. A menos que os - resultados de teste sejam amplamente diferentes daqueles na - URL acima, é seguro continuar. -

-

- Instale o pacote e remova um diretório desnecessário: -

-
make install
-rm -rf /usr/lib/gcc/$(gcc -dumpmachine)/11.2.0/include-fixed/bits/
-

- O diretório de construção de GCC é de propriedade de - tester agora e a propriedade - do diretório de cabeçalho instalado (e o conteúdo dele) - estarão incorretos. Mude a propriedade para usuária(o) e - grupo root: -

-
chown -v -R root:root \
-    /usr/lib/gcc/*linux-gnu/11.2.0/include{,-fixed}
-

- Crie um link simbólico exigido por - FHS por razões "históricas". -

-
ln -svr /usr/bin/cpp /usr/lib
-

- Adicione um link simbólico de compatibilidade para habilitar - a construção de aplicativos com Link Time Optimization (LTO): -

-
ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/11.2.0/liblto_plugin.so \
-        /usr/lib/bfd-plugins/
-

- Agora que nosso conjunto de ferramentas final está no lugar, - é importante certificar-se novamente de que compilação e - vinculação funcionarão como esperado. Nós fazemos isso - realizando algumas verificações de sanidade: -

-
echo 'int main(){}' > dummy.c
-cc dummy.c -v -Wl,--verbose &> dummy.log
-readelf -l a.out | grep ': /lib'
-

- Deveriam não existir erros, e a saída do último comando será - (permitindo diferenças específicas de plataforma no nome de - vinculador dinâmico): -

-
[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
-

- Agora tenha certeza de que nós estamos configurados para usar - os arquivos de iniciação corretos: -

-
grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log
-

- A saída do último comando deveria ser: -

-
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/crt1.o succeeded
-/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/crti.o succeeded
-/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/crtn.o succeeded
-

- Dependendo da arquitetura de sua máquina, o acima talvez - difira levemente. A diferença será o nome do diretório depois - de /usr/lib/gcc. A coisa - importante a se olhar aqui é que gcc encontrou todos os três - arquivos crt*.o sob o diretório - /usr/lib. -

-

- Verifique que o compilador está procurando pelos arquivos de - cabeçalho corretos: -

-
grep -B4 '^ /usr/include' dummy.log
-

- Esse comando deveria retornar a seguinte saída: -

-
#include <...> search starts here:
- /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include
- /usr/local/include
- /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include-fixed
- /usr/include
-

- Novamente, o diretório nomeado após seu triplet alvo talvez - seja diferente do que o acima, dependendo da arquitetura de - seu sistema. -

-

- Em seguida, verifique que o novo vinculador está sendo usado - com os caminhos de procura corretos: -

-
grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'
-

- Referências a caminhos que tem componentes com '-linux-gnu' - deveriam ser ignoradas, porém, do contrário, a saída do - último comando deveria ser: -

-
SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib64")
-SEARCH_DIR("/usr/local/lib64")
-SEARCH_DIR("/lib64")
-SEARCH_DIR("/usr/lib64")
-SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib")
-SEARCH_DIR("/usr/local/lib")
-SEARCH_DIR("/lib")
-SEARCH_DIR("/usr/lib");
-

- Um sistema de 32 bits talvez veja uns poucos diretórios - diferentes. Por exemplo, aqui está a saída originária de uma - máquina i686: -

-
SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32")
-SEARCH_DIR("/usr/local/lib32")
-SEARCH_DIR("/lib32")
-SEARCH_DIR("/usr/lib32")
-SEARCH_DIR("/usr/i686-pc-linux-gnu/lib")
-SEARCH_DIR("/usr/local/lib")
-SEARCH_DIR("/lib")
-SEARCH_DIR("/usr/lib");
-

- Em seguida, tenha certeza de que nós estamos usando a libc - correta: -

-
grep "/lib.*/libc.so.6 " dummy.log
-

- A saída do último comando deveria ser: -

-
attempt to open /usr/lib/libc.so.6 succeeded
-

- Tenha certeza de que GCC está usando o vinculador dinâmico - correto: -

-
grep found dummy.log
-

- A saída do último comando deveria ser (permitindo diferenças - específicas de plataforma no nome de vinculador dinâmico): -

-
found ld-linux-x86-64.so.2 at /usr/lib/ld-linux-x86-64.so.2
-

- Se a saída não aparecer como mostrado acima ou não for - recebida de jeito nenhum, então alguma coisa está seriamente - errada. Investigue e retrace os passos para encontrar onde - está o problema e corrija o mesmo. Quaisquer problemas - precisão ser resolvidos antes de continuar com o processo. -

-

- Uma vez que tudo esteja funcionando corretamente, limpe os - arquivos de teste: -

-
rm -v dummy.c a.out dummy.log
-

- Finalmente, mova um arquivo mal colocado: -

-
mkdir -pv /usr/share/gdb/auto-load/usr/lib
-mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib
-
-
-

- 8.26.2. Conteúdo - de GCC -

-
-
-
- Aplicativos instalados: - c++, cc (link para gcc), cpp, g++, - gcc, gcc-ar, gcc-nm, gcc-ranlib, gcov, gcov-dump, - gcov-tool, e lto-dump -
-
- Bibliotecas instaladas: - libasan.{a,so}, libatomic.{a,so}, - libcc1.so, libgcc.a, libgcc_eh.a, libgcc_s.so, libgcov.a, - libgomp.{a,so}, libitm.{a,so}, liblsan.{a,so}, - liblto_plugin.so, libquadmath.{a,so}, libssp.{a,so}, - libssp_nonshared.a, libstdc++.{a,so}, libstdc++fs.a, - libsupc++.a, libtsan.{a,so}, e libubsan.{a,so} -
-
- Diretórios instalados: - /usr/include/c++, /usr/lib/gcc, - /usr/libexec/gcc, e /usr/share/gcc-11.2.0 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- c++ -

-
-

- O compilador C++ -

-
-

- cc -

-
-

- O compilador C -

-
-

- cpp -

-
-

- O preprocessador C; é usado pelo compilador para - expandir as declarações #include, #define e - similares nos arquivos fonte -

-
-

- g++ -

-
-

- O compilador C++ -

-
-

- gcc -

-
-

- O compilador C -

-
-

- gcc-ar -

-
-

- Um encapsulador em torno de ar que adiciona - um plugin à linha de comando. Esse aplicativo é - usado apenas para adicionar "link time - optimization" e não é útil com as opções de - construção padrão -

-
-

- gcc-nm -

-
-

- Um encapsulador em torno de nm que adiciona - um plugin à linha de comando. Esse aplicativo é - usado apenas para adicionar "link time - optimization" e não é útil com as opções de - construção padrão -

-
-

- gcc-ranlib -

-
-

- Um encapsulador em torno de ranlib que - adiciona um plugin à linha de comando. Esse - aplicativo é usado apenas para adicionar "link time - optimization" e não é útil com as opções de - construção padrão -

-
-

- gcov -

-
-

- Uma ferramenta de teste de cobertura; usada para - analisar aplicativos para determinar onde as - otimizações terão mais efeito -

-
-

- gcov-dump -

-
-

- Ferramenta de despejo de perfil offline gcda e gcno -

-
-

- gcov-tool -

-
-

- Ferramenta de processamento de perfil offline gcda -

-
-

- lto-dump -

-
-

- Ferramenta para despejar arquivos objeto produzidos - por GCC com LTO habilitado -

-
-

- libasan -

-
-

- A biblioteca de tempo de execução do Address - Sanitizer -

-
-

- libatomic -

-
-

- Biblioteca de tempo de execução atômica interna do - GCC -

-
-

- libcc1 -

-
-

- A biblioteca de pré-processamento C -

-
-

- libgcc -

-
-

- Contém suporte de tempo de execução para - gcc -

-
-

- libgcov -

-
-

- Essa biblioteca é vinculada a um aplicativo quando - GCC for instruído a habilitar criação de perfil -

-
-

- libgomp -

-
-

- Implementação GNU da API OpenMP para programação - paralela de memória compartilhada multiplataforma - em C/C++ e Fortran -

-
-

- libitm -

-
-

- A biblioteca de memória transacional GNU -

-
-

- liblsan -

-
-

- A biblioteca de tempo de execução do Leak Sanitizer -

-
-

- liblto_plugin -

-
-

- Plugin LTO do GCC permite ao binutils processar - arquivos objeto produzidos por GCC com LTO - habilitado -

-
-

- libquadmath -

-
-

- API da Biblioteca Matemática de Precisão Quádrupla - GCC -

-
-

- libssp -

-
-

- Contém rotinas que suportam a funcionalidade de - proteção contra esmagamento de pilha do GCC -

-
-

- libstdc++ -

-
-

- A biblioteca C++ padrão -

-
-

- libstdc++fs -

-
-

- Biblioteca de Sistema de Arquivos ISO/IEC TS - 18822:2015 -

-
-

- libsupc++ -

-
-

- Fornece rotinas de suporte para a linguagem de - programação C++ -

-
-

- libtsan -

-
-

- A biblioteca de tempo de execução do Thread - Sanitizer -

-
-

- libubsan -

-
-

- A biblioteca de tempo de execução do Undefined - Behavior Sanitizer -

-
-
-
-
-
-
-
-
-

- 8.27. Pkg-config-0.29.2 -

-
-
-
-
-

- O pacote pkg-config contém uma ferramenta para passar o - caminho include e (ou) caminhos de biblioteca para - ferramentas de construção durante as fases configure e make - de instalações de pacote. -

-
-
-
- Tempo aproximado de - construção: 0,3 UPC -
-
- Espaço em disco - exigido: 29 MB -
-
-
-
-
-

- 8.27.1. Instalação de Pkg-config -

-

- Prepare Pkg-config para compilação: -

-
./configure --prefix=/usr              \
-            --with-internal-glib       \
-            --disable-host-tool        \
-            --docdir=/usr/share/doc/pkg-config-0.29.2
-
-

- O significado das novas opções de - configure: -

-
-
- --with-internal-glib -
-
-

- Isso permitirá que pkg-config use a versão interna dele - de Glib, pois uma versão externa não está disponível em - LFS. -

-
-
- --disable-host-tool -
-
-

- Essa opção desabilita a criação de um indesejado hard - link para o aplicativo pkg-config. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.27.2. Conteúdo de Pkg-config -

-
-
-
- Aplicativo instalado: - pkg-config -
-
- Diretório instalado: - /usr/share/doc/pkg-config-0.29.2 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- pkg-config -

-
-

- Retorna meta informação para a biblioteca ou pacote - especificada -

-
-
-
-
-
-
-
-
-

- 8.28. Ncurses-6.3 -

-
-
-
-
-

- O pacote Ncurses contém bibliotecas para manipulação de telas - de caracteres independente de terminal. -

-
-
-
- Tempo aproximado de - construção: 0,4 UPC -
-
- Espaço em disco - exigido: 45 MB -
-
-
-
-
-

- 8.28.1. Instalação de Ncurses -

-

- Prepare Ncurses para compilação: -

-
./configure --prefix=/usr           \
-            --mandir=/usr/share/man \
-            --with-shared           \
-            --without-debug         \
-            --without-normal        \
-            --enable-pc-files       \
-            --enable-widec          \
-            --with-pkg-config-libdir=/usr/lib/pkgconfig
-
-

- O significado das novas opções de - configure: -

-
-
- --enable-widec -
-
-

- Essa chave faz com que bibliotecas de caracteres largos - (por exemplo, libncursesw.so.6.3) sejam construídas - em vez de bibliotecas normais (por exemplo, - libncurses.so.6.3). Essas - bibliotecas de caracteres largos são utilizáveis tanto - em locales de múltiplos bytes quanto em tradicionais de - oito (08) bits, enquanto bibliotecas normais funcionam - adequadamente só em locales de oito (08) bits. - Bibliotecas de caracteres largos e bibliotecas normais - são compatíveis em fonte, mas não são compatíveis em - binário. -

-
-
- --enable-pc-files -
-
-

- Essa chave gera e instala arquivos .pc para pkg-config. -

-
-
- --without-normal -
-
-

- Essa chave desabilita a construção e instalação da - maioria das bibliotecas estáticas. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Esse pacote tem uma suíte de teste, entretanto ela só pode - ser executada após o pacote ter sido instalado. Os testes - residem no diretório test/. - Veja-se o arquivo README - naquele diretório para maiores detalhes. -

-

- A instalação desse pacote sobrescreverá libncursesw.so.6.3 no local. Isso talvez - quebre o processo de shell que está usando código e dados a - partir do arquivo de biblioteca. Instale o pacote com - DESTDIR, e substitua o arquivo - de biblioteca corretamente usando comando install. Um arquivamento - estático inútil que não é manejado por configure também é - removido: -

-
make DESTDIR=$PWD/dest install
-install -vm755 dest/usr/lib/libncursesw.so.6.3 /usr/lib
-rm -v  dest/usr/lib/{libncursesw.so.6.3,libncurses++w.a}
-cp -av dest/* /
-

- Muitos aplicativos ainda esperam que o vinculador seja capaz - de encontrar bibliotecas Ncurses de caracteres não largos. - Ajuste tais aplicativos para vincularem com bibliotecas de - caracteres largos por meio de links simbólicos e scripts de - vinculador: -

-
for lib in ncurses form panel menu ; do
-    rm -vf                    /usr/lib/lib${lib}.so
-    echo "INPUT(-l${lib}w)" > /usr/lib/lib${lib}.so
-    ln -sfv ${lib}w.pc        /usr/lib/pkgconfig/${lib}.pc
-done
-

- Finalmente, certifique-se de que aplicativos antigos que - procuram por -lcurses em tempo - de construção ainda sejam construíveis: -

-
rm -vf                     /usr/lib/libcursesw.so
-echo "INPUT(-lncursesw)" > /usr/lib/libcursesw.so
-ln -sfv libncurses.so      /usr/lib/libcurses.so
-

- Se desejado, então instale a documentação do Ncurses: -

-
mkdir -pv      /usr/share/doc/ncurses-6.3
-cp -v -R doc/* /usr/share/doc/ncurses-6.3
-
-

- Nota -

-

- As instruções acima não criam bibliotecas Ncurses de - caracteres não largos, uma vez que nenhum pacote instalado - por compilação a partir de fontes se vincularia a elas em - tempo de execução. Entretanto, os únicos aplicativos - somente binário conhecidos que se vinculam à bibliotecas - Ncurses de caracteres não largos exigem versão 5. Se você - precisa ter tais bibliotecas, por causa de algum aplicativo - somente binário ou para estar conforme com LSB, então - construa o pacote novamente com os seguintes comandos: -

-
make distclean
-./configure --prefix=/usr    \
-            --with-shared    \
-            --without-normal \
-            --without-debug  \
-            --without-cxx-binding \
-            --with-abi-version=5
-make sources libs
-cp -av lib/lib*.so.5* /usr/lib
-
-
-
-

- 8.28.2. - Conteúdo de Ncurses -

-
-
-
- Aplicativos instalados: - captoinfo (link para tic), clear, - infocmp, infotocap (link para tic), ncursesw6-config, - reset (link para tset), tabs, tic, toe, tput, e - tset -
-
- Bibliotecas instaladas: - libcursesw.so (link simbólico e - script de vinculador para libncursesw.so), libformw.so, - libmenuw.so, libncursesw.so, libpanelw.so, e homônimos - delas de caractere não largo sem "w" nos nomes de - biblioteca. -
-
- Diretórios instalados: - /usr/share/tabset, - /usr/share/terminfo, e /usr/share/doc/ncurses-6.3 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- captoinfo -

-
-

- Converte uma descrição termcap em uma descrição - terminfo -

-
-

- clear -

-
-

- Limpa a tela, se possível -

-
-

- infocmp -

-
-

- Compara ou imprime descrições terminfo -

-
-

- infotocap -

-
-

- Converte uma descrição terminfo em uma descrição - termcap -

-
-

- ncursesw6-config -

-
-

- Fornece informação de configuração para ncurses -

-
-

- reset -

-
-

- Reinicializa um terminal para valores padrão dele -

-
-

- tabs -

-
-

- Limpa e configura paradas de tabulação em um - terminal -

-
-

- tic -

-
-

- O compilador de descrição de entrada terminfo que - traduz um arquivo terminfo do formato fonte para o - formato binário necessário para as rotinas de - biblioteca ncurses [Um arquivo terminfo contém - informação sobre as capacidades de um certo - terminal]. -

-
-

- toe -

-
-

- Lista todos os tipos de terminal disponíveis, dando - o nome primário e descrição para cada -

-
-

- tput -

-
-

- Torna os valores de capacidades dependentes de - terminal disponíveis para o shell; também pode ser - usado para reconfigurar ou inicializar um terminal - ou reportar o nome longo dele -

-
-

- tset -

-
-

- Pode ser usado para inicializar terminais -

-
-

- libcursesw -

-
-

- Um link para libncursesw -

-
-

- libncursesw -

-
-

- Contém funções para exibir texto em muitas formas - complexas em uma tela de terminal; um bom exemplo - do uso dessas funções é o menu exibido durante o - make - menuconfig do kernel -

-
-

- libformw -

-
-

- Contém funções para implementar formulários -

-
-

- libmenuw -

-
-

- Contém funções para implementar menus -

-
-

- libpanelw -

-
-

- Contém funções para implementar painéis -

-
-
-
-
-
-
-
-
-

- 8.29. Sed-4.8 -

-
-
-
-
-

- O pacote Sed contém um editor de fluxo. -

-
-
-
- Tempo aproximado de - construção: 0,4 UPC -
-
- Espaço em disco - exigido: 31 MB -
-
-
-
-
-

- 8.29.1. Instalação de Sed -

-

- Prepare Sed para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote e gere a documentação HTML: -

-
make
-make html
-

- Para testar os resultados, execute: -

-
chown -Rv tester .
-su tester -c "PATH=$PATH make check"
-

- Instale o pacote e documentação dele: -

-
make install
-install -d -m755           /usr/share/doc/sed-4.8
-install -m644 doc/sed.html /usr/share/doc/sed-4.8
-
-
-

- 8.29.2. Conteúdo - do Sed -

-
-
-
- Aplicativo instalado: - sed -
-
- Diretório instalado: - /usr/share/doc/sed-4.8 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- sed -

-
-

- Filtra e transforma arquivos de texto em uma - passagem única -

-
-
-
-
-
-
-
-
-

- 8.30. Psmisc-23.4 -

-
-
-
-
-

- O pacote Psmisc contém aplicativos para mostrar informação - sobre processos em execução. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 5,6 MB -
-
-
-
-
-

- 8.30.1. Instalação do Psmisc -

-

- Prepare Psmisc para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
make install
-
-
-

- 8.30.2. - Conteúdo do Psmisc -

-
-
-
- Aplicativos instalados: - fuser, killall, peekfd, prtstat, - pslog, pstree, e pstree.x11 (link para pstree) -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- fuser -

-
-

- Reporta os IDs de Processos (PIDs) de processos que - usam os arquivos ou sistemas de arquivos dados -

-
-

- killall -

-
-

- Mata processos pelo nome; envia um sinal para todos - os processos executando quaisquer dos comandos - dados -

-
-

- peekfd -

-
-

- Dê uma olhada nos descritores de arquivo de um - processo em execução, dado seu PID -

-
-

- prtstat -

-
-

- Imprime informação sobre um processo -

-
-

- pslog -

-
-

- Reporta o caminho atual de registros de um processo -

-
-

- pstree -

-
-

- Exibe processos em execução como uma árvore -

-
-

- pstree.x11 -

-
-

- O mesmo que pstree, exceto - que ele espera por confirmação antes de sair -

-
-
-
-
-
-
-
-
-

- 8.31. Gettext-0.21 -

-
-
-
-
-

- O pacote Gettext contém utilitários para internacionalização - e localização. Eles permitem que aplicativos sejam compilados - com Suporte ao Idioma Nativo (Native Language Support - NLS), - habilitando-os a emitir mensagens no idioma nativo da(o) - usuária(o). -

-
-
-
- Tempo aproximado de - construção: 2,7 UPC -
-
- Espaço em disco - exigido: 233 MB -
-
-
-
-
-

- 8.31.1. Instalação do Gettext -

-

- Prepare Gettext para compilação: -

-
./configure --prefix=/usr    \
-            --disable-static \
-            --docdir=/usr/share/doc/gettext-0.21
-

- Compile o pacote: -

-
make
-

- Para testar os resultados (isso toma um tempo longo, em torno - de 3 UPCs), execute: -

-
make check
-

- Instale o pacote: -

-
make install
-chmod -v 0755 /usr/lib/preloadable_libintl.so
-
-
-

- 8.31.2. - Conteúdo do Gettext -

-
-
-
- Aplicativos instalados: - autopoint, envsubst, gettext, - gettext.sh, gettextize, msgattrib, msgcat, msgcmp, - msgcomm, msgconv, msgen, msgexec, msgfilter, msgfmt, - msggrep, msginit, msgmerge, msgunfmt, msguniq, ngettext, - recode-sr-latin, e xgettext -
-
- Bibliotecas instaladas: - libasprintf.so, libgettextlib.so, - libgettextpo.so, libgettextsrc.so, libtextstyle.so, e - preloadable_libintl.so -
-
- Diretórios instalados: - /usr/lib/gettext, - /usr/share/doc/gettext-0.21, /usr/share/gettext, e - /usr/share/gettext-0.19.8 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- autopoint -

-
-

- Copia arquivos de infraestrutura padrão do Gettext - para um pacote fonte -

-
-

- envsubst -

-
-

- Substitui variáveis de ambiente em sequências de - caracteres de formato de shell -

-
-

- gettext -

-
-

- Traduz uma mensagem de idioma natural para o idioma - da(o) usuária(o) procurando a tradução em um - catálogo de mensagens -

-
-

- gettext.sh -

-
-

- Primariamente serve como uma biblioteca de função - de shell para gettext -

-
-

- gettextize -

-
-

- Copia todos os arquivos Gettext padrão para o - diretório de nível superior fornecido de um pacote - para começar a internacionalizá-lo -

-
-

- msgattrib -

-
-

- Filtra as mensagens de um catálogo de tradução de - acordo com os atributos delas e manipula os - atributos -

-
-

- msgcat -

-
-

- Concatena e funde os arquivos .po fornecidos -

-
-

- msgcmp -

-
-

- Compara dois arquivos .po para verificar se ambos - contém o mesmo conjunto de sequências de caracteres - de msgid -

-
-

- msgcomm -

-
-

- Encontra as mensagens que são comuns aos arquivos - .po fornecidos -

-
-

- msgconv -

-
-

- Converte um catálogo de tradução para uma - codificação de caracteres diferente -

-
-

- msgen -

-
-

- Cria um catálogo de tradução em inglês -

-
-

- msgexec -

-
-

- Aplica um comando a todas as traduções de um - catálogo de tradução -

-
-

- msgfilter -

-
-

- Aplica um filtro a todas as traduções de um - catálogo de tradução -

-
-

- msgfmt -

-
-

- Gera um catálogo de mensagem binária a partir de um - catálogo de tradução -

-
-

- msggrep -

-
-

- Extrai todas as mensagens de um catálogo de - tradução que correspondem a um determinado padrão - ou pertencem a alguns arquivos fonte fornecidos -

-
-

- msginit -

-
-

- Cria um novo arquivo .po, inicializando a meta - informação com valores oriundos do ambiente da(o) - usuária(o) -

-
-

- msgmerge -

-
-

- Combina duas traduções cruas em um arquivo único -

-
-

- msgunfmt -

-
-

- Descompila um catálogo de mensagem binário em um - texto de tradução cru -

-
-

- msguniq -

-
-

- Unifica traduções duplicadas em um catálogo de - tradução -

-
-

- ngettext -

-
-

- Exibe traduções no idioma nativo de uma mensagem - textual cuja forma gramatical depende de um número -

-
-

- recode-sr-latin -

-
-

- Recodifica texto sérvio do cirílico para alfabeto - latino -

-
-

- xgettext -

-
-

- Extrai as linhas de mensagem traduzíveis dos - arquivos fonte fornecidos para fazer o primeiro - modelo de tradução -

-
-

- libasprintf -

-
-

- define a classe autosprintf, que torna - as rotinas de saída formatada em C utilizáveis em - aplicativos C++, para uso com as sequências de - caracteres <string> e os - fluxos <iostream> -

-
-

- libgettextlib -

-
-

- uma biblioteca privada contendo rotinas comuns - usadas pelos vários aplicativos Gettext; elas não - são destinadas para uso geral -

-
-

- libgettextpo -

-
-

- Usado para escrever aplicativos especializados que - processam arquivos .po; essa biblioteca é usada - quando os aplicativos padrão fornecidos com Gettext - (tais como msgcomm, - msgcmp, - msgattrib, e - msgen) não são - suficientes -

-
-

- libgettextsrc -

-
-

- Uma biblioteca privada contendo rotinas comuns - usadas pelos vários aplicativos Gettext; elas não - são destinadas para uso geral -

-
-

- libtextstyle -

-
-

- Biblioteca de estilo de texto -

-
-

- preloadable_libintl -

-
-

- Uma biblioteca, destinada a ser usada por - LD_PRELOAD que auxilia libintl no registro de mensagens - não traduzidas -

-
-
-
-
-
-
-
-
-

- 8.32. Bison-3.8.2 -

-
-
-
-
-

- O pacote Bison contém um gerador de analisador. -

-
-
-
- Tempo aproximado de - construção: 6,3 UPC -
-
- Espaço em disco - exigido: 53 MB -
-
-
-
-
-

- 8.32.1. Instalação do Bison -

-

- Prepare Bison para compilação: -

-
./configure --prefix=/usr --docdir=/usr/share/doc/bison-3.8.2
-

- Compile o pacote: -

-
make
-

- Para testar os resultados (cerca de 5,5 UPCs), execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.32.2. - Conteúdo do Bison -

-
-
-
- Aplicativos instalados: - bison e yacc -
-
- Biblioteca instalada: - liby.a -
-
- Diretório instalado: - /usr/share/bison -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - -
-

- bison -

-
-

- Gera, a partir de uma série de regras, um - aplicativo para analisar a estrutura de arquivos de - texto; Bison é uma substituição ao Yacc (Yet - Another Compiler Compiler) -

-
-

- yacc -

-
-

- Um encapsulador para bison, destinado - a aplicativos que ainda chamam yacc em vez de - bison; ele chama - bison - com a opção -y -

-
-

- liby -

-
-

- A biblioteca Yacc contendo implementações de - funções compatíveis com Yacc yyerror e main; essa biblioteca normalmente - não é muito útil, mas POSIX a exige -

-
-
-
-
-
-
-
-
-

- 8.33. Grep-3.7 -

-
-
-
-
-

- O pacote Grep contém aplicativos para procura ao longo do - conteúdo de arquivos. -

-
-
-
- Tempo aproximado de - construção: 0,9 UPC -
-
- Espaço em disco - exigido: 36 MB -
-
-
-
-
-

- 8.33.1. Instalação do Grep -

-

- Prepare Grep para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.33.2. - Conteúdo do Grep -

-
-
-
- Aplicativos instalados: - egrep, fgrep, e grep -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - -
-

- egrep -

-
-

- Imprime linhas que correspondem a uma expressão - regular estendida -

-
-

- fgrep -

-
-

- Imprime linhas que correspondem a uma lista de - sequências de caracteres fixas -

-
-

- grep -

-
-

- Imprime linhas que correspondem a expressão regular - básica -

-
-
-
-
-
-
-
-
-

- 8.34. Bash-5.1.16 -

-
-
-
-
-

- O pacote Bash contém o Bourne-Again SHell. -

-
-
-
- Tempo aproximado de - construção: 1,5 UPC -
-
- Espaço em disco - exigido: 50 MB -
-
-
-
-
-

- 8.34.1. Instalação do Bash -

-

- Prepare Bash para compilação: -

-
./configure --prefix=/usr                      \
-            --docdir=/usr/share/doc/bash-5.1.16 \
-            --without-bash-malloc              \
-            --with-installed-readline
-
-

- O significado da nova opção de configure: -

-
-
- --with-installed-readline -
-
-

- Essa opção diz a Bash para usar a biblioteca - readline que já está - instalada no sistema em vez de usar sua própria versão - de readline. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Pule para Instale o pacote se não executar - a suíte de teste. -

-

- Para preparar os testes, garanta que a(o) usuária(o) - tester pode escrever na - árvore de fontes: -

-
chown -Rv tester .
-

- A suíte de teste do pacote é desenhada para ser executada - como uma(m) usuária(o) não root que é proprietária(o) do - terminal conectado à entrada padrão. Para satisfazer a - exigência, crie um novo pseudo terminal usando Expect e execute os testes como a(o) - usuária (o) tester: -

-
su -s /usr/bin/expect tester << EOF
-set timeout -1
-spawn make tests
-expect eof
-lassign [wait] _ _ _ value
-exit $value
-EOF
-

- Instale o pacote: -

-
make install
-

- Execute o aplicativo recém compilado bash (substituindo o que - está sendo executado atualmente): -

-
exec /usr/bin/bash --login
-
-
-

- 8.34.2. - Conteúdo do Bash -

-
-
-
- Aplicativos instalados: - bash, bashbug, e sh (link para - bash) -
-
- Diretórios instalados: - /usr/include/bash, /usr/lib/bash, e - /usr/share/doc/bash-5.1.16 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - -
-

- bash -

-
-

- Um interpretador de comandos vastamente utilizado; - ele realiza muitos tipos de expansões e - substituições sobre uma dada linha de comando antes - de executá-la, portanto fazendo desse interpretador - uma ferramenta poderosa -

-
-

- bashbug -

-
-

- Um script de shell para ajudar a(o) usuária(o) a - compor e enviar relatórios de defeitos formatados - padrão concernentes a bash -

-
-

- sh -

-
-

- Um link simbólico para o aplicativo bash; quando - invocado como sh, bash tenta imitar - o comportamento de inicialização de versões - históricas do sh o mais próximo - possível, enquanto também conformando com o padrão - POSIX -

-
-
-
-
-
-
-
-
-

- 8.35. Libtool-2.4.6 -

-
-
-
-
-

- O pacote Libtool contém o script de suporte à biblioteca - genérica GNU. Ele esconde a complexidade de usar bibliotecas - compartilhadas em uma interface consistente e portável. -

-
-
-
- Tempo aproximado de - construção: 1,5 UPC -
-
- Espaço em disco - exigido: 43 MB -
-
-
-
-
-

- 8.35.1. Instalação do Libtool -

-

- Prepare Libtool para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-
-

- Nota -

-

- O tempo de teste para libtool pode ser reduzido - significativamente em um sistema com múltiplos núcleos. - Para fazer isso, acrescente TESTSUITEFLAGS=-j<N> - ao final da linha acima. Por exemplo, usar -j4 pode reduzir - o tempo de teste em mais que 60 por cento. -

-
-

- Cinco testes são conhecidos por falharem dentro do ambiente - de construção LFS devido a uma dependência circular, porém - todos os testes passam se verificados novamente após automake - ser instalado. -

-

- Instale o pacote: -

-
make install
-

- Remova uma biblioteca estática inútil: -

-
rm -fv /usr/lib/libltdl.a
-
-
-

- 8.35.2. - Conteúdo do Libtool -

-
-
-
- Aplicativos instalados: - libtool e libtoolize -
-
- Biblioteca instalada: - libltdl.so -
-
- Diretórios instalados: - /usr/include/libltdl e - /usr/share/libtool -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - -
-

- libtool -

-
-

- Fornece serviços generalizados de suporte à - construção de bibliotecas -

-
-

- libtoolize -

-
-

- Fornece uma maneira padrão de adicionar suporte - libtool a um - pacote -

-
-

- libltdl -

-
-

- Esconde as várias dificuldades do dlopening de - bibliotecas -

-
-
-
-
-
-
-
-
-

- 8.36. GDBM-1.23 -

-
-
-
-
-

- O pacote GDBM contém o GNU Database Manager. Ele é uma - biblioteca de funções de banco de dados que usa hash - extensível e funciona semelhante ao dbm UNIX padrão. A - biblioteca fornece primitivos para armazenar pares de - chave/dados, pesquisar e recuperar os dados por sua chave e - deletar uma chave junto com seus dados. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 13 MB -
-
-
-
-
-

- 8.36.1. Instalação do GDBM -

-

- Prepare GDBM para compilação: -

-
./configure --prefix=/usr    \
-            --disable-static \
-            --enable-libgdbm-compat
-
-

- O significado da opção de configure: -

-
-
- --enable-libgdbm-compat -
-
-

- Essa chave habilita a construção da biblioteca de - compatibilidade libgdbm. Alguns pacotes fora do LFS - talvez exijam as rotinas DBM mais antigas que ela - fornece. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.36.2. - Conteúdo do GDBM -

-
-
-
- Aplicativos instalados: - gdbm_dump, gdbm_load, e - gdbmtool -
-
- Bibliotecas instaladas: - libgdbm.so e - libgdbm_compat.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- gdbm_dump -

-
-

- Despeja um banco de dados GDBM para um arquivo -

-
-

- gdbm_load -

-
-

- Recria um banco de dados GDBM a partir de um - arquivo de despejo -

-
-

- gdbmtool -

-
-

- Testa e modifica um banco de dados GDBM -

-
-

- libgdbm -

-
-

- Contém funções para manipular um banco de dados com - hash -

-
-

- libgdbm_compat -

-
-

- Biblioteca de compatibilidade contendo funções DBM - mais antigas -

-
-
-
-
-
-
-
-
-

- 8.37. Gperf-3.1 -

-
-
-
-
-

- Gperf gera uma função de hash perfeita a partir de um - conjunto de chaves. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 6,0 MB -
-
-
-
-
-

- 8.37.1. Instalação do Gperf -

-

- Prepare Gperf para compilação: -

-
./configure --prefix=/usr --docdir=/usr/share/doc/gperf-3.1
-

- Compile o pacote: -

-
make
-

- Os testes são conhecidos por falharem se executar múltiplos - testes simultâneos (opção -j maior que 1). Para testar os - resultados, execute: -

-
make -j1 check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.37.2. - Conteúdo do Gperf -

-
-
-
- Aplicativo instalado: - gperf -
-
- Diretório instalado: - /usr/share/doc/gperf-3.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- gperf -

-
-

- Gera um hash perfeito a partir de um conjunto de - chaves -

-
-
-
-
-
-
-
-
-

- 8.38. Expat-2.4.6 -

-
-
-
-
-

- O pacote Expat contém uma biblioteca C orientada a fluxo para - analisar XML. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 12 MB -
-
-
-
-
-

- 8.38.1. Instalação do Expat -

-

- Prepare Expat para compilação: -

-
./configure --prefix=/usr    \
-            --disable-static \
-            --docdir=/usr/share/doc/expat-2.4.6
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-

- Se desejado, instale a documentação: -

-
install -v -m644 doc/*.{html,css} /usr/share/doc/expat-2.4.6
-
-
-

- 8.38.2. - Conteúdo do Expat -

-
-
-
- Aplicativo instalado: - xmlwf -
-
- Biblioteca instalada: - libexpat.so -
-
- Diretório instalado: - /usr/share/doc/expat-2.4.6 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- xmlwf -

-
-

- É um utilitário não validador para verificar se - documentos XML estão bem formados ou não -

-
-

- libexpat -

-
-

- Contém funções de API para analisar XML -

-
-
-
-
-
-
-
-
-

- 8.39. Inetutils-2.2 -

-
-
-
-
-

- O pacote Inetutils contém aplicativos para redes básicas. -

-
-
-
- Tempo aproximado de - construção: 0,3 UPC -
-
- Espaço em disco - exigido: 30 MB -
-
-
-
-
-

- 8.39.1. Instalação do Inetutils -

-

- Prepare Inetutils para compilação: -

-
./configure --prefix=/usr        \
-            --bindir=/usr/bin    \
-            --localstatedir=/var \
-            --disable-logger     \
-            --disable-whois      \
-            --disable-rcp        \
-            --disable-rexec      \
-            --disable-rlogin     \
-            --disable-rsh        \
-            --disable-servers
-
-

- O significado das opções de configure: -

-
-
- --disable-logger -
-
-

- Essa opção impede que o Inetutils instale o aplicativo - logger, o - qual é usado por scripts para passar mensagens para o - System Log Daemon. Não instale isso, pois o Util-linux - instala uma versão mais recente. -

-
-
- --disable-whois -
-
-

- Essa opção desabilita a construção do cliente - whois do - Inetutils, o qual está desatualizado. Instruções para - um cliente whois melhor estão no - livro BLFS. -

-
-
- --disable-r* -
-
-

- Esses parâmetros desabilitam a construção de - aplicativos obsoletos que não deveriam ser usados - devido a problemas de segurança. As funções fornecidas - por esses aplicativos podem ser fornecidas pelo pacote - openssh no livro BLFS. -

-
-
- --disable-servers -
-
-

- Isso desabilita a instalação dos vários servidores de - rede incluídos como parte do pacote Inetutils. Esses - servidores são considerados inadequados em um sistema - LFS básico. Alguns são inseguros por natureza e só são - considerados seguros em redes confiáveis. Observe que - substituições melhores estão disponíveis para muitos - desses servidores. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-

- Mova um aplicativo para o local adequado: -

-
mv -v /usr/{,s}bin/ifconfig
-
-
-

- 8.39.2. Conteúdo do Inetutils -

-
-
-
- Aplicativos instalados: - dnsdomainname, ftp, ifconfig, - hostname, ping, ping6, talk, telnet, tftp, e - traceroute -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- dnsdomainname -

-
-

- Mostra o nome de domínio DNS do sistema -

-
-

- ftp -

-
-

- É o aplicativo de protocolo de transferência de - arquivos -

-
-

- hostname -

-
-

- Relata ou configura o nome do dispositivo -

-
-

- ifconfig -

-
-

- Gerencia interfaces de rede -

-
-

- ping -

-
-

- Envia pacotes de solicitação de echo e informa - quanto tempo as respostas demoram -

-
-

- ping6 -

-
-

- Uma versão do ping para redes - IPv6 -

-
-

- talk -

-
-

- É usado para conversar com outra(o) usuária(o) -

-
-

- telnet -

-
-

- Uma interface para o protocolo TELNET -

-
-

- tftp -

-
-

- Um aplicativo de transferência de arquivos trivial -

-
-

- traceroute -

-
-

- Rastreia a rota que seus pacotes fazem a partir do - dispositivo em que você está trabalhando para outro - dispositivo em uma rede, mostrando todos os saltos - intermediários (gateways) ao longo do caminho -

-
-
-
-
-
-
-
-
-

- 8.40. Less-590 -

-
-
-
-
-

- O pacote Less contém um visualizador de arquivos de texto. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 4,2 MB -
-
-
-
-
-

- 8.40.1. Instalação do Less -

-

- Prepare Less para compilação: -

-
./configure --prefix=/usr --sysconfdir=/etc
-
-

- O significado das opções de configure: -

-
-
- --sysconfdir=/etc -
-
-

- Essa opção diz aos aplicativos criados pelo pacote para - procurarem em /etc pelos - arquivos de configuração. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
make install
-
-
-

- 8.40.2. - Conteúdo do Less -

-
-
-
- Aplicativos instalados: - less, lessecho e lesskey -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - -
-

- less -

-
-

- Um visualizador de arquivos ou paginador; ele exibe - o conteúdo do arquivo dado, permitindo que a(o) - usuária(o) role, encontre sequências de caracteres - e pule para marcas -

-
-

- lessecho -

-
-

- Necessário para expandir metacaracteres, tais como - * e - ?, em nomes - de arquivos em sistemas Unix -

-
-

- lesskey -

-
-

- Usado para especificar os atalhos de tecla para - less -

-
-
-
-
-
-
-
-
-

- 8.41. Perl-5.34.0 -

-
-
-
-
-

- O pacote Perl contém o Practical Extraction and Report - Language. -

-
-
-
- Tempo aproximado de - construção: 9,3 UPC -
-
- Espaço em disco - exigido: 226 MB -
-
-
-
-
-

- 8.41.1. Instalação do Perl -

-

- Primeiro, aplique uma correção que conserta um problema - destacado por versões recentes do gdbm: -

-
patch -Np1 -i ../perl-5.34.0-upstream_fixes-1.patch
-

- Essa versão do Perl agora constrói os módulos - Compress::Raw::Zlib e Compress::Raw::BZip2. Por padrão, Perl - usará uma cópia interna dos fontes para a construção. Execute - o seguinte comando de modo que Perl usará as bibliotecas - instaladas no sistema: -

-
export BUILD_ZLIB=False
-export BUILD_BZIP2=0
-

- Para ter controle completo sobre a maneira como Perl é - configurado, você pode remover as opções -des - do comando seguinte e escolher manualmente a maneira como - esse pacote é construído. Alternativamente, use o comando - exatamente como está abaixo para usar os padrões que o Perl - detecta automaticamente: -

-
sh Configure -des                                         \
-             -Dprefix=/usr                                \
-             -Dvendorprefix=/usr                          \
-             -Dprivlib=/usr/lib/perl5/5.34/core_perl      \
-             -Darchlib=/usr/lib/perl5/5.34/core_perl      \
-             -Dsitelib=/usr/lib/perl5/5.34/site_perl      \
-             -Dsitearch=/usr/lib/perl5/5.34/site_perl     \
-             -Dvendorlib=/usr/lib/perl5/5.34/vendor_perl  \
-             -Dvendorarch=/usr/lib/perl5/5.34/vendor_perl \
-             -Dman1dir=/usr/share/man/man1                \
-             -Dman3dir=/usr/share/man/man3                \
-             -Dpager="/usr/bin/less -isR"                 \
-             -Duseshrplib                                 \
-             -Dusethreads
-
-

- O significado das opções de configure: -

-
-
- -Dvendorprefix=/usr -
-
-

- Isso garante que perl saiba como dizer - aos pacotes onde eles deveriam instalar módulos perl - deles. -

-
-
- -Dpager="/usr/bin/less - -isR" -
-
-

- Isso garante que less seja usado em - vez de more. -

-
-
- -Dman1dir=/usr/share/man/man1 - -Dman3dir=/usr/share/man/man3 -
-
-

- Uma vez que o Groff ainda não está instalado, - Configure - pensa que nós não queremos páginas de manual para o - Perl. Emitir esses parâmetros substitui essa decisão. -

-
-
- -Duseshrplib -
-
-

- Constrói uma libperl compartilhada necessária para - alguns módulos perl. -

-
-
- -Dusethreads -
-
-

- Constrói perl com suporte para camadas. -

-
-
- -Dprivlib,-Darchlib,-Dsitelib,... -
-
-

- Essas configurações definem onde o Perl está procurando - módulos instalados. As(Os) editoras(es) de LFS optaram - por colocá-los em uma estrutura de diretórios baseada - na versão Major.Minor do Perl (5.34), a qual permite - atualizar o Perl para níveis de Patch mais recentes - (5.34.0) sem a necessidade de reinstalar todos os - módulos novamente. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados (aproximadamente 11 UPCs), execute: -

-
make test
-

- Instale o pacote e limpe: -

-
make install
-unset BUILD_ZLIB BUILD_BZIP2
-
-
-

- 8.41.2. - Conteúdo do Perl -

-
-
-
- Aplicativos instalados: - corelist, cpan, enc2xs, encguess, - h2ph, h2xs, instmodsh, json_pp, libnetcfg, perl, - perl5.34.0 (hard link para perl), perlbug, perldoc, - perlivp, perlthanks (hard link para perlbug), piconv, - pl2pm, pod2html, pod2man, pod2text, pod2usage, - podchecker, podselect, prove, ptar, ptardiff, ptargrep, - shasum, splain, xsubpp e zipdetails -
-
- Bibliotecas instaladas: - Muitas, as quais não podem ser - todas listadas aqui -
-
- Diretório instalado: - /usr/lib/perl5 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- corelist -

-
-

- Um frontend de linha de comando para - Module::CoreList -

-
-

- cpan -

-
-

- Interage com o Comprehensive Perl Archive Network - (CPAN) a partir da linha de comando -

-
-

- enc2xs -

-
-

- Constrói uma extensão Perl para o módulo Encode a - partir tanto de Mapeamentos de Caracteres Unicode - quanto de Arquivos de Codificação Tcl -

-
-

- encguess -

-
-

- Advinha o tipo de codificação de um ou vários - arquivos -

-
-

- h2ph -

-
-

- Converte arquivos de cabeçalho C .h para arquivos de cabeçalho - Perl .ph -

-
-

- h2xs -

-
-

- Converte arquivos de cabeçalho C .h para extensões Perl -

-
-

- instmodsh -

-
-

- Script de shell para examinar módulos Perl - instalados, e pode criar um tarball a partir de um - módulo instalado -

-
-

- json_pp -

-
-

- Converte dados entre certos formatos de entrada e - saída -

-
-

- libnetcfg -

-
-

- Pode ser usado para configurar o módulo Perl - libnet -

-
-

- perl -

-
-

- Combina algumas das melhores características do C, - sed, - awk e - sh em - uma linguagem canivete suíço única -

-
-

- perl5.34.0 -

-
-

- Um hard link para perl -

-
-

- perlbug -

-
-

- Usado para gerar relatórios de defeitos sobre o - Perl, ou módulos que vem como ele, e enviá-los por - correio -

-
-

- perldoc -

-
-

- Exibe uma parte da documentação em formato de pod - que está incorporada na árvore de instalação do - Perl ou em um script Perl -

-
-

- perlivp -

-
-

- O Procedimento de Verificação de Instalação do - Perl; pode ser usado para verificar se o Perl e - suas bibliotecas foram instalados corretamente -

-
-

- perlthanks -

-
-

- Usado para gerar mensagens de agradecimento para - enviar para as(os) desenvolvedoras(es) Perl -

-
-

- piconv -

-
-

- Uma versão Perl do conversor de codificação de - caracteres iconv -

-
-

- pl2pm -

-
-

- Uma ferramenta rudimentar para converter arquivos - Perl4 .pl para - módulos Perl5 .pm -

-
-

- pod2html -

-
-

- Converte arquivos do formato pod para o formato - HTML -

-
-

- pod2man -

-
-

- Converte dados pod para entrada formatada *roff -

-
-

- pod2text -

-
-

- Converte dados pod para texto ASCII formatado -

-
-

- pod2usage -

-
-

- Imprime mensagens de uso a partir de documentos pod - incorporados em arquivos -

-
-

- podchecker -

-
-

- Verifica a sintaxe de arquivos de documentação no - formato pod -

-
-

- podselect -

-
-

- Exibe seções selecionadas de documentação pod -

-
-

- prove -

-
-

- Ferramenta de linha de comando para executar testes - contra o módulo Test::Harness -

-
-

- ptar -

-
-

- Um aplicativo similar ao tar escrito em - Perl -

-
-

- ptardiff -

-
-

- Um aplicativo Perl que compara um arquivamento - extraído com um não extraído -

-
-

- ptargrep -

-
-

- Um aplicativo Perl que aplica correspondência de - padrão ao conteúdo de arquivos em um arquivamento - tar -

-
-

- shasum -

-
-

- Imprime ou verifica somas de verificação SHA -

-
-

- splain -

-
-

- É usado para forçar diagnósticos de aviso - detalhados em Perl -

-
-

- xsubpp -

-
-

- Converte código Perl XS em código C -

-
-

- zipdetails -

-
-

- Exibe detalhes sobre a estrutura interna de um - arquivo Zip -

-
-
-
-
-
-
-
-
-

- 8.42. XML::Parser-2.46 -

-
-
-
-
-

- O módulo XML::Parser é uma interface Perl para o analisador - de XML do James Clark, Expat. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 2,4 MB -
-
-
-
-
-

- 8.42.1. Instalação do XML::Parser -

-

- Prepare XML::Parser para compilação: -

-
perl Makefile.PL
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make test
-

- Instale o pacote: -

-
make install
-
-
-

- 8.42.2. Conteúdo do XML::Parser -

-
-
-
- Módulo instalado: - Expat.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- Expat -

-
-

- Fornece a interface Perl Expat -

-
-
-
-
-
-
-
-
-

- 8.43. Intltool-0.51.0 -

-
-
-
-
-

- O Intltool é uma ferramenta de internacionalização usada para - extrair sequências de caracteres traduzíveis a partir de - arquivos fonte. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 1,5 MB -
-
-
-
-
-

- 8.43.1. Instalação do Intltool -

-

- Primeiro, conserte um aviso que é causado por perl-5.22 e - posteriores: -

-
sed -i 's:\\\${:\\\$\\{:' intltool-update.in
-
-

- Nota -

-

- A expressão regular acima parece incomum por causa de todas - as contra barras. O que ela faz é adicionar uma contra - barra antes do carácter abre chave na sequência '\${' - resultando em '\$\{'. -

-
-

- Prepare Intltool para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-install -v -Dm644 doc/I18N-HOWTO /usr/share/doc/intltool-0.51.0/I18N-HOWTO
-
-
-

- 8.43.2. Conteúdo do Intltool -

-
-
-
- Aplicativos instalados: - intltool-extract, intltool-merge, - intltool-prepare, intltool-update e intltoolize -
-
- Diretórios instalados: - /usr/share/doc/intltool-0.51.0 e - /usr/share/intltool -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- intltoolize -

-
-

- Prepara um pacote para usar intltool -

-
-

- intltool-extract -

-
-

- Gera arquivos de cabeçalho que podem ser lidos por - gettext -

-
-

- intltool-merge -

-
-

- Mescla sequência de caracteres traduzidos em vários - tipos de arquivos -

-
-

- intltool-prepare -

-
-

- Atualiza arquivos pot e mescla eles com arquivos de - tradução -

-
-

- intltool-update -

-
-

- Atualiza os arquivos de modelo po e mescla eles com - as traduções -

-
-
-
-
-
-
-
-
-

- 8.44. Autoconf-2.71 -

-
-
-
-
-

- O pacote Autoconf contém aplicativos para produzir scripts de - shell que podem configurar automaticamente código fonte. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC (cerca de 6,8 UPC com os testes) -
-
- Espaço em disco - exigido: 24 MB -
-
-
-
-
-

- 8.44.1. Instalação do Autoconf -

-

- Prepare Autoconf para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-
-

- Nota -

-

- O tempo de teste para autoconf pode ser reduzido - significativamente em um sistema com múltiplos núcleos. - Para fazer isso, acrescente TESTSUITEFLAGS=-j<N> - ao final da linha acima. Por exemplo, usar -j4 pode reduzir - o tempo de teste em mais que 60 por cento. -

-
-

- Instale o pacote: -

-
make install
-
-
-

- 8.44.2. Conteúdo do Autoconf -

-
-
-
- Aplicativos instalados: - autoconf, autoheader, autom4te, - autoreconf, autoscan, autoupdate e ifnames -
-
- Diretório instalado: - /usr/share/autoconf -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- autoconf -

-
-

- Produz scripts de shell que configuram - automaticamente pacotes de código fonte de - aplicativos para adaptar a vários tipos de sistemas - semelhantes a Unix; os scripts de configuração que - ele produz são independentes—executá-los não - exige o aplicativo autoconf -

-
-

- autoheader -

-
-

- Uma ferramenta para criar arquivos de modelo de - declarações #define de C para - configure usar -

-
-

- autom4te -

-
-

- Um encapsulador para o processador de macro M4 -

-
-

- autoreconf -

-
-

- Automaticamente executa autoconf, - autoheader, - aclocal, - automake, - gettextize e - libtoolize na - ordem correta para economizar tempo quando mudanças - são feitas para arquivos de modelo autoconf e - automake -

-
-

- autoscan -

-
-

- Ajuda a criar um arquivo configure.in para um pacote de - aplicativos; ele examina os arquivos fonte em uma - árvore de diretórios, procurando neles por - problemas de portabilidade comuns, e cria um - arquivo configure.scan que serve como um - arquivo configure.in - preliminar para o pacote -

-
-

- autoupdate -

-
-

- Modifica um arquivo configure.in que ainda chama - macros autoconf por seus - nomes antigos para usar os nomes de macro atuais -

-
-

- ifnames -

-
-

- Ajuda ao escrever arquivos configure.in para um pacote de - aplicativos; ele imprime os identificadores que o - pacote usa em condicionais de preprocessador C [Se - um pacote já foi configurado para ter alguma - portabilidade, então esse aplicativo pode ajudar a - determinar o que configure precisa - checar. Ele também pode preencher lacunas em um - arquivo configure.in - gerado por autoscan]. -

-
-
-
-
-
-
-
-
-

- 8.45. Automake-1.16.5 -

-
-
-
-
-

- O pacote Automake contém aplicativos para gerar Makefiles - para uso com Autoconf. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC (cerca de 8,3 UPC com os testes) -
-
- Espaço em disco - exigido: 115 MB -
-
-
-
-
-

- 8.45.1. Instalação do Automake -

-

- Prepare Automake para compilação: -

-
./configure --prefix=/usr --docdir=/usr/share/doc/automake-1.16.5
-

- Compile o pacote: -

-
make
-

- Usar a opção de make -j4 acelera os testes, mesmo em sistemas - com apenas um processador, devido a atrasos internos em - testes individuais. Para testar os resultados, execute: -

-
make -j4 check
-

- O teste t/subobj.sh é conhecido por falhar. -

-

- Instale o pacote: -

-
make install
-
-
-

- 8.45.2. Conteúdo do Automake -

-
-
-
- Aplicativos instalados: - aclocal, aclocal-1.16 (hard link - com aclocal), automake e automake-1.16 (hard link com - automake) -
-
- Diretórios instalados: - /usr/share/aclocal-1.16, - /usr/share/automake-1.16 e - /usr/share/doc/automake-1.16.5 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- aclocal -

-
-

- Gera arquivos aclocal.m4 baseados no conteúdo - dos arquivos configure.in -

-
-

- aclocal-1.16 -

-
-

- Um hard link para aclocal -

-
-

- automake -

-
-

- Uma ferramenta para gerar automaticamente arquivos - Makefile.in a partir - de arquivos Makefile.am [Para criar todos os - arquivos Makefile.in - para um pacote, execute esse aplicativo no - diretório superior. Escaneando o arquivo - configure.in, ele - automaticamente encontra cada arquivo Makefile.am apropriado e gera o - arquivo Makefile.in - correspondente]. -

-
-

- automake-1.16 -

-
-

- Um hard link para automake -

-
-
-
-
-
-
-
-
-

- 8.46. OpenSSL-3.0.1 -

-
-
-
-
-

- O pacote OpenSSL contém ferramentas de gerenciamento e - bibliotecas relacionadas à criptografia. Essas são úteis para - fornecer funções criptográficas para outros pacotes, tais - como OpenSSH, aplicativos de correio eletrônico e navegadores - de rede (para acessar sítios HTTPS). -

-
-
-
- Tempo aproximado de - construção: 5,4 UPC -
-
- Espaço em disco - exigido: 474 MB -
-
-
-
-
-

- 8.46.1. Instalação do OpenSSL -

-

- Prepare OpenSSL para compilação: -

-
./config --prefix=/usr         \
-         --openssldir=/etc/ssl \
-         --libdir=lib          \
-         shared                \
-         zlib-dynamic
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make test
-

- Um teste, 30-test_afalg.t, é conhecido por falhar em algumas - configurações de kernel (dependendo de valores inconsistentes - de configurações CONFIG_CRYPTO_USER_API*). Se ele falhar, - então ele pode seguramente ser ignorado. -

-

- Instale o pacote: -

-
sed -i '/INSTALL_LIBS/s/libcrypto.a libssl.a//' Makefile
-make MANSUFFIX=ssl install
-

- Adicione a versão ao nome de diretório de documentação, para - ser consistente com outros pacotes: -

-
mv -v /usr/share/doc/openssl /usr/share/doc/openssl-3.0.1
-

- Se desejado, instale alguma documentação adicional: -

-
cp -vfr doc/* /usr/share/doc/openssl-3.0.1
-
-

- Nota -

-

- Você deveria atualizar OpenSSL quando uma versão nova que - conserta vulnerabilidades for anunciada. Os lançamentos - ocorrem em séries, com uma letra para cada lançamento após - o lançamento inicial (por exemplo, 1.1.1, 1.1.1a, 1.1.1b, - etc). Por causa de que LFS instala somente as bibliotecas - compartilhadas, não existe necessidade de recompilar - pacotes que se vinculem a libcrypto.so ou libssl.so quando atualizar na mesma série. -

-

- Entretanto, quaisquer aplicativos em execução vinculados - àquelas bibliotecas precisam ser parados e reiniciados. - Leia-se as entradas relacionadas em Seção 8.2.1, - “Problemas de Atualização” para detalhes. -

-
-
-
-

- 8.46.2. - Conteúdo do OpenSSL -

-
-
-
- Aplicativos instalados: - c_rehash e openssl -
-
- Bibliotecas instaladas: - libcrypto.so e libssl.so -
-
- Diretórios instalados: - /etc/ssl, /usr/include/openssl, - /usr/lib/engines e /usr/share/doc/openssl-3.0.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- c_rehash -

-
-

- é um script Perl - que escaneia todos os arquivos em um diretório e - adiciona links simbólicos para os valores de hash - deles -

-
-

- openssl -

-
-

- é uma ferramenta de linha de comando para usar as - várias funções criptográficas da biblioteca de - criptografia do OpenSSL a partir do shell. Ela - pode ser usada para várias funções que estão - documentadas em man 1 - openssl -

-
-

- libcrypto.so -

-
-

- implementa um intervalo amplo de algoritmos - criptográficos usados em vários padrões da - Internet. Os serviços fornecidos por essa - biblioteca são usados pelas implementações - OpenSSL do SSL, - TLS e S/MIME e eles também tem sido usados para - implementar OpenSSH, OpenPGP e outros padrões - criptográficos -

-
-

- libssl.so -

-
-

- implementa o protocolo Transport Layer Security - (TLS v1). Ela fornece uma API rica, documentação - sobre a qual pode ser encontrada executando - man 3 - ssl -

-
-
-
-
-
-
-
-
-

- 8.47. Kmod-29 -

-
-
-
-
-

- O pacote Kmod contém bibliotecas e utilitários para carregar - módulos de kernel -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 12 MB -
-
-
-
-
-

- 8.47.1. Instalação do Kmod -

-

- Prepare Kmod para compilação: -

-
./configure --prefix=/usr          \
-            --sysconfdir=/etc      \
-            --with-openssl         \
-            --with-xz              \
-            --with-zstd            \
-            --with-zlib
-
-

- O significado das opções de configure: -

-
-
- --with-openssl -
-
-

- Essa opção habilita Kmod a lidar com assinaturas PKCS7 - para módulos de kernel. -

-
-
- --with-xz, --with-zlib, e --with-zstd -
-
-

- Essas opções habilitam Kmod a lidar com módulos de - kernel comprimidos. -

-
-
-
-

- Compile o pacote: -

-
make
-

- A suíte de teste desse pacote exige cabeçalhos de kernel crus - (não os cabeçalhos de kernel sanitizados instalados - anteriormente), os quais estão além do escopo do LFS. -

-

- Instale o pacote e crie links simbólicos para compatibilidade - com Module-Init-Tools (o pacote que anteriormente lidava com - módulos de kernel do Linux): -

-
make install
-
-for target in depmod insmod modinfo modprobe rmmod; do
-  ln -sfv ../bin/kmod /usr/sbin/$target
-done
-
-ln -sfv kmod /usr/bin/lsmod
-
-
-

- 8.47.2. - Conteúdo do Kmod -

-
-
-
- Aplicativos instalados: - depmod (link para kmod), insmod - (link para kmod), kmod, lsmod (link para kmod), modinfo - (link para kmod), modprobe (link para kmod) e rmmod (link - para kmod) -
-
- Biblioteca instalada: - libkmod.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- depmod -

-
-

- Cria um arquivo de dependência baseado nos símbolos - que ele encontra no conjunto existente de módulos; - esse arquivo de dependência é usado por - modprobe - para carregar automaticamente os módulos exigidos -

-
-

- insmod -

-
-

- Instala um módulo carregável no kernel em execução -

-
-

- kmod -

-
-

- Carrega e descarrega módulos de kernel -

-
-

- lsmod -

-
-

- Lista módulos atualmente carregados -

-
-

- modinfo -

-
-

- Examina um arquivo objeto associado com um módulo - de kernel e exibe qualquer informação que ele possa - coletar -

-
-

- modprobe -

-
-

- Usa um arquivo de dependência, criado por - depmod, para - carregar automaticamente módulos relevantes -

-
-

- rmmod -

-
-

- Descarrega módulos a partir do kernel em execução -

-
-

- libkmod -

-
-

- Essa biblioteca é usada por outros aplicativos para - carregar e descarregar módulos de kernel -

-
-
-
-
-
-
-
-
-

- 8.48. Libelf oriundo de - Elfutils-0.186 -

-
-
-
-
-

- Libelf é uma biblioteca para lidar com arquivos ELF - (Executable and Linkable Format). -

-
-
-
- Tempo aproximado de - construção: 0,9 UPC -
-
- Espaço em disco - exigido: 116 MB -
-
-
-
-
-

- 8.48.1. Instalação do Libelf -

-

- Libelf é parte do pacote elfutils-0.186. Use o - elfutils-0.186.tar.bz2 como o tarball fonte. -

-

- Prepare Libelf para compilação: -

-
./configure --prefix=/usr                \
-            --disable-debuginfod         \
-            --enable-libdebuginfod=dummy
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale apenas Libelf: -

-
make -C libelf install
-install -vm644 config/libelf.pc /usr/lib/pkgconfig
-rm /usr/lib/libelf.a
-
-
-

- 8.48.2. Conteúdo do Libelf -

-
-
-
- Biblioteca instalada: - libelf.so (link simbólico) e - libelf-0.186.so -
-
- Diretório instalado: - /usr/include/elfutils -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- libelf -

-
-

- Contém funções de API para lidar com arquivos - objeto ELF -

-
-
-
-
-
-
-
-
-

- 8.49. Libffi-3.4.2 -

-
-
-
-
-

- A biblioteca Libffi fornece uma interface de programação - portável e de alto nível para várias convenções de chamada. - Isso permite a uma(m) programadora(r) chamar qualquer função - especificada por uma descrição de interface de chamada em - tempo de execução. -

-
-
-
- Tempo aproximado de - construção: 1,9 UPC -
-
- Espaço em disco - exigido: 10 MB -
-
-
-
-
-

- 8.49.1. Instalação do Libffi -

-
-

- Nota -

-

- Semelhante a GMP, libffi constrói com otimizações - específicas para o processador em uso. Se construir para - outro sistema, então exporte CFLAGS e CXXFLAGS para - especificar uma construção genérica para sua arquitetura. - Se isso não for feito, então todos os aplicativos que se - vincularem a libffi deflagrarão Illegal Operation Errors. -

-
-

- Prepare libffi para compilação: -

-
./configure --prefix=/usr          \
-            --disable-static       \
-            --with-gcc-arch=native \
-            --disable-exec-static-tramp
-
-

- O significado da opção de configure: -

-
-
- --with-gcc-arch=native -
-
-

- Garante que GCC otimiza para o sistema atual. Se isso - não for especificado, então o sistema é presumido e o - código gerado talvez não esteja correto para alguns - sistemas. Se o código gerado será copiado de um sistema - nativo para um sistema menos capaz, então use o sistema - menos capaz como um parâmetro. Para detalhes acerca de - tipos de sistema alternativos, veja-se - as opções de x86 no manual do GCC. -

-
-
- --disable-exec-static-tramp -
-
-

- Desabilita o suporte de trampolim estático. Ele é uma - nova característica de segurança em libffi, porém - alguns pacotes BLFS (notadamente GJS e gobject-introspection) não foram - adaptados para ele. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.49.2. - Conteúdo do Libffi -

-
-
-
- Biblioteca instalada: - libffi.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- libffi -

-
-

- contém as funções da API da interface de função - estrangeira -

-
-
-
-
-
-
-
-
-

- 8.50. Python-3.10.2 -

-
-
-
-
-

- O pacote Python 3 contém o ambiente Python de - desenvolvimento. Ele é útil para programação orientada a - objetos, escrita de scripts, prototipagem de aplicativos - grandes, ou desenvolvimento de aplicações inteiras. -

-
-
-
- Tempo aproximado de - construção: 4,3 UPC -
-
- Espaço em disco - exigido: 275 MB -
-
-
-
-
-

- 8.50.1. Instalação do Python 3 -

-

- Prepare Python para compilação: -

-
./configure --prefix=/usr        \
-            --enable-shared      \
-            --with-system-expat  \
-            --with-system-ffi    \
-            --with-ensurepip=yes \
-            --enable-optimizations
-
-

- O significado das opções de configure: -

-
-
- --with-system-expat -
-
-

- Essa chave habilita vinculação contra a versão de - sistema do Expat. -

-
-
- --with-system-ffi -
-
-

- Essa chave habilita vinculação contra a versão de - sistema de libffi. -

-
-
- --with-ensurepip=yes -
-
-

- Essa chave habilita construir os aplicativos de - empacotamento pip e setuptools. -

-
-
- --enable-optimizations -
-
-

- Essa chave habilita otimizações estáveis, porém - onerosas. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Executar os testes neste ponto não é recomendado. Os testes - são conhecidos por travar indefinidamente dentro de um - ambiente LFS parcial. Se desejado, então os testes podem ser - reexecutados ao final deste capítulo ou quando Python 3 for - reinstalado em BLFS. Para executar os testes de qualquer - maneira, emita make - test. -

-

- Instale o pacote: -

-
make install
-

- Se desejado, então instale a documentação pré-formatada: -

-
install -v -dm755 /usr/share/doc/python-3.10.2/html
-
-tar --strip-components=1  \
-    --no-same-owner       \
-    --no-same-permissions \
-    -C /usr/share/doc/python-3.10.2/html \
-    -xvf ../python-3.10.2-docs-html.tar.bz2
-
-

- O significado dos comandos de instalação de - documentação: -

-
-
- --no-same-owner e --no-same-permissions -
-
-

- Garanta que os arquivos instalados tenham a propriedade - e as permissões corretas. Sem essas opções, usar - tar instalará os - arquivos de pacote com os valores da(o) criadora(r) - upstream. -

-
-
-
-
-
-

- 8.50.2. - Conteúdo do Python 3 -

-
-
-
- Aplicativos instalados: - 2to3, idle3, pip3, pydoc3, python3 - e python3-config -
-
- Bibliotecas instaladas: - libpython3.10.so e - libpython3.so -
-
- Diretórios instalados: - /usr/include/python3.10, - /usr/lib/python3 e /usr/share/doc/python-3.10.2 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- 2to3 -

-
-

- é um aplicativo Python que lê código fonte - Python 2.x e - aplica uma série de consertos para transformá-lo em - código Python 3.x - válido -

-
-

- idle3 -

-
-

- é um script encapsulador que abre um editor GUI - ciente de Python. - Para esse script executar, você precisa ter - instalado Tk antes - do Python, de forma que o módulo Tkinter Python - seja construído -

-
-

- pip3 -

-
-

- O instalador de pacote para Python. Você pode usar - pip para instalar pacotes originários do Python - Package Index e outros índices -

-
-

- pydoc3 -

-
-

- é a ferramenta de documentação Python -

-
-

- python3 -

-
-

- é uma linguagem de programação orientada a objeto, - interativa e interpretada -

-
-
-
-
-
-
-
-
-

- 8.51. Ninja-1.10.2 -

-
-
-
-
-

- Ninja é um sistema de construção pequeno com um foco em - velocidade. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 64 MB -
-
-
-
-
-

- 8.51.1. Instalação do Ninja -

-

- Quando executado, ninja normalmente executa um número máximo - de processos em paralelo. Por padrão, esse é o número de - núcleos no sistema mais dois. Em alguns casos, isso pode - superaquecer uma CPU ou deixar o sistema sem memória. Se - executar a partir da linha de comando, então passar um - parâmetro -jN limitará o número de processos paralelos, porém - alguns pacotes embutem a execução de ninja e não passam um - parâmetro -j. -

-

- Usar o procedimento opcional abaixo permite que uma(m) - usuária(o) limite o número de processos paralelos via uma - variável de ambiente, NINJAJOBS. Por exemplo, configurar: -

-
export NINJAJOBS=4
-

- limitará ninja a quatro processos paralelos. -

-

- Se desejado, então adicione a capacidade de usar a variável - de ambiente NINJAJOBS executando: -

-
sed -i '/int Guess/a \
-  int   j = 0;\
-  char* jobs = getenv( "NINJAJOBS" );\
-  if ( jobs != NULL ) j = atoi( jobs );\
-  if ( j > 0 ) return j;\
-' src/ninja.cc
-

- Construa Ninja com: -

-
python3 configure.py --bootstrap
-
-

- O significado da opção de construção: -

-
-
- --bootstrap -
-
-

- Esse parâmetro força ninja a reconstruir ele próprio - para o sistema atual. -

-
-
-
-

- Para testar os resultados, execute: -

-
./ninja ninja_test
-./ninja_test --gtest_filter=-SubprocessTest.SetWithLots
-

- Instale o pacote: -

-
install -vm755 ninja /usr/bin/
-install -vDm644 misc/bash-completion /usr/share/bash-completion/completions/ninja
-install -vDm644 misc/zsh-completion  /usr/share/zsh/site-functions/_ninja
-
-
-

- 8.51.2. - Conteúdo do Ninja -

-
-
-
- Aplicativo instalado: - ninja -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- ninja -

-
-

- é o sistema de construção Ninja -

-
-
-
-
-
-
-
-
-

- 8.52. Meson-0.61.1 -

-
-
-
-
-

- Meson é um sistema de construção de código fonte aberto - destinado para ser ambos extremamente rápido e tão amigável - à(ao) usuária(o) quanto possível. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 41 MB -
-
-
-
-
-

- 8.52.1. Instalação do Meson -

-

- Compile Meson com o seguinte comando: -

-
python3 setup.py build
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
python3 setup.py install --root=dest
-cp -rv dest/* /
-install -vDm644 data/shell-completions/bash/meson /usr/share/bash-completion/completions/meson
-install -vDm644 data/shell-completions/zsh/_meson /usr/share/zsh/site-functions/_meson
-
-

- O significado dos parâmetros de install: -

-
-
- --root=dest -
-
-

- Por padrão, python3 - setup.py install instala vários - arquivos (tais como páginas de manual) em Python Eggs. - Com um local raiz especificado, setup.py instala - esses arquivos na hierarquia padrão. Então a hierarquia - pode apenas ser copiada para o local padrão. -

-
-
-
-
-
-

- 8.52.2. - Conteúdo do Meson -

-
-
-
- Aplicativo instalado: - meson -
-
- Diretórios instalados: - /usr/lib/python3.10/site-packages/meson-0.61.1-py3.10.egg-info - e /usr/lib/python3.10/site-packages/mesonbuild -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- meson -

-
-

- Um sistema de construção de alta produtividade -

-
-
-
-
-
-
-
-
-

- 8.53. Coreutils-9.0 -

-
-
-
-
-

- O pacote Coreutils contém utilitários para mostrar e - configurar as características básicas de sistema. -

-
-
-
- Tempo aproximado de - construção: 2,6 UPC -
-
- Espaço em disco - exigido: 153 MB -
-
-
-
-
-

- 8.53.1. Instalação do Coreutils -

-

- POSIX exige que aplicativos originários do Coreutils - reconheçam limites de carácter corretamente mesmo em locales - multibyte. A seguinte correção conserta essa não-conformidade - e outros defeitos relacionados à internacionalização. -

-
patch -Np1 -i ../coreutils-9.0-i18n-1.patch
-
-

- Nota -

-

- No passado, muitos defeitos foram encontrados nessa - correção. Quando reportar novos defeitos para as(os) - mantenedoras(es) do Coreutils, por favor verifique primeiro - se eles são reproduzíveis sem essa correção. -

-
-

- Agora, conserte um problema com valores de retorno de chmod: -

-
patch -Np1 -i ../coreutils-9.0-chmod_fix-1.patch
-

- Agora prepare Coreutils para compilação: -

-
autoreconf -fiv
-FORCE_UNSAFE_CONFIGURE=1 ./configure \
-            --prefix=/usr            \
-            --enable-no-install-program=kill,uptime
-
-

- O significado das opções de configure: -

-
-
- autoreconf -
-
-

- A correção para internacionalização modificou o sistema - de construção do pacote, então os arquivos de - configuração tem de ser regenerados. -

-
-
- FORCE_UNSAFE_CONFIGURE=1 -
-
-

- Essa variável de ambiente permite que o pacote seja - construído como a(o) usuária(o) root. -

-
-
- --enable-no-install-program=kill,uptime -
-
-

- O propósito dessa chave é o de impedir que o Coreutils - instale binários que serão instalados por outros - pacotes posteriormente. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Pule para Instale o pacote se não executar - a suíte de teste. -

-

- Agora a suíte de teste está pronta para ser executada. - Primeiro, execute os testes que são destinados a serem - executados como usuária(o) root: -

-
make NON_ROOT_USERNAME=tester check-root
-

- Nós vamos executar o resto dos testes como a(o) usuária(o) - tester. Certos testes exigem - que a(o) usuária(o) seja um membro de mais que um grupo. Para - que esses testes não sejam pulados, adicione um grupo - temporário e torne a(o) usuária(o) tester parte dele: -

-
echo "dummy:x:102:tester" >> /etc/group
-

- Conserte algumas das permissões de modo que a(o) usuária(o) - não-root possa compilar e executar os testes: -

-
chown -Rv tester . 
-

- Agora execute os testes: -

-
su tester -c "PATH=$PATH make RUN_EXPENSIVE_TESTS=yes check"
-

- O teste test-getlogin é conhecido por falhar dentro do - ambiente chroot do LFS. -

-

- Remova o grupo temporário: -

-
sed -i '/dummy/d' /etc/group
-

- Instale o pacote: -

-
make install
-

- Mova aplicativos para os locais especificados pelo FHS: -

-
mv -v /usr/bin/chroot /usr/sbin
-mv -v /usr/share/man/man1/chroot.1 /usr/share/man/man8/chroot.8
-sed -i 's/"1"/"8"/' /usr/share/man/man8/chroot.8
-
-
-

- 8.53.2. Conteúdo do Coreutils -

-
-
-
- Aplicativos instalados: - [, b2sum, base32, base64, basename, - basenc, cat, chcon, chgrp, chmod, chown, chroot, cksum, - comm, cp, csplit, cut, date, dd, df, dir, dircolors, - dirname, du, echo, env, expand, expr, factor, false, fmt, - fold, groups, head, hostid, id, install, join, link, ln, - logname, ls, md5sum, mkdir, mkfifo, mknod, mktemp, mv, - nice, nl, nohup, nproc, numfmt, od, paste, pathchk, - pinky, pr, printenv, printf, ptx, pwd, readlink, - realpath, rm, rmdir, runcon, seq, sha1sum, sha224sum, - sha256sum, sha384sum, sha512sum, shred, shuf, sleep, - sort, split, stat, stdbuf, stty, sum, sync, tac, tail, - tee, test, timeout, touch, tr, true, truncate, tsort, - tty, uname, unexpand, uniq, unlink, users, vdir, wc, who, - whoami e yes -
-
- Biblioteca instalada: - libstdbuf.so (em - /usr/libexec/coreutils) -
-
- Diretório instalado: - /usr/libexec/coreutils -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- [ -

-
-

- É um comando atual, /usr/bin/[, que é um sinônimo - para o comando test -

-
-

- base32 -

-
-

- Codifica e decodifica dados de acordo com a - especificação base32 (RFC 4648) -

-
-

- base64 -

-
-

- Codifica e decodifica dados de acordo com a - especificação base64 (RFC 4648) -

-
-

- b2sum -

-
-

- Imprime ou verifica somas de verificação BLAKE2 - (512 bits) -

-
-

- basename -

-
-

- Remove qualquer caminho e um dado sufixo de um nome - de arquivo -

-
-

- basenc -

-
-

- Codifica ou decodifica dados usando vários - algoritmos -

-
-

- cat -

-
-

- Concatena arquivos para saída padrão -

-
-

- chcon -

-
-

- Muda contexto de segurança para arquivos e - diretórios -

-
-

- chgrp -

-
-

- Muda a propriedade do grupo de arquivos e - diretórios -

-
-

- chmod -

-
-

- Muda as permissões de cada arquivo para o modo - dado; o modo pode ser ou uma representação - simbólica das mudanças a fazer ou um número octal - representando as novas permissões -

-
-

- chown -

-
-

- Muda a propriedade da(o) usuária(o) e (ou) grupo de - arquivos e dos diretórios -

-
-

- chroot -

-
-

- Executa um comando com o diretório especificado - como o diretório / -

-
-

- cksum -

-
-

- Imprime a soma de verificação Cyclic Redundancy - Check (CRC) e as contagens de bytes de cada arquivo - especificado -

-
-

- comm -

-
-

- Compara dois arquivos ordenados, exibindo em três - colunas as linhas que são únicas e as linhas que - são comuns -

-
-

- cp -

-
-

- Copia arquivos -

-
-

- csplit -

-
-

- Divide um dado arquivo em vários novos arquivos, - separando-os de acordo com padrões dados ou números - de linha e exibindo a contagem de bytes de cada - novo arquivo -

-
-

- cut -

-
-

- Imprime seções de linhas, selecionando as partes de - acordo com campos ou posições dados -

-
-

- date -

-
-

- Exibe a hora atual no formato dado, ou configura a - data do sistema -

-
-

- dd -

-
-

- Copia um arquivo usando o tamanho de bloco e - contagem dados, enquanto opcionalmente realiza - conversões sobre ele -

-
-

- df -

-
-

- Reporta a quantidade de espaço de disco disponível - (e usada) em todos os sistemas de arquivos - montados, ou apenas nos sistemas de arquivos - contendo os arquivos selecionados -

-
-

- dir -

-
-

- Lista o conteúdo de cada diretório dado (o mesmo - que o comando ls) -

-
-

- dircolors -

-
-

- Gera comandos para configurar a variável de - ambiente LS_COLOR para - mudar o esquema de cores usado por ls -

-
-

- dirname -

-
-

- Remove o sufixo que não é diretório de um nome de - arquivo -

-
-

- du -

-
-

- Relata a quantidade de espaço de disco usado pelo - diretório atual, por cada diretório dado (incluindo - todos subdiretórios) ou por cada um dos arquivos - dados -

-
-

- echo -

-
-

- Exibe as sequências de caracteres dadas -

-
-

- env -

-
-

- Executa um comando em um ambiente modificado -

-
-

- expand -

-
-

- Converte tabulação para espaços -

-
-

- expr -

-
-

- Avalia expressões -

-
-

- factor -

-
-

- Imprime os fatores primos de todos os números - inteiros especificados -

-
-

- false -

-
-

- Não faz nada, sem sucesso; sempre sai com um código - de status indicando falha -

-
-

- fmt -

-
-

- Reformata os parágrafos nos arquivos dados -

-
-

- fold -

-
-

- Quebra as linhas nos arquivos dados -

-
-

- groups -

-
-

- Relata relacionamentos de membro de grupo de uma(m) - usuária(o) -

-
-

- head -

-
-

- Imprime as primeiras dez linhas (ou o número de - linhas dado) de cada arquivo dado -

-
-

- hostid -

-
-

- Relata o número identificador (em hexadecimal) do - dispositivo -

-
-

- id -

-
-

- Relata o efetivo ID de usuária(o), ID de grupo, e - os relacionamentos de membro de grupo da(o) - usuária(o) atual ou usuária(o) especificada(o) -

-
-

- install -

-
-

- Copia arquivos enquanto configura seus modos de - permissão e, se possível, seus proprietário e grupo -

-
-

- join -

-
-

- Junta as linhas que tem idênticos campos de junção - a partir de dois arquivos separados -

-
-

- link -

-
-

- Cria um hard link com o nome dado para um arquivo -

-
-

- ln -

-
-

- Faz hard links ou soft (simbólico) links entre - arquivos -

-
-

- logname -

-
-

- Relata o nome de login da(o) usuária(o) atual -

-
-

- ls -

-
-

- Lista o conteúdo de cada diretório dado -

-
-

- md5sum -

-
-

- Relata ou verifica somas de verificação Message - Digest 5 (MD5) -

-
-

- mkdir -

-
-

- Cria diretórios com os nomes dados -

-
-

- mkfifo -

-
-

- Cria First-In, First-Outs (FIFOs), um "pipe - nomeado" na linguagem UNIX, com os nomes dados -

-
-

- mknod -

-
-

- Cria nós de dispositivo com os nomes dados; um nó - de dispositivo é um arquivo especial de caractere, - um arquivo especial de bloco ou um FIFO -

-
-

- mktemp -

-
-

- Cria arquivos temporários de uma maneira segura; é - usado em scripts -

-
-

- mv -

-
-

- Move ou renomeia arquivos ou diretórios -

-
-

- nice -

-
-

- Executa um aplicativo com prioridade de agendamento - modificada -

-
-

- nl -

-
-

- Numera as linhas a partir dos arquivos dados -

-
-

- nohup -

-
-

- Executa um comando imune a interrupções, com sua - saída redirecionada para um arquivo de registro -

-
-

- nproc -

-
-

- Imprime o número de unidades de processamento - disponíveis para um processo -

-
-

- numfmt -

-
-

- Converte números para ou de sequências de - caracteres legíveis por humanos -

-
-

- od -

-
-

- Despeja arquivos em octal e outros formatos -

-
-

- paste -

-
-

- Mescla os arquivos dados, unindo linhas - sequencialmente correspondentes lado a lado, - separadas por caracteres de tabulação -

-
-

- pathchk -

-
-

- Verifica se nomes de arquivos são válidos ou - portáveis -

-
-

- pinky -

-
-

- É um cliente de dedo leve; ele relata algumas - informações sobre as(os) usuárias(os) dadas(os) -

-
-

- pr -

-
-

- Pagina e coluna arquivos para impressão -

-
-

- printenv -

-
-

- Imprime o ambiente -

-
-

- printf -

-
-

- Imprime os argumentos dados de acordo com o formato - dado, muito parecido com a função printf do C -

-
-

- ptx -

-
-

- Produz um índice permutado a partir do conteúdo dos - arquivos dados, com cada palavra-chave no contexto - dela -

-
-

- pwd -

-
-

- Relata o nome do diretório de trabalho atual -

-
-

- readlink -

-
-

- Relata o valor do link simbólico dado -

-
-

- realpath -

-
-

- Imprime o caminho resolvido -

-
-

- rm -

-
-

- Remove arquivos ou diretórios -

-
-

- rmdir -

-
-

- Remove diretórios se eles estiverem vazios -

-
-

- runcon -

-
-

- Executa um comando com contexto de segurança - especificado -

-
-

- seq -

-
-

- Imprime uma sequência de números dentro de um dado - intervalo e com um dado incremento -

-
-

- sha1sum -

-
-

- Imprime ou verifica somas de verificação do Secure - Hash Algorithm 1 (SHA1) 160 bits -

-
-

- sha224sum -

-
-

- Imprime ou verifica somas de verificação do Secure - Hash Algorithm de 224 bits -

-
-

- sha256sum -

-
-

- Imprime ou verifica somas de verificação do Secure - Hash Algorithm de 256 bits -

-
-

- sha384sum -

-
-

- Imprime ou verifica somas de verificação do Secure - Hash Algorithm de 384 bits -

-
-

- sha512sum -

-
-

- Imprime ou verifica somas de verificação do Secure - Hash Algorithm de 512 bits -

-
-

- shred -

-
-

- Sobrescreve os arquivos dados repetidamente com - padrões complexos, tornando difícil recuperar os - dados -

-
-

- shuf -

-
-

- Embaralha linhas do texto -

-
-

- sleep -

-
-

- Pausa pelo período de tempo dado -

-
-

- sort -

-
-

- Ordena as linhas a partir dos arquivos dados -

-
-

- split -

-
-

- Divide o arquivo dado em pedaços, por tamanho ou - por número de linhas -

-
-

- stat -

-
-

- Exibe a situação de arquivo ou sistema de arquivos -

-
-

- stdbuf -

-
-

- Executa comandos com operações de buffer alteradas - para fluxos padrão deles -

-
-

- stty -

-
-

- Configura ou relata configurações de linha de - terminal -

-
-

- sum -

-
-

- Imprime soma de verificação e contagens de blocos - para cada arquivo dado -

-
-

- sync -

-
-

- Libera buffers do sistema de arquivos; isso força - blocos modificados para o disco e atualiza o super - bloco -

-
-

- tac -

-
-

- Concatena os arquivos dados em ordem reversa -

-
-

- tail -

-
-

- Imprime as últimas dez linhas (ou o número dado de - linhas) de cada arquivo dado -

-
-

- tee -

-
-

- Lê a partir da entrada padrão enquanto escreve - tanto para saída padrão quanto para os arquivos - dados -

-
-

- test -

-
-

- Compara valores e verifica tipos de arquivos -

-
-

- timeout -

-
-

- Executa um comando com um limite de tempo -

-
-

- touch -

-
-

- Muda marcas temporais de arquivo, definindo os - horários de acesso e modificação dos arquivos dados - para o horário atual; arquivos que não existem são - criados com tamanho zero -

-
-

- tr -

-
-

- Traduz, comprime e deleta os caracteres dados a - partir da entrada padrão -

-
-

- true -

-
-

- Não faz nada, com sucesso; sempre sai com um código - de status indicando sucesso -

-
-

- truncate -

-
-

- Comprime ou expande um arquivo para o tamanho - especificado -

-
-

- tsort -

-
-

- Realiza uma ordenação topológica; ele escreve uma - lista completamente ordenada de acordo com a - ordenação parcial em um arquivo dado -

-
-

- tty -

-
-

- Relata o nome de arquivo do terminal conectado à - entrada padrão -

-
-

- uname -

-
-

- Relata informação de sistema -

-
-

- unexpand -

-
-

- Converte espaços para tabulação -

-
-

- uniq -

-
-

- Descarta todas, exceto uma das sucessivas linhas - idênticas -

-
-

- unlink -

-
-

- Remove o arquivo dado -

-
-

- users -

-
-

- Relata os nomes das(os) usuárias(os) atualmente - logados -

-
-

- vdir -

-
-

- É o mesmo que ls - -l -

-
-

- wc -

-
-

- Relata o número de linhas, palavras e bytes para - cada arquivo dado, assim como uma linha de total - quando mais que um arquivo for dado -

-
-

- who -

-
-

- Relata quem está logado -

-
-

- whoami -

-
-

- Relata o nome de usuária(o) associado com o ID de - usuária(o) efetivo atual -

-
-

- yes -

-
-

- Repetidamente retorna y ou uma sequência de - caracteres dada até que seja terminado -

-
-

- libstdbuf -

-
-

- Biblioteca usada por stdbuf -

-
-
-
-
-
-
-
-
-

- 8.54. Check-0.15.2 -

-
-
-
-
-

- Check é uma estrutura de teste de unidade para C. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC (cerca - de 3,8 UPC com os testes) -
-
- Espaço em disco - exigido: 12 MB -
-
-
-
-
-

- 8.54.1. Instalação do Check -

-

- Prepare Check para compilação: -

-
./configure --prefix=/usr --disable-static
-

- Construa o pacote: -

-
make
-

- Compilação agora está completa. Para executar a suíte de - teste do Check, execute o seguinte comando: -

-
make check
-

- Instale o pacote: -

-
make docdir=/usr/share/doc/check-0.15.2 install
-
-
-

- 8.54.2. - Conteúdo do Check -

-
-
-
- Aplicativo instalado: - checkmk -
-
- Biblioteca instalada: - libcheck.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- checkmk -

-
-

- Script awk para gerar testes de unidade C para uso - com a estrutura de teste de unidade do Check -

-
-

- libcheck.{a,so} -

-
-

- Contém funções que permitem que Check seja chamado - a partir de um aplicativo de teste -

-
-
-
-
-
-
-
-
-

- 8.55. Diffutils-3.8 -

-
-
-
-
-

- O pacote Diffutils contém aplicativos que mostram as - diferenças entre arquivos ou diretórios. -

-
-
-
- Tempo aproximado de - construção: 0,6 UPC -
-
- Espaço em disco - exigido: 34 MB -
-
-
-
-
-

- 8.55.1. Instalação do Diffutils -

-

- Prepare Diffutils para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.55.2. Conteúdo do Diffutils -

-
-
-
- Aplicativos instalados: - cmp, diff, diff3 e sdiff -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- cmp -

-
-

- Compara dois arquivos e relata se ou em quais bytes - eles diferem -

-
-

- diff -

-
-

- Compara dois arquivos ou diretórios e relata quais - linhas nos arquivos diferem -

-
-

- diff3 -

-
-

- Compara três arquivos linha por linha -

-
-

- sdiff -

-
-

- Mescla dois arquivos e interativamente exibe os - resultados -

-
-
-
-
-
-
-
-
-

- 8.56. Gawk-5.1.1 -

-
-
-
-
-

- O pacote Gawk contém aplicativos para manipular arquivos de - texto. -

-
-
-
- Tempo aproximado de - construção: 0,4 UPC -
-
- Espaço em disco - exigido: 43 MB -
-
-
-
-
-

- 8.56.1. Instalação do Gawk -

-

- Primeiro, garanta que alguns arquivos desnecessários não - sejam instalados: -

-
sed -i 's/extras//' Makefile.in
-

- Prepare Gawk para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-

- Se desejado, então instale a documentação: -

-
mkdir -pv                                   /usr/share/doc/gawk-5.1.1
-cp    -v doc/{awkforai.txt,*.{eps,pdf,jpg}} /usr/share/doc/gawk-5.1.1
-
-
-

- 8.56.2. - Conteúdo do Gawk -

-
-
-
- Aplicativos instalados: - awk (link para gawk), gawk e - awk-5.1.1 -
-
- Bibliotecas instaladas: - filefuncs.so, fnmatch.so, fork.so, - inplace.so, intdiv.so, ordchr.so, readdir.so, - readfile.so, revoutput.so, revtwoway.so, rwarray.so e - time.so (todas em /usr/lib/gawk) -
-
- Diretórios instalados: - /usr/lib/gawk, /usr/libexec/awk, - /usr/share/awk e /usr/share/doc/gawk-5.1.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - -
-

- awk -

-
-

- Um link para gawk -

-
-

- gawk -

-
-

- Um aplicativo para manipular arquivos de texto; é a - implementação GNU do awk -

-
-

- gawk-5.1.1 -

-
-

- Um hard link para gawk -

-
-
-
-
-
-
-
-
-

- 8.57. Findutils-4.9.0 -

-
-
-
-
-

- O pacote Findutils contém aplicativos para procurar arquivos. - Esses aplicativos são fornecidos para procurar recursivamente - dentro de uma árvore de diretório e para criar, manter e - buscar um banco de dados (geralmente mais rápido que o find - recursivo, porém não é confiável se o banco de dados não for - atualizado recentemente). -

-
-
-
- Tempo aproximado de - construção: 0,9 UPC -
-
- Espaço em disco - exigido: 51 MB -
-
-
-
-
-

- 8.57.1. Instalação do Findutils -

-

- Prepare Findutils para compilação: -

-
case $(uname -m) in
-    i?86)   TIME_T_32_BIT_OK=yes ./configure --prefix=/usr --localstatedir=/var/lib/locate ;;
-    x86_64) ./configure --prefix=/usr --localstatedir=/var/lib/locate ;;
-esac
-
-

- O significado das opções de configure: -

-
-
- TIME_32_BIT_OK=yes -
-
-

- Essa configuração é necessária para construir em um - sistema de 32 bits. -

-
-
- --localstatedir -
-
-

- Essa opção muda o local da base de dados locate para estar em - /var/lib/locate, o qual é - conforme com FHS. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
chown -Rv tester .
-su tester -c "PATH=$PATH make check"
-

- Instale o pacote: -

-
make install
-
-
-

- 8.57.2. Conteúdo do Findutils -

-
-
-
- Aplicativos instalados: - find, locate, updatedb e - xargs -
-
- Diretório instalado: - /var/lib/locate -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- find -

-
-

- Pesquisa em árvores de diretórios dadas por - arquivos correspondendo a critérios especificados -

-
-

- locate -

-
-

- Pesquisa em um banco de dados de nomes de arquivo e - relata os nomes que contém uma sequência de - caracteres dada ou correspondem a um padrão dado -

-
-

- updatedb -

-
-

- Atualiza o banco de dados locate; ele - escaneia o sistema de arquivos inteiro (incluindo - outros sistemas de arquivos que estejam montados - atualmente, a menos que dito o contrário) e coloca - cada nome de arquivo que ele encontrar no banco de - dados -

-
-

- xargs -

-
-

- Pode ser usado para aplicar um comando dado a uma - lista de arquivos -

-
-
-
-
-
-
-
-
-

- 8.58. Groff-1.22.4 -

-
-
-
-
-

- O pacote Groff contém aplicativos para processar e formatar - texto. -

-
-
-
- Tempo aproximado de - construção: 0,5 UPC -
-
- Espaço em disco - exigido: 88 MB -
-
-
-
-
-

- 8.58.1. Instalação do Groff -

-

- Groff espera que a variável de ambiente PAGE contenha o tamanho de papel padrão. Para - usuárias(os) nos Estados Unidos da América do Norte, - PAGE=letter é - apropriado. Em outros lugares, PAGE=A4 talvez seja mais - adequado. Embora o tamanho do papel padrão seja configurado - durante a compilação, ele pode ser substituído posteriormente - ecoando ou A4 ou letter para o arquivo - /etc/papersize. -

-

- Prepare Groff para compilação: -

-
PAGE=<paper_size> ./configure --prefix=/usr
-

- Esse pacote não suporta construção paralela. Compile o - pacote: -

-
make -j1
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
make install
-
-
-

- 8.58.2. - Conteúdo do Groff -

-
-
-
- Aplicativos instalados: - addftinfo, afmtodit, chem, eqn, - eqn2graph, gdiffmk, glilypond, gperl, gpinyin, - grap2graph, grn, grodvi, groff, groffer, grog, grolbp, - grolj4, gropdf, grops, grotty, hpftodit, indxbib, lkbib, - lookbib, mmroff, neqn, nroff, pdfmom, pdfroff, pfbtops, - pic, pic2graph, post-grohtml, preconv, pre-grohtml, - refer, roff2dvi, roff2html, roff2pdf, roff2ps, roff2text, - roff2x, soelim, tbl, tfmtodit e troff -
-
- Diretórios instalados: - /usr/lib/groff, - /usr/share/doc/groff-1.22.4 e /usr/share/groff -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- addftinfo -

-
-

- Lê um arquivo de fonte troff e adiciona algumas - informações de métrica de fonte adicionais que são - usadas pelo sistema groff -

-
-

- afmtodit -

-
-

- Cria um arquivo de fonte para uso com groff e - grops -

-
-

- chem -

-
-

- Preprocessador Groff para produzir diagramas de - estrutura química -

-
-

- eqn -

-
-

- Compila descrições de equações embutidas em - arquivos de entrada troff em comandos que são - entendidos por troff -

-
-

- eqn2graph -

-
-

- Converte uma EQN (equação) troff em uma imagem - recortada -

-
-

- gdiffmk -

-
-

- Marca diferenças entre arquivos groff/nroff/troff -

-
-

- glilypond -

-
-

- Transforma partituras escritas na linguagem - lilypond na linguagem groff -

-
-

- gperl -

-
-

- Preprocessador para groff, permitindo adição do - código perl em arquivos groff -

-
-

- gpinyin -

-
-

- Preprocessador para groff, permitindo adição do - idioma semelhante a Chinês Europeu Pinyin em - arquivos groff -

-
-

- grap2graph -

-
-

- Converte um diagrama grap em uma imagem de bitmap - recortada -

-
-

- grn -

-
-

- Um preprocessador groff para - arquivos gremlin -

-
-

- grodvi -

-
-

- Um controlador para groff que produz - formato dvi do TeX -

-
-

- groff -

-
-

- Um frontal para o sistema de formatação de - documentos groff; normalmente, ele executa o - aplicativo troff e um - pós-processador apropriado para o dispositivo - selecionado -

-
-

- groffer -

-
-

- Exibe arquivos groff e páginas de manual em - terminais X e tty -

-
-

- grog -

-
-

- Lê arquivos e advinha quais das opções groff - -e, -man, -me, -mm, -ms, -p, -s - e -t são exigidas para - imprimir arquivos, e relata o comando groff incluindo - aquelas opções -

-
-

- grolbp -

-
-

- É um controlador groff para - impressoras Canon CAPSL (impressoras a laser séries - LBP-4 e LBP-8) -

-
-

- grolj4 -

-
-

- É um controlador para groff que produz - saída no formato PCL5 adequado para uma impressora - HP LaserJet 4 -

-
-

- gropdf -

-
-

- Traduz a saída do GNU troff para PDF -

-
-

- grops -

-
-

- Traduz a saída do GNU troff para - PostScript -

-
-

- grotty -

-
-

- Traduz a saída do GNU troff em uma - forma adequada para dispositivos semelhantes a - máquina de escrever -

-
-

- hpftodit -

-
-

- Cria um arquivo de fonte para uso com groff -Tlj4 a - partir de um arquivo de métrica de fonte rotulada - HP -

-
-

- indxbib -

-
-

- Cria um índice invertido para os bancos de dados - bibliográficos com um arquivo especificado para uso - com refer, - lookbib e - lkbib -

-
-

- lkbib -

-
-

- Pesquisa em bancos de dados bibliográficos por - referências que contenham chaves especificadas e - relata quaisquer referências encontradas -

-
-

- lookbib -

-
-

- Imprime um prompt na saída de erro padrão (a não - ser que a entrada padrão não seja um terminal); lê - uma linha contendo um conjunto de palavras chave a - partir da entrada padrão; pesquisa em bancos de - dados bibliográficos, em um arquivo especificado, - por referências contendo aquelas palavras chave; - imprime quaisquer referências encontradas na saída - padrão; e repete esse processo até o final da - entrada -

-
-

- mmroff -

-
-

- Um preprocessador simples para groff -

-
-

- neqn -

-
-

- Formata equações para saída American Standard Code - for Information Interchange (ASCII) -

-
-

- nroff -

-
-

- Um script que emula o comando nroff usando - groff -

-
-

- pdfmom -

-
-

- É um encapsulador em torno de groff que facilita a - produção de documentos PDF a partir de arquivos - formatados com as macros mom -

-
-

- pdfroff -

-
-

- Cria documentos pdf usando groff -

-
-

- pfbtops -

-
-

- Traduz uma fonte PostScript em formato .pfb para ASCII -

-
-

- pic -

-
-

- Compila descrições de imagens embutidas em arquivos - de entrada troff ou TeX em comandos entendidos por - TeX ou troff -

-
-

- pic2graph -

-
-

- Converte um diagrama PIC em uma imagem recortada -

-
-

- post-grohtml -

-
-

- Traduz a saída do GNU troff para HTML -

-
-

- preconv -

-
-

- Converte codificação de arquivos de entrada em - alguma coisa que o GNU troff entende -

-
-

- pre-grohtml -

-
-

- Traduz a saída do GNU troff para HTML -

-
-

- refer -

-
-

- Copia o conteúdo de um arquivo para a saída padrão, - exceto aquelas linhas entre .[ e .] que são interpretadas - como citações, e linhas entre .R1 e .R2 que são - interpretadas como comandos para como citações são - para serem processadas -

-
-

- roff2dvi -

-
-

- Transforma arquivos roff para o formato DVI -

-
-

- roff2html -

-
-

- Transforma arquivos roff para o formato HTML -

-
-

- roff2pdf -

-
-

- Transforma arquivos roff em PDFs -

-
-

- roff2ps -

-
-

- Transforma arquivos roff em arquivos ps -

-
-

- roff2text -

-
-

- Transforma arquivos roff em arquivos de texto -

-
-

- roff2x -

-
-

- Transforma arquivos roff em outros formatos -

-
-

- soelim -

-
-

- Lê arquivos e substitui linhas da forma - .so arquivo - pelo conteúdo do arquivo mencionado -

-
-

- tbl -

-
-

- Compila descrições de tabelas embutidas em arquivos - de entrada troff em comandos que são entendidos por - troff -

-
-

- tfmtodit -

-
-

- Cria um arquivo fonte para uso com groff -Tdvi -

-
-

- troff -

-
-

- É altamente compatível com o troff do Unix; - ele usualmente deveria ser invocado usando o - comando groff, o qual - também executará preprocessadores e - pós-processadores na ordem apropriada e com as - opções apropriadas -

-
-
-
-
-
-
-
-
-

- 8.59. GRUB-2.06 -

-
-
-
-
-

- O pacote GRUB contém o GRand Unified Bootloader. -

-
-
-
- Tempo aproximado de - construção: 0,7 UPC -
-
- Espaço em disco - exigido: 158 MB -
-
-
-
-
-

- 8.59.1. Instalação do GRUB -

-
-

- Nota -

-

- Se seu sistema tem suporte UEFI e você deseja inicializar - LFS com UEFI, então você pode pular esse pacote em LFS, e - instalar GRUB com suporte UEFI (e as dependências dele) - seguindo - a página BLFS ao final deste capítulo. -

-
-

- Prepare GRUB para compilação: -

-
./configure --prefix=/usr          \
-            --sysconfdir=/etc      \
-            --disable-efiemu       \
-            --disable-werror
-
-

- O significado das novas opções de - configure: -

-
-
- --disable-werror -
-
-

- Isso permite que a construção complete com avisos - introduzidos por mais recentes versões do Flex. -

-
-
- --disable-efiemu -
-
-

- Essa opção minimiza o que é construído desabilitando - uma característica e aplicativos de teste não - necessários para o LFS. -

-
-
-
-

- Compile o pacote: -

-
make
-

- A suíte de teste para esse pacote não é recomendada. A - maioria dos testes depende de pacotes que não estão - disponíveis no limitado ambiente do LFS. Para executar os - testes mesmo assim, execute make check. -

-

- Instale o pacote: -

-
make install
-mv -v /etc/bash_completion.d/grub /usr/share/bash-completion/completions
-

- Usar GRUB para tornar seu sistema LFS inicializável será - discutido em - Seção 10.4, “Usando o GRUB para Configurar o - Processo de Inicialização”. -

-
-
-

- 8.59.2. - Conteúdo do GRUB -

-
-
-
- Aplicativos instalados: - grub-bios-setup, grub-editenv, - grub-file, grub-fstest, grub-glue-efi, grub-install, - grub-kbdcomp, grub-macbless, grub-menulst2cfg, - grub-mkconfig, grub-mkimage, grub-mklayout, - grub-mknetdir, grub-mkpasswd-pbkdf2, grub-mkrelpath, - grub-mkrescue, grub-mkstandalone, grub-ofpathname, - grub-probe, grub-reboot, grub-render-label, - grub-script-check, grub-set-default, grub-sparc64-setup e - grub-syslinux2cfg -
-
- Diretórios instalados: - /usr/lib/grub, /etc/grub.d, - /usr/share/grub e /boot/grub (quando grub-install for - primeiro executado) -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- grub-bios-setup -

-
-

- É um aplicativo auxiliar para grub-install -

-
-

- grub-editenv -

-
-

- Uma ferramenta para editar o bloco ambiente -

-
-

- grub-file -

-
-

- Verifica se FILE é do tipo especificado -

-
-

- grub-fstest -

-
-

- Ferramenta para depurar o controlador de sistema de - arquivos -

-
-

- grub-glue-efi -

-
-

- Processa imagens EFI ia32 e amd64 e cola elas de - acordo com formato Apple -

-
-

- grub-install -

-
-

- Instala o GRUB no seu controlador -

-
-

- grub-kbdcomp -

-
-

- Script que converte um esquema xkb em um - reconhecido por GRUB -

-
-

- grub-macbless -

-
-

- Bênção estilo Mac sobre arquivos HFS ou HFS+ -

-
-

- grub-menulst2cfg -

-
-

- Converte um menu.lst - do GRUB Legacy em um grub.cfg para uso com GRUB 2 -

-
-

- grub-mkconfig -

-
-

- Gera um arquivo de configuração grub -

-
-

- grub-mkimage -

-
-

- Faz uma imagem inicializável do GRUB -

-
-

- grub-mklayout -

-
-

- Gera um arquivo de esquema de teclado do GRUB -

-
-

- grub-mknetdir -

-
-

- Prepara um diretório de inicialização de rede GRUB -

-
-

- grub-mkpasswd-pbkdf2 -

-
-

- Gera uma senha PBKDF2 encriptada para uso no menu - de inicialização -

-
-

- grub-mkrelpath -

-
-

- Faz um caminho de sistema relativo à raiz dele -

-
-

- grub-mkrescue -

-
-

- Faz uma imagem inicializável do GRUB adequada para - um disquete ou CDROM/DVD -

-
-

- grub-mkstandalone -

-
-

- Gera uma imagem independente -

-
-

- grub-ofpathname -

-
-

- É um programa auxiliar que imprime o caminho de um - dispositivo GRUB -

-
-

- grub-probe -

-
-

- Sonda informação de dispositivo para um caminho ou - dispositivo dado -

-
-

- grub-reboot -

-
-

- Configura a entrada de inicialização padrão para o - GRUB para a próxima inicialização apenas -

-
-

- grub-render-label -

-
-

- Renderiza .disk_label da Apple para Macs da Apple -

-
-

- grub-script-check -

-
-

- Verifica script de configuração do GRUB para erros - de sintaxe -

-
-

- grub-set-default -

-
-

- Configura a entrada de inicialização padrão para o - GRUB -

-
-

- grub-sparc64-setup -

-
-

- É um programa auxiliar para grub-setup -

-
-

- grub-syslinux2cfg -

-
-

- Transforma um arquivo de configuração syslinux no - formato grub.cfg -

-
-
-
-
-
-
-
-
-

- 8.60. Gzip-1.11 -

-
-
-
-
-

- O pacote Gzip contém aplicativos para compressão e - descompressão de arquivos. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 20 MB -
-
-
-
-
-

- 8.60.1. Instalação do Gzip -

-

- Prepare Gzip para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.60.2. - Conteúdo do Gzip -

-
-
-
- Aplicativos instalados: - gunzip, gzexe, gzip, uncompress - (hard link com gunzip), zcat, zcmp, zdiff, zegrep, - zfgrep, zforce, zgrep, zless, zmore e znew -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- gunzip -

-
-

- Descomprime arquivos gzipados -

-
-

- gzexe -

-
-

- Cria arquivos executáveis auto-descomprimíveis -

-
-

- gzip -

-
-

- Comprime os arquivos dados usando codificação - Lempel-Ziv (LZ77) -

-
-

- uncompress -

-
-

- Descomprime arquivos comprimidos -

-
-

- zcat -

-
-

- Descomprime os arquivos gzipados dados para a saída - padrão -

-
-

- zcmp -

-
-

- Executa cmp em arquivos - gzipados -

-
-

- zdiff -

-
-

- Executa diff em arquivos - gzipados -

-
-

- zegrep -

-
-

- Executa egrep em arquivos - gzipados -

-
-

- zfgrep -

-
-

- Executa fgrep em arquivos - gzipados -

-
-

- zforce -

-
-

- Força uma extensão .gz em todos os arquivos dados - que são arquivos gzipados, de modo que o - gzip - não comprimirá eles novamente; isso pode ser útil - quando nomes de arquivo foram truncados durante uma - transferência de arquivo -

-
-

- zgrep -

-
-

- Executa grep em arquivos - gzipados -

-
-

- zless -

-
-

- Executa less em arquivos - gzipados -

-
-

- zmore -

-
-

- Executa more em arquivos - gzipados -

-
-

- znew -

-
-

- Recomprime arquivos oriundos do formato - compress - para formato gzip.Z - para .gz -

-
-
-
-
-
-
-
-
-

- 8.61. IPRoute2-5.16.0 -

-
-
-
-
-

- O pacote IPRoute2 contém aplicativos para redes baseadas em - IPV4 básicas e avançadas. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 15 MB -
-
-
-
-
-

- 8.61.1. Instalação do IPRoute2 -

-

- O aplicativo arpd incluído nesse pacote - não será construído dado que ele é dependente do Berkeley DB, - o qual não é instalado em LFS. Entretanto, um diretório para - arpd e uma - página de manual ainda serão instalados. Impeça isso - executando os comandos abaixo. Se o binário arpd for necessário, então - instruções para compilar o Berkeley DB podem ser encontradas - no Livro BLFS em - https://www.linuxfromscratch.org/blfs/view/stable-systemd/server/db.html. -

-
sed -i /ARPD/d Makefile
-rm -fv man/man8/arpd.8
-

- Compile o pacote: -

-
make
-

- Esse pacote não tem uma suíte de teste funcional. -

-

- Instale o pacote: -

-
make SBINDIR=/usr/sbin install
-

- Se desejado, então instale a documentação: -

-
mkdir -pv             /usr/share/doc/iproute2-5.16.0
-cp -v COPYING README* /usr/share/doc/iproute2-5.16.0
-
-
-

- 8.61.2. Conteúdo do IPRoute2 -

-
-
-
- Aplicativos instalados: - bridge, ctstat (link para lnstat), - genl, ifcfg, ifstat, ip, lnstat, nstat, routef, routel, - rtacct, rtmon, rtpr, rtstat (link para lnstat), ss e - tc -
-
- Diretórios instalados: - /etc/iproute2, /usr/lib/tc e - /usr/share/doc/iproute2-5.16.0 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- bridge -

-
-

- Configura pontes de redes -

-
-

- ctstat -

-
-

- Utilitário de situação de conexão -

-
-

- genl -

-
-

- Frontal utilitário de link de rede genérico -

-
-

- ifcfg -

-
-

- Um encapsulador de script de shell para o comando - ip - [Note que ele exige os aplicativos arping e - rdisk - originários do pacote iputils encontrado em - http://www.skbuff.net/iputils/] -

-
-

- ifstat -

-
-

- Mostra as estatísticas de interface, incluindo a - quantidade de pacotes transmitidos e recebidos pela - interface -

-
-

- ip -

-
-

- O executável principal. Ele tem várias funções: -

-

- ip link <dispositivo> - permite usuárias(os) olharem para o estado de - dispositivos e fazerem mudanças -

-

- ip - addr permite usuárias(os) olharem - para endereços e propriedades deles, adicionarem - novos endereços e deletarem antigos -

-

- ip - neighbor permite usuárias(os) - olharem para vínculos de vizinho e propriedades - deles, adicionarem novas entradas de vizinho e - deletarem as antigas -

-

- ip - rule permite usuárias(os) olharem - para políticas de roteamento e mudar elas -

-

- ip - route permite usuárias(os) olharem - para a tabela de roteamento e mudar regras de - tabela de roteamento -

-

- ip - tunnel permite usuárias(os) olharem - para os tuneis IP e propriedades deles, e mudar - elas -

-

- ip - maddr permite usuárias(os) olharem - para os endereços multicast e propriedades deles, e - mudar elas -

-

- ip - mroute permite usuárias(os) - configurarem, mudarem ou deletarem o roteamento - multicast -

-

- ip - monitor permite usuárias(os) - continuamente monitorarem o estado de dispositivos, - endereços e rotas -

-
-

- lnstat -

-
-

- Fornece estatísticas de rede do Linux; ele é uma - substituição difundida e mais completa de - características para o antigo aplicativo - rtstat -

-
-

- nstat -

-
-

- Mostra estatísticas de rede -

-
-

- routef -

-
-

- Um componente do ip - route. Isso é para esvaziar as - tabelas de roteamento -

-
-

- routel -

-
-

- Um componente do ip - route. Isso é para listar as - tabelas de roteamento -

-
-

- rtacct -

-
-

- Exibe o conteúdo de /proc/net/rt_acct -

-
-

- rtmon -

-
-

- Utilitário de monitoramento de rota -

-
-

- rtpr -

-
-

- Converte a saída de ip -o de volta em - um formato legível -

-
-

- rtstat -

-
-

- Utilitário de situação de rota -

-
-

- ss -

-
-

- Similar ao comando netstat; exibe - conexões ativas -

-
-

- tc -

-
-

- Executável de Controle de Tráfego; isso é para - implementações de Quality Of Service (QOS) e Class - Of Service (COS) -

-

- tc - qdisc permite usuárias(os) - configurarem a disciplina de enfileiramento -

-

- tc - class permite usuárias(os) - configurarem classes baseadas no agendamento de - disciplina de enfileiramento -

-

- tc - estimator permite usuárias(os) - estimarem o fluxo de rede dentro de uma rede -

-

- tc - filter permite usuárias(os) - configurarem a filtragem de pacote QOS/COS -

-

- tc - policy permite usuárias(os) - configurarem as políticas de QOS/COS -

-
-
-
-
-
-
-
-
-

- 8.62. Kbd-2.4.0 -

-
-
-
-
-

- O pacote Kbd contém arquivos de tabelas de teclas, fontes de - console e utilitários de teclado. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 33 MB -
-
-
-
-
-

- 8.62.1. Instalação do Kbd -

-

- O comportamento das teclas backspace e delete não é - consistente ao longo dos mapas de teclas no pacote Kbd. A - seguinte correção conserta esse problema para mapas de tecla - i386: -

-
patch -Np1 -i ../kbd-2.4.0-backspace-1.patch
-

- Após corrigir, a tecla backspace gera o carácter com código - 127 e a tecla delete gera uma sequência bem conhecida de - escape. -

-

- Remova o aplicativo redundante resizecons (ele exige que a - defunta svgalib forneça os arquivos de modo de vídeo - para - uso normal setfont dimensiona o - console adequadamente) juntamente com a página de manual - dele. -

-
sed -i '/RESIZECONS_PROGS=/s/yes/no/' configure
-sed -i 's/resizecons.8 //' docs/man/man8/Makefile.in
-

- Prepare Kbd para compilação: -

-
./configure --prefix=/usr --disable-vlock
-
-

- O significado da opção de configure: -

-
-
- --disable-vlock -
-
-

- Essa opção evita que o utilitário vlock seja - construído, pois ele exige a biblioteca PAM, que não - está disponível no ambiente chroot. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-

- Nota -

-

- Para alguns idiomas (por exemplo, Bielorrusso) o pacote Kbd - não fornece um mapa de tecla útil onde o regular mapa de - tecla by supõe a codificação - ISO-8859-5, e o mapa de tecla CP1251 normalmente é usado. - Usuárias(os) de tais idiomas tem que baixar mapas de tecla - funcionais separadamente. -

-
-

- Se desejado, então instale a documentação: -

-
mkdir -pv           /usr/share/doc/kbd-2.4.0
-cp -R -v docs/doc/* /usr/share/doc/kbd-2.4.0
-
-
-

- 8.62.2. Conteúdo - do Kbd -

-
-
-
- Aplicativos instalados: - chvt, deallocvt, dumpkeys, - fgconsole, getkeycodes, kbdinfo, kbd_mode, kbdrate, - loadkeys, loadunimap, mapscrn, openvt, psfaddtable (link - para psfxtable), psfgettable (link para psfxtable), - psfstriptable (link para psfxtable), psfxtable, setfont, - setkeycodes, setleds, setmetamode, setvtrgb, - showconsolefont, showkey, unicode_start e - unicode_stop -
-
- Diretórios instalados: - /usr/share/consolefonts, - /usr/share/consoletrans, /usr/share/keymaps, - /usr/share/doc/kbd-2.4.0 e /usr/share/unimaps -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- chvt -

-
-

- Muda o terminal virtual de primeiro plano -

-
-

- deallocvt -

-
-

- Desaloca terminais virtuais não usados -

-
-

- dumpkeys -

-
-

- Despeja as tabelas de tradução de teclado -

-
-

- fgconsole -

-
-

- Imprime o número do terminal virtual ativo -

-
-

- getkeycodes -

-
-

- Imprime a tabela de mapeamento de código de - escaneamento para código de tecla do kernel -

-
-

- kbdinfo -

-
-

- Obtém informação sobre a situação de um console -

-
-

- kbd_mode -

-
-

- Relata ou configura o modo de teclado -

-
-

- kbdrate -

-
-

- Configura as taxas de repetição e atraso de teclado -

-
-

- loadkeys -

-
-

- Carrega as tabelas de tradução de teclado -

-
-

- loadunimap -

-
-

- Carrega a tabela de mapeamento unicode para fonte - do kernel -

-
-

- mapscrn -

-
-

- Um aplicativo obsoleto que costumava carregar uma - tabela de mapeamento de caractere de saída definida - pela(o) usuária(o) para dentro do controlador de - console; isso é feito agora por setfont -

-
-

- openvt -

-
-

- Inicia um aplicativo em um novo terminal virtual - (VT) -

-
-

- psfaddtable -

-
-

- Adiciona uma tabela de carácter Unicode para uma - fonte de console -

-
-

- psfgettable -

-
-

- Extrai a tabela de carácter Unicode embutida a - partir de uma fonte de console -

-
-

- psfstriptable -

-
-

- Remove a tabela de carácter Unicode embutida a - partir de uma fonte de console -

-
-

- psfxtable -

-
-

- Lida com tabelas de carácter Unicode para fontes de - console -

-
-

- setfont -

-
-

- Muda as fontes Enhanced Graphic Adapter (EGA) e - Video Graphics Array (VGA) no console -

-
-

- setkeycodes -

-
-

- Carrega entradas de tabela de mapeamento de código - de escaneamento para código de tecla do kernel; - isso é útil se existirem teclas incomuns no teclado -

-
-

- setleds -

-
-

- Configura os sinalizadores de teclado e Light - Emitting Diodes (LEDs) -

-
-

- setmetamode -

-
-

- Define o manuseio de meta tecla de teclado -

-
-

- setvtrgb -

-
-

- Configura o mapa de cor de console em todos os - terminais virtuais -

-
-

- showconsolefont -

-
-

- Exibe a fonte de tela de console EGA/VGA atual -

-
-

- showkey -

-
-

- Relata os códigos de escaneamento, códigos de tecla - e códigos ASCII das teclas pressionadas no teclado -

-
-

- unicode_start -

-
-

- Põe o teclado e console em modo UNICODE [Não use - esse aplicativo a menos que seu arquivo de mapa de - tecla esteja na codificação ISO-8859-1. Para outras - codificações, esse utilitário produz resultados - incorretos.] -

-
-

- unicode_stop -

-
-

- Reverte teclado e console do modo UNICODE -

-
-
-
-
-
-
-
-
-

- 8.63. Libpipeline-1.5.5 -

-
-
-
-
-

- O pacote Libpipeline contém uma biblioteca para manipular - pipelines de subprocessos em uma maneira flexível e - conveniente. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 9,7 MB -
-
-
-
-
-

- 8.63.1. Instalação do Libpipeline -

-

- Prepare Libpipeline para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.63.2. Conteúdo do Libpipeline -

-
-
-
- Biblioteca instalada: - libpipeline.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- libpipeline -

-
-

- Essa biblioteca é usada para seguramente construir - pipelines entre subprocessos -

-
-
-
-
-
-
-
-
-

- 8.64. Make-4.3 -

-
-
-
-
-

- O pacote Make contém um aplicativo para controlar a geração - de executáveis e outros arquivos não fonte de um pacote a - partir de arquivos fonte. -

-
-
-
- Tempo aproximado de - construção: 0,5 UPC -
-
- Espaço em disco - exigido: 13 MB -
-
-
-
-
-

- 8.64.1. Instalação do Make -

-

- Prepare Make para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.64.2. - Conteúdo do Make -

-
-
-
- Aplicativo instalado: - make -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- make -

-
-

- Automaticamente determina quais partes de um pacote - precisam ser (re)compiladas e então emite os - comandos relevantes -

-
-
-
-
-
-
-
-
-

- 8.65. Patch-2.7.6 -

-
-
-
-
-

- O pacote Patch contém um aplicativo para modificar ou criar - arquivos por aplicação de um arquivo patch - tipicamente criado pelo aplicativo diff. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 12 MB -
-
-
-
-
-

- 8.65.1. Instalação do Patch -

-

- Prepare Patch para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.65.2. - Conteúdo do Patch -

-
-
-
- Aplicativo instalado: - patch -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- patch -

-
-

- Modifica arquivos de acordo com um arquivo de - correção (Um arquivo de correção normalmente é uma - listagem de diferenças criada com o aplicativo - diff. - Aplicando essas diferenças aos arquivos originais, - patch - cria as versões corrigidas.) -

-
-
-
-
-
-
-
-
-

- 8.66. Tar-1.34 -

-
-
-
-
-

- O pacote Tar fornece a habilidade para criar arquivamentos - tar bem como realizar vários outros tipos de manipulação de - arquivamento. Tar pode ser usado em arquivamentos previamente - criados para extrair arquivos, para armazenar arquivos - adicionais, ou para atualizar ou listar arquivos que já foram - armazenados. -

-
-
-
- Tempo aproximado de - construção: 1,7 UPC -
-
- Espaço em disco - exigido: 40 MB -
-
-
-
-
-

- 8.66.1. Instalação do Tar -

-

- Prepare Tar para compilação: -

-
FORCE_UNSAFE_CONFIGURE=1  \
-./configure --prefix=/usr
-
-

- O significado da opção de configure: -

-
-
- FORCE_UNSAFE_CONFIGURE=1 -
-
-

- Isso força o teste para mknod ser executado como root. Geralmente é considerado - perigoso executar esse teste como a(o) usuária(o) - root, porém como ele - está sendo executado em um sistema que foi apenas - parcialmente construído, substituir ele está OK. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Um teste, capabilities: binary store/restore, é conhecido por - falhar se ele for executado (LFS carece de selinux), porém - será pulado se o kernel do anfitrião não suportar atributos - estendidos no sistema de arquivos usado para construir LFS. -

-

- Instale o pacote: -

-
make install
-make -C doc install-html docdir=/usr/share/doc/tar-1.34
-
-
-

- 8.66.2. Conteúdo - do Tar -

-
-
-
- Aplicativo instalado: - tar -
-
- Diretório instalado: - /usr/share/doc/tar-1.34 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- tar -

-
-

- Cria, extrai arquivos originários de, e lista o - conteúdo de arquivamentos, também conhecidos como - tarballs -

-
-
-
-
-
-
-
-
-

- 8.67. Texinfo-6.8 -

-
-
-
-
-

- O pacote Texinfo contém aplicativos para leitura, escrita e - conversão de páginas info. -

-
-
-
- Tempo aproximado de - construção: 0,6 UPC -
-
- Espaço em disco - exigido: 112 MB -
-
-
-
-
-

- 8.67.1. Instalação do Texinfo -

-

- Prepare Texinfo para compilação: -

-
./configure --prefix=/usr
-

- Novamente, conserte um problema ao construir o pacote com - Glibc-2.34 ou posterior: -

-
sed -e 's/__attribute_nonnull__/__nonnull/' \
-    -i gnulib/lib/malloc/dynarray-skeleton.c
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-

- Opcionalmente, instale os componentes pertencentes a uma - instalação de TeX: -

-
make TEXMF=/usr/share/texmf install-tex
-
-

- O significado do parâmetro de make: -

-
-
- TEXMF=/usr/share/texmf -
-
-

- A variável de arquivo make TEXMF mantém o local da raiz da árvore - do TeX se, por exemplo, um pacote do TeX seja instalado - posteriormente. -

-
-
-
-

- O sistema de documentação Info usa um arquivo de texto - simples para manter a lista de entradas de menu dele. O - arquivo está localizado em /usr/share/info/dir. Infelizmente, devido a - problemas ocasionais nos arquivos Make de vários pacotes, ele - pode as vezes sair de sincronia com as páginas info - instaladas no sistema. Se o arquivo /usr/share/info/dir alguma vez precisar ser - recriado, então os seguintes comandos opcionais realizarão a - tarefa: -

-
pushd /usr/share/info
-  rm -v dir
-  for f in *
-    do install-info $f dir 2>/dev/null
-  done
-popd
-
-
-

- 8.67.2. - Conteúdo do Texinfo -

-
-
-
- Aplicativos instalados: - info, install-info, makeinfo (link - para texi2any), pdftexi2dvi, pod2texi, texi2any, - texi2dvi, texi2pdf e texindex -
-
- Bibliotecas instaladas: - MiscXS.so, Parsetexi.so e - XSParagraph.so (todas em /usr/lib/texinfo) -
-
- Diretórios instalados: - /usr/share/texinfo e - /usr/lib/texinfo -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- info -

-
-

- Usado para ler páginas info as quais são similares - a páginas de manual, porém frequentemente vão muito - mais fundo que somente explanar todas as opções de - linha de comando disponíveis [Por exemplo, compare - man - bison e info bison] -

-
-

- install-info -

-
-

- Usado para instalar páginas info; ele atualiza - entradas no arquivo de índice info -

-
-

- makeinfo -

-
-

- Traduz os documentos fonte do Texinfo dados para - páginas info, texto simples ou HTML -

-
-

- pdftexi2dvi -

-
-

- Usado para formatar o documento do Texinfo dado em - um arquivo Portable Document Format (PDF) -

-
-

- pod2texi -

-
-

- Converte Pod para formato Texinfo -

-
-

- texi2any -

-
-

- Traduz documentação fonte do Texinfo para vários - outros formatos -

-
-

- texi2dvi -

-
-

- Usado para formatar o documento do Texinfo dado em - um arquivo independente de dispositivo que pode ser - impresso -

-
-

- texi2pdf -

-
-

- Usado para formatar o documento do Texinfo dado em - um arquivo Portable Document Format (PDF) -

-
-

- texindex -

-
-

- Usado para ordenar arquivos de índice do Texinfo -

-
-
-
-
-
-
-
-
-

- 8.68. Vim-8.2.4383 -

-
-
-
-
-

- O pacote Vim contém um editor de texto poderoso. -

-
-
-
- Tempo aproximado de - construção: 2,4 UPC -
-
- Espaço em disco - exigido: 206 MB -
-
-
-
-

- Alternativas ao Vim -

-

- Se você preferir outro editor—como Emacs, Joe ou - Nano—por favor consulte - https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/editors.html - para instruções de instalação sugeridas. -

-
-
-
-

- 8.68.1. Instalação do Vim -

-

- Primeiro, mude o local padrão do arquivo de configuração - vimrc para /etc: -

-
echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h
-

- Prepare vim para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para preparar os testes, garanta que usuária(o) tester pode escrever na árvore de fonte: -

-
chown -Rv tester .
-

- Agora execute os testes como usuária(o) tester: -

-
su tester -c "LANG=en_US.UTF-8 make -j1 test" &> vim-test.log
-

- A suíte de teste emite muitos dados binários para a tela. - Isso pode causar problemas com as configurações do terminal - atual. O problema pode ser evitado redirecionando a saída - para um arquivo de registro conforme mostrado acima. Um teste - bem sucedido resultará nas palavras "ALL DONE" no arquivo de - registro ao completar. -

-

- Instale o pacote: -

-
make install
-

- Muitas(os) usuárias(os) estão acostumadas(os) a usar - vi em vez de - vim. Para - permitir a execução do vim quando usuárias(os) - habitualmente digitarem vi, crie um link simbólico - para ambos o binário e a página de manual nos idiomas - fornecidos: -

-
ln -sv vim /usr/bin/vi
-for L in  /usr/share/man/{,*/}man1/vim.1; do
-    ln -sv vim.1 $(dirname $L)/vi.1
-done
-

- Por padrão, a documentação do vim é instalada em /usr/share/vim. O seguinte link simbólico - permite que a documentação seja acessada via /usr/share/doc/vim-8.2.4383, tornando ela - consistente com o local da documentação para outros pacotes: -

-
ln -sv ../vim/vim82/doc /usr/share/doc/vim-8.2.4383
-

- Se um X Window System vier a ser instalado no sistema LFS, - então talvez seja necessário recompilar vim após instalar X. - O Vim vem com uma versão GUI do editor que exige o X e - algumas bibliotecas adicionais para ser instalada. Para mais - informações sobre esse processo, consulte a documentação de - vim e a página de instalação de vim no livro BLFS em - - https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/vim.html. -

-
-
-

- 8.68.2. Configurando Vim -

-

- Por padrão, vim - executa em modo incompatível com vi. Isso talvez seja novo - para usuárias(os) que usaram outros editores no passado. A - configuração nocompatible está incluída - abaixo para destacar o fato de que um novo comportamento está - sendo usado. Ela também lembra àquelas(es) que mudariam para - o modo compatible que esse deveria ser - a primeira configuração no arquivo de configuração. Isso é - necessário, pois ela muda outras configurações, e - substituições precisam vir após essa configuração. Crie um - arquivo de configuração vim padrão executando o - seguinte: -

-
cat > /etc/vimrc << "EOF"
-" Begin /etc/vimrc
-
-" Ensure defaults are set before customizing settings, not after
-source $VIMRUNTIME/defaults.vim
-let skip_defaults_vim=1
-
-set nocompatible
-set backspace=2
-set mouse=
-syntax on
-if (&term == "xterm") || (&term == "putty")
-  set background=dark
-endif
-
-" End /etc/vimrc
-EOF
-

- A configuração set - nocompatible faz com que vim se comporte de uma - maneira mais útil (o padrão) que a maneira compatível com vi. - Remova o no para manter o comportamento - vi antigo. A - configuração set - backspace=2 permite retroceder sobre quebras de - linha, auto recuos e o início de uma inserção. O parâmetro - syntax on habilita o - destaque de sintaxe do vim. A configuração set mouse= habilita adequada - colagem de texto com o mouse quando trabalhar em chroot ou - por meio de uma conexão remota. Finalmente, a declaração - if com a configuração - set background=dark - corrige a suposição do vim sobre a cor de segundo - plano de alguns emuladores de terminal. Isso dá ao destaque - um esquema de cores melhor para uso no segundo plano preto - desses aplicativos. -

-

- Documentação para outras opções disponíveis pode ser obtida - executando o seguinte comando: -

-
vim -c ':options'
-
-

- Nota -

-

- Por padrão, vim instala apenas arquivos de soletrar para o - idioma inglês. Para instalar arquivos de soletrar para seu - idioma preferido, baixe os arquivos *.spl e, opcionalmente, o *.sug para seu idioma e codificação de - caracter a partir de ftp://ftp.vim.org/pub/vim/runtime/spell/ - e salve-os em /usr/share/vim/vim82/spell/. -

-

- Para usar esses arquivos de soletrar, alguma configuração - em /etc/vimrc é necessária, - por exemplo: -

-
set spelllang=en,ru
-set spell
-

- Para mais informação, veja o arquivo README apropriado - localizado na URL acima. -

-
-
-
-

- 8.68.3. Conteúdo - do Vim -

-
-
-
- Aplicativos instalados: - ex (link para vim), rview (link - para vim), rvim (link para vim), vi (link para vim), view - (link para vim), vim, vimdiff (link para vim), vimtutor e - xxd -
-
- Diretório instalado: - /usr/share/vim -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- ex -

-
-

- Inicia vim em modo ex -

-
-

- rview -

-
-

- É uma versão restrita do view; nenhum - comando de shell pode ser iniciado e view não pode ser - suspenso -

-
-

- rvim -

-
-

- É uma versão restrita do vim; nenhum - comando de shell pode ser iniciado e vim não pode ser - suspenso -

-
-

- vi -

-
-

- Link para vim -

-
-

- view -

-
-

- Inicia vim em modo - somente leitura -

-
-

- vim -

-
-

- É o editor -

-
-

- vimdiff -

-
-

- Edita duas ou três versões de um arquivo com - vim e - exibe diferenças -

-
-

- vimtutor -

-
-

- Ensina as teclas básicas e comandos do vim -

-
-

- xxd -

-
-

- Cria um despejo hexadecimal do arquivo dado; ele - também pode fazer o reverso, de forma que ele pode - ser usado para correção de binário -

-
-
-
-
-
-
-
-
-

- 8.69. MarkupSafe-2.0.1 -

-
-
-
-
-

- MarkupSafe é um módulo do Python que implementa sequência de - caracteres segura XML/HTML/XHTML Markup. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 520 KB -
-
-
-
-
-

- 8.69.1. Instalação do MarkupSafe -

-

- Compile MarkupSafe com o seguinte comando: -

-
python3 setup.py build
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
python3 setup.py install --optimize=1
-
-
-

- 8.69.2. Conteúdo do MarkupSafe -

-
-
-
- Diretório instalado: - /usr/lib/python3.10/site-packages/MarkupSafe-2.0.1-py3.10.egg -
-
-
-
-
-
-
-
-
-

- 8.70. Jinja2-3.0.3 -

-
-
-
-
-

- Jinja2 é um módulo do Python que implementa uma linguagem de - modelo pitônico simples. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 3,7 MB -
-
-
-
-
-

- 8.70.1. Instalação do Jinja2 -

-

- Instale o pacote: -

-
python3 setup.py install --optimize=1
-
-
-

- 8.70.2. - Conteúdo do Jinja2 -

-
-
-
- Diretório instalado: - /usr/lib/python3.10/site-packages/Jinja2-3.0.3-py3.10.egg -
-
-
-
-
-
-
-
-
-

- 8.71. Systemd-250 -

-
-
-
-
-

- O pacote systemd contém aplicativos para controlar a - inicialização, execução e desligamento do sistema. -

-
-
-
- Tempo aproximado de - construção: 2,2 UPC -
-
- Espaço em disco - exigido: 273 MB -
-
-
-
-
-

- 8.71.1. Instalação do systemd -

-

- Primeiro, aplique uma correção para consertar uma - vulnerabilidade de segurança e regressões com nomes de - dispositivo e unidades ociosas: -

-
patch -Np1 -i ../systemd-250-upstream_fixes-1.patch
-

- Remova dois grupos desnecessários, render e sgx, das regras udev padrão: -

-
sed -i -e 's/GROUP="render"/GROUP="video"/' \
-       -e 's/GROUP="sgx", //' rules.d/50-udev-default.rules.in
-

- Prepare systemd para compilação: -

-
mkdir -p build
-cd       build
-
-meson --prefix=/usr                 \
-      --sysconfdir=/etc             \
-      --localstatedir=/var          \
-      --buildtype=release           \
-      -Dblkid=true                  \
-      -Ddefault-dnssec=no           \
-      -Dfirstboot=false             \
-      -Dinstall-tests=false         \
-      -Dldconfig=false              \
-      -Dsysusers=false              \
-      -Db_lto=false                 \
-      -Drpmmacrosdir=no             \
-      -Dhomed=false                 \
-      -Duserdb=false                \
-      -Dman=false                   \
-      -Dmode=release                \
-      -Ddocdir=/usr/share/doc/systemd-250 \
-      ..
-
-

- O significado das opções de meson: -

-
-
- --buildtype=release -
-
-

- Essa chave substitui o tipo de construção padrão - (debug), o qual produziria - binários não otimizados. -

-
-
- -Ddefault-dnssec=no -
-
-

- Essa chave desliga o suporte DNSSEC experimental. -

-
-
- -Dfirstboot=false -
-
-

- Essa chave impede a instalação de serviços do systemd - responsáveis por configurar o sistema pela primeira - vez. Eles não são úteis para LFS, pois tudo é feito - manualmente. -

-
-
- -Dinstall-tests=false -
-
-

- Essa chave impede a instalação dos testes compilados. -

-
-
- -Dldconfig=false -
-
-

- Essa chave impede a instalação de uma unidade do - systemd que executa ldconfig ao - inicializar, a qual não é útil para distribuições de - fonte tais como LFS e torna o tempo de inicialização - mais longo. Remova ela se a característica descrita for - desejada. -

-
-
- -Dsysusers=false -
-
-

- Essa chave impede a instalação de serviços do systemd - responsáveis por configurar os arquivos /etc/group e /etc/passwd. Ambos os arquivos foram - criados no capítulo anterior. Esse daemon não é útil em - um sistema LFS dado que contas de usuária(o) são - criadas manualmente. -

-
-
- -Drpmmacrosdir=no -
-
-

- Essa chave desabilita a instalação de Macros RPM para - uso com o systemd, pois LFS não suporta RPM. -

-
-
- -D{userdb,homed}=false -
-
-

- Remova dois daemons que tem dependências que não se - encaixam no escopo do LFS. -

-
-
- -Dman=false -
-
-

- Impeça a geração de páginas de manual para evitar - dependências extras. Nós instalaremos páginas de manual - pré-geradas para o systemd a partir de um tarball - posteriormente. -

-
-
- -Dmode=release -
-
-

- Desabilite algumas características consideradas - experimentais pela(o) upstream. -

-
-
-
-

- Compile o pacote: -

-
ninja
-

- Instale o pacote: -

-
ninja install
-

- Instale as páginas de manual: -

-
tar -xf ../../systemd-man-pages-250.tar.xz --strip-components=1 -C /usr/share/man
-

- Remova um diretório inútil: -

-
rm -rf /usr/lib/pam.d
-

- Crie o arquivo /etc/machine-id - necessitado por systemd-journald: -

-
systemd-machine-id-setup
-

- Configure a estrutura alvo básica: -

-
systemctl preset-all
-
-
-

- 8.71.2. - Conteúdo do systemd -

-
-
-
- Aplicativos instalados: - busctl, coredumpctl, halt (link - simbólico para systemctl), hostnamectl, init, journalctl, - kernel-install, localectl, loginctl, machinectl, - networkctl, oomctl, portablectl, poweroff (link simbólico - para systemctl), reboot (link simbólico para systemctl), - resolvconf (link simbólico para resolvectl), resolvectl, - runlevel (link simbólico para systemctl), shutdown (link - simbólico para systemctl), systemctl, systemd-analyze, - systemd-ask-password, systemd-cat, systemd-cgls, - systemd-cgtop, systemd-creds, systemd-delta, - systemd-detect-virt, systemd-dissect, systemd-escape, - systemd-hwdb, systemd-id128, systemd-inhibit, - systemd-machine-id-setup, systemd-mount, systemd-notify, - systemd-nspawn, systemd-path, systemd-repart, - systemd-resolve (link simbólico para resolvectl), - systemd-run, systemd-socket-activate, - systemd-stdio-bridge, systemd-sysext, systemd-tmpfiles, - systemd-tty-ask-password-agent, systemd-umount (link - simbólico para systemd-mount), telinit (link simbólico - para systemctl), timedatectl e udevadm -
-
- Bibliotecas instaladas: - libnss_myhostname.so.2, - libnss_mymachines.so.2, libnss_resolve.so.2, - libnss_systemd.so.2, libsystemd.so, - libsystemd-shared-250.so (em /usr/lib/systemd) e - libudev.so -
-
- Diretórios instalados: - /etc/binfmt.d, /etc/init.d, - /etc/kernel, /etc/modules-load.d, /etc/sysctl.d, - /etc/systemd, /etc/tmpfiles.d, /etc/udev, - /etc/xdg/systemd, /usr/lib/systemd, /usr/lib/udev, - /usr/include/systemd, /usr/lib/binfmt.d, - /usr/lib/environment.d, /usr/lib/kernel, - /usr/lib/modules-load.d, /usr/lib/sysctl.d, - /usr/lib/systemd, /usr/lib/tmpfiles.d, - /usr/share/doc/systemd-250, /usr/share/factory, - /usr/share/systemd, /var/lib/systemd e - /var/log/journal -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- busctl -

-
-

- É usado para introspectar e monitorar o barramento - D-Bus -

-
-

- coredumpctl -

-
-

- É usado para recuperar despejos de memória a partir - do diário do systemd -

-
-

- halt -

-
-

- Normalmente invoca shutdown com a - opção -h, - exceto quando já em nível de execução 0, então ele - informa ao kernel para parar o sistema; ele anota - no arquivo /var/log/wtmp que o sistema está - sendo desligado -

-
-

- hostnamectl -

-
-

- É usado para consultar e mudar o nome de - dispositivo do sistema e configurações relacionadas -

-
-

- init -

-
-

- É o primeiro processo a ser iniciado quando o - kernel inicializou o hardware, o qual assume o - processo de inicialização e inicia todos os - processos de acordo com os arquivos de configuração - dele. Nesse caso, ele inicia o systemd -

-
-

- journalctl -

-
-

- É usado para consultar o conteúdo do diário do - systemd -

-
-

- kernel-install -

-
-

- É usado para adicionar e remover imagens de kernel - e initramfs para e de /boot. Em LFS, isso é feito - manualmente -

-
-

- localectl -

-
-

- É usado para consultar e mudar as configurações de - esquema de locale e teclado do sistema -

-
-

- loginctl -

-
-

- É usado para introspectar e controlar o estado do - Login Manager do systemd -

-
-

- machinectl -

-
-

- É usado para introspectar e controlar o estado do - Virtual Machine e Container Registration Manager do - systemd -

-
-

- networkctl -

-
-

- É usado para introspectar e configurar o estado dos - links de rede configurados por systemd-networkd -

-
-

- oomctl -

-
-

- Controla o daemon Out Of Memory do systemd -

-
-

- portablectl -

-
-

- É usado para anexar ou desanexar serviços portáveis - a partir do sistema local -

-
-

- poweroff -

-
-

- Instrui o kernel a parar o sistema e desligar o - computador (veja-se halt) -

-
-

- reboot -

-
-

- Instrui o kernel a reinicializar o sistema (veja-se - halt) -

-
-

- resolvconf -

-
-

- Registra configuração de servidor de DNS e domínio - com systemd-resolved -

-
-

- resolvectl -

-
-

- Envia comandos de controle para o gerenciador de - resolução de nome de rede, ou resolve nomes de - domínio, endereços IPv4 e IPv6, registros DNS e - serviços -

-
-

- runlevel -

-
-

- Emite o nível de execução anterior e o atual, - conforme anotado no último registro de nível de - execução em /run/utmp -

-
-

- shutdown -

-
-

- Desativa o sistema em uma maneira segura e - protegida, sinalizando para todos os processos e - notificando todas(os) as(os) usuárias(os) - logadas(os) -

-
-

- systemctl -

-
-

- É usado para introspectar e controlar o estado do - gerenciador de sistema e serviço do systemd -

-
-

- systemd-analyze -

-
-

- É usado para determinar o desempenho de - inicialização de sistema da inicialização atual, - bem como identificar unidades do systemd - problemáticas -

-
-

- systemd-ask-password -

-
-

- É usado para consultar uma senha de sistema ou - frase senha a partir da(o) usuária(o), usando uma - mensagem de pergunta especificada na linha de - comando -

-
-

- systemd-cat -

-
-

- É usado para conectar as saídas STDOUT e STDERR de - um processo com o diário do systemd -

-
-

- systemd-cgls -

-
-

- Recursivamente mostra o conteúdo da hierarquia de - grupo de controle do Linux selecionado em uma - árvore -

-
-

- systemd-cgtop -

-
-

- Mostra os grupos de controle superiores da - hierarquia de grupo de controle do Linux local, - ordenados pela carga de CPU, memória e - entradas/saídas de disco deles -

-
-

- systemd-creds -

-
-

- Exibe e processa credenciais -

-
-

- systemd-delta -

-
-

- É usado para identificar e comparar arquivos de - configuração em /etc - que substituem homônimos padrão em /usr -

-
-

- systemd-detect-virt -

-
-

- Detecta se o sistema está sendo executado em um - ambiente virtual, e ajusta udev de acordo -

-
-

- systemd-dissect -

-
-

- É usado para inspecionar imagens de disco de OS -

-
-

- systemd-escape -

-
-

- É usado para escapar sequências de caracteres para - inclusão em nomes de unidade do systemd -

-
-

- systemd-hwdb -

-
-

- É usado para gerenciar o banco de dados de hardware - (hwdb) -

-
-

- systemd-id128 -

-
-

- Gera e imprime sequências de caracteres id128 -

-
-

- systemd-inhibit -

-
-

- É usado para executar um aplicativo com um bloqueio - de inibição de desligamento, suspensão ou - inatividade, impedindo uma ação tal como um - desligamento de sistema até que o processo seja - concluído -

-
-

- systemd-machine-id-setup -

-
-

- É usado por ferramentas de instalador de sistema - para inicializar o ID de máquina armazenado em - /etc/machine-id ao - tempo de instalação com um ID gerado aleatoriamente -

-
-

- systemd-mount -

-
-

- É usado para temporariamente montar ou automontar - discos -

-
-

- systemd-notify -

-
-

- É usado por scripts de daemon para notificar o - sistema init acerca de mudanças de situação -

-
-

- systemd-nspawn -

-
-

- É usado para executar um comando ou OS em um - contêiner de espaço de nome peso leve -

-
-

- systemd-path -

-
-

- É usado para consultar caminhos de sistema e - usuária(o) -

-
-

- systemd-repart -

-
-

- É usado para aumentar e adicionar partições à uma - tabela de partição quando systemd for usado em uma - imagem de OS (por exemplo, um contêiner) -

-
-

- systemd-resolve -

-
-

- É usado para resolver nomes de domínio, endereços - IPV4 e IPv6, registros de recurso DNS e serviços -

-
-

- systemd-run -

-
-

- É usado para criar e iniciar uma unidade .service - ou uma .scope transitória e executar o comando - especificado nela. Isso é útil para validar - unidades do systemd -

-
-

- systemd-socket-activate -

-
-

- É usado para ouvir em dispositivos de soquete e - iniciar um processo após uma conexão bem sucedida - com o soquete -

-
-

- systemd-sysext -

-
-

- Ativa imagens de extensão de sistema -

-
-

- systemd-tmpfiles -

-
-

- Cria, deleta e limpa arquivos e diretórios voláteis - e temporários, baseado no formato de arquivo de - configuração e local especificado em tmpfiles.d -

-
-

- systemd-umount -

-
-

- Desmonta pontos de montagem -

-
-

- systemd-tty-ask-password-agent -

-
-

- É usado para listar e (ou) processar solicitações - de senha do systemd pendentes -

-
-

- telinit -

-
-

- Diz a init para qual - nível de execução mudar -

-
-

- timedatectl -

-
-

- É usado para consultar e mudar o relógio de sistema - e configurações dele -

-
-

- udevadm -

-
-

- É uma ferramenta de administração udev genérica que - controla o daemon udevd, fornece informação a - partir do banco de dados de hardware do Udev, - monitora uevents, aguarda que uevents finalizem, - testa a configuração do udev e deflagra uevents - para um dispositivo dado -

-
-

- libsystemd -

-
-

- É a biblioteca principal de utilitário do systemd -

-
-

- libudev -

-
-

- É uma biblioteca para acessar informação de - dispositivo do Udev -

-
-
-
-
-
-
-
-
-

- 8.72. D-Bus-1.12.20 -

-
-
-
-
-

- D-Bus é um sistema de barramento de mensagem, uma maneira - simples para aplicativos conversarem entre si. D-Bus fornece - ambos um daemon de sistema (para eventos tais como "novo - dispositivo de hardware adicionado" ou "fila de impressora - mudou") e um daemon de sessão de login de usuária(o) (para - necessidades de IPC gerais entre aplicativos de usuária(o)). - Também, o barramento de mensagem é construído no topo de uma - estrutura de envio de mensagem um-a-um, a qual pode ser usada - por quaisquer dois aplicativos para se comunicarem - diretamente (sem transitar pelo daemon de barramento de - mensagem). -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 18 MB -
-
-
-
-
-

- 8.72.1. Instalação do D-Bus -

-

- Prepare D-Bus para compilação: -

-
./configure --prefix=/usr                        \
-            --sysconfdir=/etc                    \
-            --localstatedir=/var                 \
-            --disable-static                     \
-            --disable-doxygen-docs               \
-            --disable-xml-docs                   \
-            --docdir=/usr/share/doc/dbus-1.12.20 \
-            --with-console-auth-dir=/run/console \
-            --with-system-pid-file=/run/dbus/pid \
-            --with-system-socket=/run/dbus/system_bus_socket
-
-

- O significado das opções de configure: -

-
-
- --with-console-auth-dir=/run/console -
-
-

- Isso especifica o local do diretório de autorização do - ConsoleKit. -

-
-
- --with-system-pid-file=/run/dbus/pid - e --with-system-socket=/run/dbus/system_bus_socket -
-
-

- Essas configuram o local do arquivo de PID e soquete de - barramento de sistema para estar em /run, em vez do obsoleto /var/run. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Esse pacote vem com uma suíte de teste, porém ela exige - muitos pacotes que não estão inclusos em LFS. Instruções para - executar a suíte de teste podem ser encontradas no livro BLFS - em - https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/dbus.html. -

-

- Instale o pacote: -

-
make install
-

- Crie um link simbólico de forma que D-Bus e systemd possam - usar o mesmo arquivo machine-id: -

-
ln -sfv /etc/machine-id /var/lib/dbus
-
-
-

- 8.72.2. - Conteúdo do D-Bus -

-
-
-
- Aplicativos instalados: - dbus-cleanup-sockets, dbus-daemon, - dbus-launch, dbus-monitor, dbus-run-session, dbus-send, - dbus-test-tool, dbus-update-activation-environment e - dbus-uuidgen -
-
- Bibliotecas instaladas: - libdbus-1.{a,so} -
-
- Diretórios instalados: - /etc/dbus-1, /usr/include/dbus-1.0, - /usr/lib/dbus-1.0, /usr/share/dbus-1, - /usr/share/doc/dbus-1.12.20 e /var/lib/dbus -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- dbus-cleanup-sockets -

-
-

- é usado para remover soquetes restantes em um - diretório -

-
-

- dbus-daemon -

-
-

- É o daemon de barramento de mensagem D-Bus -

-
-

- dbus-launch -

-
-

- Inicia dbus-daemon a - partir de um script de shell -

-
-

- dbus-monitor -

-
-

- Monitora mensagens transitando ao longo de um - barramento de mensagem D-Bus -

-
-

- dbus-run-session -

-
-

- Inicia uma instância de barramento de sessão do - dbus-daemon a - partir de um script de shell e inicia um aplicativo - especificado naquela sessão -

-
-

- dbus-send -

-
-

- Envia uma mensagem para um barramento de mensagem - do D-Bus -

-
-

- dbus-test-tool -

-
-

- É uma ferramenta para auxiliar pacotes a testarem o - D-Bus -

-
-

- dbus-update-activation-environment -

-
-

- Atualiza variáveis de ambiente que serão - configuradas para serviços de sessão do - D-Bus -

-
-

- dbus-uuidgen -

-
-

- Gera um ID único universalmente -

-
-

- libdbus-1 -

-
-

- Contém funções de API usadas para comunicar com o - barramento de mensagem do D-Bus -

-
-
-
-
-
-
-
-
-

- 8.73. Man-DB-2.10.1 -

-
-
-
-
-

- O pacote Man-DB contém aplicativos para encontrar e - visualizar páginas de manual. -

-
-
-
- Tempo aproximado de - construção: 0,3 UPC -
-
- Espaço em disco - exigido: 39 MB -
-
-
-
-
-

- 8.73.1. Instalação do Man-DB -

-

- Prepare Man-DB para compilação: -

-
./configure --prefix=/usr                         \
-            --docdir=/usr/share/doc/man-db-2.10.1 \
-            --sysconfdir=/etc                     \
-            --disable-setuid                      \
-            --enable-cache-owner=bin              \
-            --with-browser=/usr/bin/lynx          \
-            --with-vgrind=/usr/bin/vgrind         \
-            --with-grap=/usr/bin/grap
-
-

- O significado das opções de configure: -

-
-
- --disable-setuid -
-
-

- Isso desabilita fazer o aplicativo man configurar uid - para usuária(o) man. -

-
-
- --enable-cache-owner=bin -
-
-

- Isso torna os arquivos de cache de sistema de - propriedade da(o) usuária(o) bin. -

-
-
- --with-... -
-
-

- Esses três parâmetros são usados para configurar alguns - aplicativos padrão. lynx é um navegador - de rede baseado em texto (veja-se BLFS para instruções - de instalação); vgrind converte - fontes de aplicativo para entrada do Groff; e - grap é - útil para tipografar gráficos em documentos do Groff. - Os aplicativos vgrind e grap normalmente não - são necessários para visualizar páginas de manual. Eles - não são parte do LFS ou BLFS, mas você deveria ser - capaz de instalá-los após terminar o LFS se você - desejar fazer isso. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.73.2. Páginas de Manual não inglesas no LFS -

-

- A seguinte tabela mostra o conjunto de caracteres no qual - Man-DB supõe que as páginas de manual instaladas sob - /usr/share/man/<ll> - estarão codificadas. Em adição a isto, o Man-DB determina - corretamente se páginas de manual instaladas naquele - diretório estão codificadas com UTF-8. -

-
- -

- Tabela 8.1. Codificação de caracteres esperada das - páginas de manual de 8-bit legadas -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Idioma (código) - - Codificação - - Idioma (código) - - Codificação -
- Dinamarquês (da) - - ISO-8859-1 - - Croata (hr) - - ISO-8859-2 -
- Alemão (de) - - ISO-8859-1 - - Húngaro (hu) - - ISO-8859-2 -
- Inglês (en) - - ISO-8859-1 - - Japonês (ja) - - EUC-JP -
- Espanhol (es) - - ISO-8859-1 - - Coreano (ko) - - EUC-KR -
- Estoniano (et) - - ISO-8859-1 - - Lituano (lt) - - ISO-8859-13 -
- Finlandês (fi) - - ISO-8859-1 - - Letão (lv) - - ISO-8859-13 -
- Francês (fr) - - ISO-8859-1 - - Macedônio (mk) - - ISO-8859-5 -
- Irlandês (ga) - - ISO-8859-1 - - Polonês (pl) - - ISO-8859-2 -
- Galego (gl) - - ISO-8859-1 - - Romeno (ro) - - ISO-8859-2 -
- Indonésio (id) - - ISO-8859-1 - - Russo (ru) - - KOI8-R -
- Islandês (is) - - ISO-8859-1 - - Eslovaco (sk) - - ISO-8859-2 -
- Italiano (it) - - ISO-8859-1 - - Esloveno (sl) - - ISO-8859-2 -
- Bokmal norueguês (nb) - - ISO-8859-1 - - Latim sérvio (sr@latin) - - ISO-8859-2 -
- Holandês (nl) - - ISO-8859-1 - - Sérvio (sr) - - ISO-8859-5 -
- Nynorsk norueguês (nn) - - ISO-8859-1 - - Turco (tr) - - ISO-8859-9 -
- Norueguês (no) - - ISO-8859-1 - - Ucraniano (uk) - - KOI8-U -
- Português (pt) - - ISO-8859-1 - - Vietnamita (vi) - - TCVN5712-1 -
- Sueco (sv) - - ISO-8859-1 - - Chinês simplificado (zh_CN) - - GBK -
- Bielorrusso (be) - - CP1251 - - Chinês simplificado, Singapura (zh_SG) - - GBK -
- Búlgaro (bg) - - CP1251 - - Chinês tradicional, Hong Kong (zh_HK) - - BIG5HKSCS -
- Tcheco (cs) - - ISO-8859-2 - - Chinês tradicional (zh_TW) - - BIG5 -
- Grego (el) - - ISO-8859-7 - -   - -   -
-
-

-
-

- Nota -

-

- Páginas de manual em idiomas que não estão na lista não são - suportadas. -

-
-
-
-

- 8.73.3. - Conteúdo do Man-DB -

-
-
-
- Aplicativos instalados: - accessdb, apropos (link para - whatis), catman, lexgrog, man, man-recode, mandb, manpath - e whatis -
-
- Bibliotecas instaladas: - libman.so e libmandb.so (ambas em - /usr/lib/man-db) -
-
- Diretórios instalados: - /usr/lib/man-db, - /usr/libexec/man-db e /usr/share/doc/man-db-2.10.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- accessdb -

-
-

- Despeja o conteúdo do banco de dados whatis em formato - legível por humanos -

-
-

- apropos -

-
-

- Pesquisa no banco de dados whatis e exibe as - descrições curtas dos comandos de sistema que - contém uma sequência de caracteres dada -

-
-

- catman -

-
-

- Cria ou atualiza páginas de manual pré-formatadas -

-
-

- lexgrog -

-
-

- Exibe informação de sumário em uma linha sobre uma - página de manual dada -

-
-

- man -

-
-

- Formata e exibe a página de manual solicitada -

-
-

- man-recode -

-
-

- Converte páginas de manual para outra codificação -

-
-

- mandb -

-
-

- Cria ou atualiza o banco de dados whatis -

-
-

- manpath -

-
-

- Exibe o conteúdo de $MANPATH ou (se $MANPATH não - estiver configurada) um caminho de busca adequado - baseado nas configurações em man.conf e no ambiente - da(o) usuária(o) -

-
-

- whatis -

-
-

- Pesquisa no banco de dados whatis e exibe as - descrições curtas de comandos do sistema que contém - a palavra chave dada como uma palavra separada -

-
-

- libman -

-
-

- Contém suporte em tempo de execução para o - man -

-
-

- libmandb -

-
-

- Contém suporte em tempo de execução para o - man -

-
-
-
-
-
-
-
-
-

- 8.74. Procps-ng-3.3.17 -

-
-
-
-
-

- O pacote Procps-ng contém aplicativos para monitorar - processos. -

-
-

- Nota -

-

- Esse pacote extrai para o diretório procps-3.3.17, não o esperado - procps-ng-3.3.17. -

-
-
-
-
- Tempo aproximado de - construção: 0,4 UPC -
-
- Espaço em disco - exigido: 19 MB -
-
-
-
-
-

- 8.74.1. Instalação do Procps-ng -

-

- Prepare procps-ng para compilação: -

-
./configure --prefix=/usr                            \
-            --docdir=/usr/share/doc/procps-ng-3.3.17 \
-            --disable-static                         \
-            --disable-kill                           \
-            --with-systemd
-
-

- O significado da opção de configure: -

-
-
- --disable-kill -
-
-

- Essa chave desabilita a construção do comando - kill que - será instalado pelo pacote util-linux. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para executar a suíte de teste, execute: -

-
make check
-

- Cinco testes relacionados a pkill são conhecidos por falhar - devido a um problema com testes que não foram atualizados. -

-

- Instale o pacote: -

-
make install
-
-
-

- 8.74.2. - Conteúdo do Procps-ng -

-
-
-
- Aplicativos instalados: - free, pgrep, pidof, pkill, pmap, - ps, pwdx, slabtop, sysctl, tload, top, uptime, vmstat, w - e watch -
-
- Biblioteca instalada: - libprocps.so -
-
- Diretórios instalados: - /usr/include/proc e - /usr/share/doc/procps-ng-3.3.17 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- free -

-
-

- Relata a quantidade de memória livre e usada (ambas - memória física e swap) no sistema -

-
-

- pgrep -

-
-

- Procura por processos baseado nos nomes deles e - outros atributos -

-
-

- pidof -

-
-

- Relata os PIDs dos aplicativos dados -

-
-

- pkill -

-
-

- Sinaliza processos baseado nos nomes deles e outros - atributos -

-
-

- pmap -

-
-

- Relata o mapeamento de memória do processo dado -

-
-

- ps -

-
-

- Lista os processos em execução atualmente -

-
-

- pwait -

-
-

- Aguarda que um processo termine antes de executar. -

-
-

- pwdx -

-
-

- Relata o diretório de trabalho atual de um processo -

-
-

- slabtop -

-
-

- Exibe informações detalhadas de cache de slab do - kernel em tempo real -

-
-

- sysctl -

-
-

- Modifica parâmetros do kernel em tempo de execução -

-
-

- tload -

-
-

- Imprime um gráfico da média de carga de sistema - atual -

-
-

- top -

-
-

- Exibe uma lista dos processos com maior uso de CPU; - ele fornece uma visão contínua da atividade do - processador em tempo real -

-
-

- uptime -

-
-

- Relata há quanto tempo o sistema está executando, - quantas(os) usuárias(os) estão logadas(os) e as - médias de carga de sistema -

-
-

- vmstat -

-
-

- Relata estatísticas de memória virtual, dando - informações sobre processos, memória, paginação, - Entrada/Saída (E/S) de bloco, traps e atividade da - CPU -

-
-

- w -

-
-

- Mostra quais usuárias(os) estão logadas(os) - atualmente, onde e desde quando -

-
-

- watch -

-
-

- Executa um comando dado repetidamente, exibindo a - primeira tela cheia da saída dele; isso permite que - uma(m) usuária(o) observe a mudança de saída ao - longo do tempo -

-
-

- libprocps -

-
-

- Contém as funções usadas pela maioria dos - aplicativos nesse pacote -

-
-
-
-
-
-
-
-
-

- 8.75. Util-linux-2.37.4 -

-
-
-
-
-

- O pacote Util-linux contém aplicativos utilitários diversos. - Entre eles estão utilitários para lidar com sistemas de - arquivos, consoles, partições e mensagens. -

-
-
-
- Tempo aproximado de - construção: 1,1 UPC -
-
- Espaço em disco - exigido: 261 MB -
-
-
-
-
-

- 8.75.1. Instalação do Util-linux -

-

- Prepare Util-linux para compilação: -

-
./configure ADJTIME_PATH=/var/lib/hwclock/adjtime   \
-            --bindir=/usr/bin    \
-            --libdir=/usr/lib    \
-            --sbindir=/usr/sbin  \
-            --docdir=/usr/share/doc/util-linux-2.37.4 \
-            --disable-chfn-chsh  \
-            --disable-login      \
-            --disable-nologin    \
-            --disable-su         \
-            --disable-setpriv    \
-            --disable-runuser    \
-            --disable-pylibmount \
-            --disable-static     \
-            --without-python
-

- As opções --disable e --without impedem avisos acerca de - construir componentes que exigem pacotes ausentes em LFS ou - estão inconsistentes com aplicativos instalados por outros - pacotes. -

-

- Compile o pacote: -

-
make
-

- Se desejado, execute a suíte de teste como uma(m) usuária(o) - não root: -

-
-

- Atenção -

-

- Executar a suíte de teste como a(o) usuária(o) root pode ser danoso ao seu sistema. - Para executá-lo, a opção CONFIG_SCSI_DEBUG para o kernel - precisa estar disponível no sistema em execução atualmente - e precisa ser construída como um módulo. Construí-lo dentro - do kernel impedirá a inicialização. Para cobertura - completa, outros pacotes do BLFS precisam ser instalados. - Se desejado, esse teste pode ser executado após reiniciar - no sistema LFS completo e executar: -

-
bash tests/run.sh --srcdir=$PWD --builddir=$PWD
-
-
-

- Nota -

-

- Existe um teste que falha no ambiente chroot e causa os - testes travarem para sempre. O problema não ocorre do lado - de fora do ambiente chroot. Para contornar o problema, - delete o teste: -

-
rm tests/ts/lsns/ioctl_ns
-
-
chown -Rv tester .
-su tester -c "make -k check"
-

- Instale o pacote: -

-
make install
-
-
-

- 8.75.2. Conteúdo do Util-linux -

-
-
-
- Aplicativos instalados: - addpart, agetty, blkdiscard, blkid, - blkzone, blockdev, cal, cfdisk, chcpu, chmem, choom, - chrt, col, colcrt, colrm, column, ctrlaltdel, delpart, - dmesg, eject, fallocate, fdisk, fincore, findfs, findmnt, - flock, fsck, fsck.cramfs, fsck.minix, fsfreeze, fstrim, - getopt, hexdump, hwclock, i386, ionice, ipcmk, ipcrm, - ipcs, irqtop, isosize, kill, last, lastb (link para - last), ldattach, linux32, linux64, logger, look, losetup, - lsblk, lscpu, lsipc, lsirq, lslocks, lslogins, lsmem, - lsns, mcookie, mesg, mkfs, mkfs.bfs, mkfs.cramfs, - mkfs.minix, mkswap, more, mount, mountpoint, namei, - nsenter, partx, pivot_root, prlimit, readprofile, rename, - renice, resizepart, rev, rfkill, rtcwake, script, - scriptlive, scriptreplay, setarch, setsid, setterm, - sfdisk, sulogin, swaplabel, swapoff (link para swapon), - swapon, switch_root, taskset, uclampset, ul, umount, - uname26, unshare, utmpdump, uuidd, uuidgen, uuidparse, - wall, wdctl, whereis, wipefs, x86_64 e zramctl -
-
- Bibliotecas instaladas: - libblkid.so, libfdisk.so, - libmount.so, libsmartcols.so e libuuid.so -
-
- Diretórios instalados: - /usr/include/blkid, - /usr/include/libfdisk, /usr/include/libmount, - /usr/include/libsmartcols, /usr/include/uuid, - /usr/share/doc/util-linux-2.37.4 e - /var/lib/hwclock -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- addpart -

-
-

- Informa o kernel Linux de novas partições -

-
-

- agetty -

-
-

- Abre uma porta tty, solicita um nome de login e - então invoca o aplicativo login -

-
-

- blkdiscard -

-
-

- Descarta setores em um dispositivo -

-
-

- blkid -

-
-

- Um utilitário de linha de comando para localizar e - imprimir atributos de dispositivo de bloco -

-
-

- blkzone -

-
-

- Executa comando de zona no dispositivo de bloco - dado -

-
-

- blockdev -

-
-

- Permite usuárias(os) chamar ioctls de dispositivo - de bloco a partir da linha de comando -

-
-

- cal -

-
-

- Exibe um calendário simples -

-
-

- cfdisk -

-
-

- Manipula a tabela de partição do dispositivo dado -

-
-

- chcpu -

-
-

- Modifica o estado de CPUs -

-
-

- chmem -

-
-

- Configura memória -

-
-

- choom -

-
-

- Exibe e ajusta a pontuação de matador de OOM -

-
-

- chrt -

-
-

- Manipula atributos de tempo real de um processo -

-
-

- col -

-
-

- Filtra feeds de linha reversa -

-
-

- colcrt -

-
-

- Filtra saída nroff para - terminais que não tem algumas capacidades, tais - como overstriking e half-lines -

-
-

- colrm -

-
-

- Filtra as colunas dadas -

-
-

- column -

-
-

- Formata um arquivo dado em colunas múltiplas -

-
-

- ctrlaltdel -

-
-

- Configura a função da combinação de teclas - Ctrl+Alt+Del para uma reconfiguração hard ou soft -

-
-

- delpart -

-
-

- Pede ao kernel Linux para remover uma partição -

-
-

- dmesg -

-
-

- Despeja as mensagens de inicialização do kernel -

-
-

- eject -

-
-

- Ejeta mídia removível -

-
-

- fallocate -

-
-

- Pré-aloca espaço para um arquivo -

-
-

- fdisk -

-
-

- Manipula a tabela de partição do dispositivo dado -

-
-

- fincore -

-
-

- Conta páginas de conteúdo de arquivo em núcleo -

-
-

- findfs -

-
-

- Encontra um sistema de arquivos pelo rótulo ou - Universally Unique Identifier (UUID) -

-
-

- findmnt -

-
-

- É uma interface de linha de comando para a - biblioteca libmount para funcionar com mountinfo, - fstab e arquivos mtab -

-
-

- flock -

-
-

- Adquire uma trava de arquivo e então executa um - comando com a trava mantida -

-
-

- fsck -

-
-

- É usado para verificar, e opcionalmente reparar, - sistemas de arquivos -

-
-

- fsck.cramfs -

-
-

- Realiza uma verificação de consistência no sistema - de arquivos Cramfs no dispositivo dado -

-
-

- fsck.minix -

-
-

- Realiza uma verificação de consistência no sistema - de arquivos Minix no dispositivo dado -

-
-

- fsfreeze -

-
-

- É um encapsulador muito simples em torno de - operações de controlador de kernel de ioctl de - FIFREEZE/FITHAW -

-
-

- fstrim -

-
-

- Descarta blocos não usados em um sistema de - arquivos montado -

-
-

- getopt -

-
-

- Analisa opções na linha de comando dada -

-
-

- hexdump -

-
-

- Despeja o arquivo dado em hexadecimal ou em outro - formato dado -

-
-

- hwclock -

-
-

- Lê ou configura o relógio de hardware do sistema, - também chamado de Real-Time Clock (RTC) ou relógio - do Basic Input-Output System (BIOS) -

-
-

- i386 -

-
-

- Um link simbólico para setarch -

-
-

- ionice -

-
-

- Obtém ou configura a classe de agendamento de io e - prioridade para um aplicativo -

-
-

- ipcmk -

-
-

- Cria vários recursos IPC -

-
-

- ipcrm -

-
-

- Remove o recurso de Inter-Process Communication - (IPC) dado -

-
-

- ipcs -

-
-

- Fornece informação de situação de IPC -

-
-

- irqtop -

-
-

- Exibe informação de contador de interrupção do - kernel em visão estilo top(1) -

-
-

- isosize -

-
-

- Relata o tamanho de um sistema de arquivos iso9660 -

-
-

- kill -

-
-

- Envia sinais para processos -

-
-

- last -

-
-

- Mostra quais usuárias(os) derradeiramente - logaram-se (e deslogaram-se), pesquisando de volta - ao longo do arquivo /var/log/wtmp; ele também mostra - inicializações de sistema, desligamentos e mudanças - de nível de execução -

-
-

- lastb -

-
-

- Exibe as tentativas de login falhas, conforme - registrado em /var/log/btmp -

-
-

- ldattach -

-
-

- Anexa uma disciplina de linha à uma linha serial -

-
-

- linux32 -

-
-

- Um link simbólico para setarch -

-
-

- linux64 -

-
-

- Um link simbólico para setarch -

-
-

- logger -

-
-

- Adiciona a mensagem dada ao registro do sistema -

-
-

- look -

-
-

- Exibe linhas que começam com a sequência de - caracteres dada -

-
-

- losetup -

-
-

- Configura e controla dispositivos de loop -

-
-

- lsblk -

-
-

- Lista informações sobre todos ou dispositivos de - bloco selecionados em um formato semelhante a - árvore -

-
-

- lscpu -

-
-

- Imprime informação de arquitetura da CPU -

-
-

- lsipc -

-
-

- Imprime informação acerca de facilidades de IPC - empregadas atualmente no sistema -

-
-

- lsirq -

-
-

- Exibe informação de contador de interrupção do - kernel -

-
-

- lslocks -

-
-

- Lista travas locais de sistema -

-
-

- lslogins -

-
-

- Lista informação acerca de contas de usuárias(os), - grupos e sistema -

-
-

- lsmem -

-
-

- Lista os intervalos de memória disponível com a - situação online deles -

-
-

- lsns -

-
-

- Lista espaços de nome -

-
-

- mcookie -

-
-

- Gera cookies mágicos (números hexadecimais - aleatórios de 128 bits) para o xauth -

-
-

- mesg -

-
-

- Controla se outras(os) usuárias(os) podem enviar - mensagens para o terminal da(o) usuária(o) atual -

-
-

- mkfs -

-
-

- Constrói um sistema de arquivos em um dispositivo - (geralmente uma partição de disco rígido) -

-
-

- mkfs.bfs -

-
-

- Cria um sistema de arquivos Santa Cruz Operations - (SCO) bfs -

-
-

- mkfs.cramfs -

-
-

- Cria um sistema de arquivos cramfs -

-
-

- mkfs.minix -

-
-

- Cria um sistema de arquivos Minix -

-
-

- mkswap -

-
-

- Inicializa dispositivo ou arquivo dado para ser - usado como uma área de troca -

-
-

- more -

-
-

- Um filtro para paginar ao longo de texto uma tela - de cada vez -

-
-

- mount -

-
-

- Anexa o sistema de arquivos no dispositivo dado a - um diretório especificado na árvore do sistema de - arquivos -

-
-

- mountpoint -

-
-

- Verifica se o diretório é um ponto de montagem -

-
-

- namei -

-
-

- Mostra os links simbólicos nos nomes de caminho - dados -

-
-

- nsenter -

-
-

- Executa um aplicativo com espaços de nome de outros - processos -

-
-

- partx -

-
-

- Informa ao kernel sobre a presença e numeração de - partições no disco -

-
-

- pivot_root -

-
-

- Torna o sistema de arquivos dado o novo sistema de - arquivos raiz do processo atual -

-
-

- prlimit -

-
-

- Obtém e configura um limite de recursos do processo -

-
-

- readprofile -

-
-

- Lê informação de perfil do kernel -

-
-

- rename -

-
-

- Renomeia os arquivos dados, substituindo uma - sequência de caracteres dada por outra -

-
-

- renice -

-
-

- Altera a prioridade de processos em execução -

-
-

- resizepart -

-
-

- Pede ao kernel Linux para redimensionar uma - partição -

-
-

- rev -

-
-

- Inverte as linhas de um arquivo dado -

-
-

- rkfill -

-
-

- Ferramenta para habilitar e desabilitar - dispositivos sem fios -

-
-

- rtcwake -

-
-

- Usado para entrar em um estado de suspensão do - sistema até o horário de ativação especificado -

-
-

- script -

-
-

- Cria um texto datilografado de uma sessão de - terminal -

-
-

- scriptlive -

-
-

- Reexecuta textos datilografados de sessão usando - informação de tempo -

-
-

- scriptreplay -

-
-

- Reproduz textos datilografados usando informações - de tempo -

-
-

- setarch -

-
-

- Muda a arquitetura relatada em um novo ambiente de - aplicativo e configura sinalizadores de - personalidade -

-
-

- setsid -

-
-

- Executa o aplicativo dado em uma nova sessão -

-
-

- setterm -

-
-

- Configura atributos do terminal -

-
-

- sfdisk -

-
-

- Um manipulador de tabela de partição de disco -

-
-

- sulogin -

-
-

- Permite root se - logar; ele normalmente é invocado por init quando o - sistema entra em modo de usuária(o) única(o) -

-
-

- swaplabel -

-
-

- Permite modificar o UUID e rótulo da área de troca -

-
-

- swapoff -

-
-

- Desabilita dispositivos e arquivos para paginação e - troca -

-
-

- swapon -

-
-

- Habilita dispositivos e arquivos para paginação e - troca e lista os dispositivos e arquivos atualmente - em uso -

-
-

- switch_root -

-
-

- Alterna para outro sistema de arquivos como a raiz - da árvore de montagem -

-
-

- taskset -

-
-

- Recupera ou configura uma afinidade de CPU do - processo -

-
-

- uclampset -

-
-

- Manipula os atributos de fixação de utilização do - sistema ou um processo -

-
-

- ul -

-
-

- Um filtro para traduzir sublinhados em sequências - de escape indicando sublinhamento para o terminal - em uso -

-
-

- umount -

-
-

- Desconecta um sistema de arquivos da árvore de - arquivos do sistema -

-
-

- uname26 -

-
-

- Um link simbólico para setarch -

-
-

- unshare -

-
-

- Executa um aplicativo com alguns espaços de nome - não compartilhados oriundos do pai -

-
-

- utmpdump -

-
-

- Exibe o conteúdo do arquivo de login dado em um - formato mais amigável para a(o) usuária(o) -

-
-

- uuidd -

-
-

- Um daemon usado pela biblioteca UUID para gerar - UUIDs baseados em horário em uma forma segura e - garantidamente única -

-
-

- uuidgen -

-
-

- Cria novos UUIDs. Cada novo UUID pode razoavelmente - ser considerado único entre todos os UUIDs criados, - no sistema local e em outros sistemas, no passado e - no futuro -

-
-

- uuidparse -

-
-

- Um utilitário para analisar identificadores únicos -

-
-

- wall -

-
-

- Exibe o conteúdo de um arquivo ou, por padrão, a - entrada padrão dele, nos terminais de todas(os) - as(os) usuárias(os) logadas(os) atualmente -

-
-

- wdctl -

-
-

- Mostra a situação de vigilante de hardware -

-
-

- whereis -

-
-

- Relata o local do binário, fonte e página de manual - para o comando dado -

-
-

- wipefs -

-
-

- Limpa uma assinatura de sistema de arquivos a - partir de um dispositivo -

-
-

- x86_64 -

-
-

- Um link simbólico para setarch -

-
-

- zramctl -

-
-

- Um aplicativo para configurar e controlar - dispositivos zram (disco ram comprimido) -

-
-

- libblkid -

-
-

- Contém rotinas para identificação de dispositivo e - extração de token -

-
-

- libfdisk -

-
-

- Contém rotinas para manipular tabelas de partição -

-
-

- libmount -

-
-

- Contém rotinas para montagem e desmontagem de - dispositivo de bloco -

-
-

- libsmartcols -

-
-

- Contém rotinas para auxiliar a saída de tela em - forma de tabela -

-
-

- libuuid -

-
-

- Contém rotinas para gerar identificadores únicos - para objetos que talvez sejam acessíveis além do - sistema local -

-
-
-
-
-
-
-
-
-

- 8.76. E2fsprogs-1.46.5 -

-
-
-
-
-

- O pacote e2fsprogs contém os utilitários para lidar com o - sistema de arquivos ext2. Ele - também suporta os sistemas de arquivos de registro em diário - ext3 e ext4. -

-
-
-
- Tempo aproximado de - construção: 4,4 UPC em um - disco giratório, 1,3 UPC em um SSD -
-
- Espaço em disco - exigido: 93 MB -
-
-
-
-
-

- 8.76.1. Instalação do E2fsprogs -

-

- A documentação do e2fsprogs recomenda que o pacote seja - construído em um subdiretório da árvore do fonte: -

-
mkdir -v build
-cd       build
-

- Prepare e2fsprogs para compilação: -

-
../configure --prefix=/usr           \
-             --sysconfdir=/etc       \
-             --enable-elf-shlibs     \
-             --disable-libblkid      \
-             --disable-libuuid       \
-             --disable-uuidd         \
-             --disable-fsck
-
-

- O significado das opções de configure: -

-
-
- --enable-elf-shlibs -
-
-

- Isso cria as bibliotecas compartilhadas as quais alguns - aplicativos nesse pacote usam. -

-
-
- --disable-* -
-
-

- Isso evita que e2fsprogs construa e instale as - bibliotecas libuuid e - libblkid, o daemon - uuidd, e o encapsulador - fsck, uma - vez que o util-linux instala versões mais recentes. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para executar os testes, execute: -

-
make check
-

- Um teste, u_direct_io, é conhecido por falhar em alguns - sistemas. -

-

- Instale o pacote: -

-
make install
-

- Remova bibliotecas estáticas inúteis: -

-
rm -fv /usr/lib/{libcom_err,libe2p,libext2fs,libss}.a
-

- Esse pacote instala um arquivo gzipado .info, mas não atualiza o arquivo do - sistema dir. Descompacte esse - arquivo e então atualize o arquivo do sistema dir usando os seguintes comandos: -

-
gunzip -v /usr/share/info/libext2fs.info.gz
-install-info --dir-file=/usr/share/info/dir /usr/share/info/libext2fs.info
-

- Se desejado, crie e instale alguma documentação adicional - executando os seguintes comandos: -

-
makeinfo -o      doc/com_err.info ../lib/et/com_err.texinfo
-install -v -m644 doc/com_err.info /usr/share/info
-install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info
-
-
-

- 8.76.2. Conteúdo do E2fsprogs -

-
-
-
- Aplicativos instalados: - badblocks, chattr, compile_et, - debugfs, dumpe2fs, e2freefrag, e2fsck, e2image, e2label, - e2mmpstatus, e2scrub, e2scrub_all, e2undo, e4crypt, - e4defrag, filefrag, fsck.ext2, fsck.ext3, fsck.ext4, - logsave, lsattr, mk_cmds, mke2fs, mkfs.ext2, mkfs.ext3, - mkfs.ext4, mklost+found, resize2fs e tune2fs -
-
- Bibliotecas instaladas: - libcom_err.so, libe2p.so, - libext2fs.so e libss.so -
-
- Diretórios instalados: - /usr/include/e2p, /usr/include/et, - /usr/include/ext2fs, /usr/include/ss, /usr/lib/e2fsprogs, - /usr/share/et e /usr/share/ss -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- badblocks -

-
-

- Pesquisa em um dispositivo (geralmente uma partição - de disco) por blocos defeituosos -

-
-

- chattr -

-
-

- Muda os atributos de arquivos em um sistema de - arquivos ext2; ele - também muda sistemas de arquivos ext3, a versão de registro em - diário dos sistemas de arquivos ext2 -

-
-

- compile_et -

-
-

- Um compilador de tabela de erro; ele converte uma - tabela de nomes de códigos de erros e mensagens em - um arquivo fonte C adequado para uso com a - biblioteca com_err -

-
-

- debugfs -

-
-

- Um depurador de sistema de arquivo; ele pode ser - usado para examinar e mudar o estado de um sistema - de arquivos ext2 -

-
-

- dumpe2fs -

-
-

- Imprime informação de superblocos e grupo de blocos - para o sistema de arquivos presente em um - dispositivo dado -

-
-

- e2freefrag -

-
-

- Relata informação de fragmentação de espaço livre -

-
-

- e2fsck -

-
-

- É usado para verificar, e opcionalmente reparar - sistemas de arquivos ext2 e sistemas de arquivos - ext3 -

-
-

- e2image -

-
-

- É usado para salvar dados críticos de sistema de - arquivos ext2 para - um arquivo -

-
-

- e2label -

-
-

- Exibe ou muda o rótulo de sistema de arquivos no - sistema de arquivos ext2 presente em um dispositivo - dado -

-
-

- e2mmpstatus -

-
-

- Verifica situação de MMP de um sistema de arquivos - ext4 -

-
-

- e2scrub -

-
-

- Verifica o conteúdo de um sistema de arquivos - ext[234] montado -

-
-

- e2scrub_all -

-
-

- Verifica todos os sistemas de arquivos ext[234] - montados para erros -

-
-

- e2undo -

-
-

- Reexecuta o registro de desfazer undo_log para um - sistema de arquivos ext2/ext3/ext4 encontrado em um - dispositivo [Isso pode ser usado para desfazer uma - operação falha por um aplicativo do e2fsprogs] -

-
-

- e4crypt -

-
-

- Utilitário de encriptação de sistema de arquivos - ext4 -

-
-

- e4defrag -

-
-

- Desfragmentador online para sistemas de arquivo - ext4 -

-
-

- filefrag -

-
-

- Relatórios sobre quão fragmentado um arquivo - específico pode estar -

-
-

- fsck.ext2 -

-
-

- Por padrão verifica sistemas de arquivo - ext2 e é um hard - link para e2fsck -

-
-

- fsck.ext3 -

-
-

- Por padrão verifica sistemas de arquivo - ext3 e é um hard - link para e2fsck -

-
-

- fsck.ext4 -

-
-

- Por padrão verifica sistemas de arquivo - ext4 e é um hard - link para e2fsck -

-
-

- logsave -

-
-

- Salva a saída de um comando em um arquivo de - registro -

-
-

- lsattr -

-
-

- Lista os atributos de arquivos em um segundo - sistema de arquivos estendido -

-
-

- mk_cmds -

-
-

- Converte uma tabela de nomes de comando e mensagens - de ajuda em um arquivo fonte C adequado para uso - com a biblioteca de subsistema libss -

-
-

- mke2fs -

-
-

- Cria um sistema de arquivos ext2 ou ext3 no dispositivo dado -

-
-

- mkfs.ext2 -

-
-

- Por padrão cria sistemas de arquivos ext2 e é um hard link para - mke2fs -

-
-

- mkfs.ext3 -

-
-

- Por padrão cria sistemas de arquivos ext3 e é um hard link para - mke2fs -

-
-

- mkfs.ext4 -

-
-

- Por padrão cria sistemas de arquivos ext4 e é um hard link para - mke2fs -

-
-

- mklost+found -

-
-

- Usado para criar um diretório lost+found em um sistema de - arquivos ext2; ele - pré-aloca blocos de disco para esse diretório para - facilitar a tarefa do e2fsck -

-
-

- resize2fs -

-
-

- Pode ser usado para alargar ou estreitar um sistema - de arquivos ext2 -

-
-

- tune2fs -

-
-

- Ajusta parâmetros ajustáveis de sistema de arquivos - em um sistema de arquivos ext2 -

-
-

- libcom_err -

-
-

- A rotina comum de exibição de erro -

-
-

- libe2p -

-
-

- Usado por dumpe2fs, - chattr e - lsattr -

-
-

- libext2fs -

-
-

- Contém rotinas para habilitar aplicativos de nível - de usuária(o) para lidar com um sistema de arquivos - ext2 -

-
-

- libss -

-
-

- Usado por debugfs -

-
-
-
-
-
-
-
-
-

- 8.77. Acerca dos - Símbolos de Depuração -

-
-
-
-

- A maioria dos aplicativos e bibliotecas é, por padrão, - compilada com símbolos de depuração incluídos (com opção - -g do gcc). Isso significa que - quando depurar um aplicativo ou biblioteca que foi compilado - com informação de depuração, o depurador pode fornecer não - apenas endereços de memória, mas também os nomes das rotinas e - variáveis. -

-

- Entretanto, a inclusão desses símbolos de depuração alarga um - aplicativo ou biblioteca significativamente. O seguinte é um - exemplo da quantidade de espaço que esses símbolos ocupam: -

-
-
    -
  • -

    - Um binário bash com símbolos de - depuração: 1200 KB -

    -
  • -
  • -

    - Um binário bash sem símbolos de - depuração: 480 KB -

    -
  • -
  • -

    - Arquivos do Glibc e GCC (/lib e /usr/lib) com símbolos de depuração: 87 - MB -

    -
  • -
  • -

    - Arquivos do Glibc e GCC sem símbolos de depuração: 16 MB -

    -
  • -
-
-

- Tamanhos talvez variem dependendo de qual compilador e - biblioteca C foram usados, mas quando comparar aplicativos com - e sem símbolos de depuração, a diferença geralmente será um - fator entre dois e cinco. -

-

- Como a maioria das(os) usuárias(os) nunca usará um depurador no - aplicativo de sistema delas(es), um monte de espaço de disco - pode ser recuperado removendo esses símbolos. A próxima seção - mostra como remover todos os símbolos de depuração dos - aplicativos e bibliotecas. -

-
-
-
-
-
-

- 8.78. Despojando -

-
-
-
-

- Esta seção é opcional. Se a(o) pretensa(o) usuária(o) não for - uma(m) programadora(r) e não planeja fazer qualquer depuração - nos aplicativos do sistema, então o tamanho do sistema pode ser - reduzido em cerca de 2 GB removendo os símbolos de depuração de - binários e bibliotecas. Isso não causa nenhum inconveniente - além de não mais poder depurar os aplicativos completamente. -

-

- A maioria das pessoas que usam os comandos mencionados abaixo - não experimenta quaisquer dificuldades. Entretanto, é fácil - cometer um erro de digitação e tornar o novo sistema - inutilizável, de forma que, antes de executar os comandos - strip, é uma boa - ideia produzir uma cópia de segurança do sistema LFS no estado - atual dele. -

-

- Os símbolos de depuração para bibliotecas selecionadas estão - colocados em arquivos separados. Essa informação de depuração é - necessária se executar testes de regressão que usam - valgrind ou - gdb posteriormente em BLFS. -

-

- Observe que strip - sobrescreverá o arquivo de binário ou biblioteca que ele está - processando. Isso pode quebrar os processos usando código ou - dados oriundos do arquivo. Se o próprio processo executando o - strip for - afetado, então o binário ou biblioteca sendo despojado pode ser - destruído e pode tornar o sistema completamente inutilizável. - Para evitar isso, nós copiaremos algumas bibliotecas e binários - para /tmp, despojaremos elas lá, - e instalaremos elas de volta com o comando install. Leia a entrada - relacionada em Seção 8.2.1, - “Problemas de Atualização” para a justificativa - para usar o comando install aqui. -

-
-

- Nota -

-

- O nome do carregador de ELF é ld-linux-x86-64.so.2 em - sistemas de 64 bits e ld-linux.so.2 em sistemas de 32 bits. A - construção abaixo seleciona o nome correto para a arquitetura - atual. -

-
-
save_usrlib="$(cd /usr/lib; ls ld-linux*)
-             libc.so.6
-             libthread_db.so.1
-             libquadmath.so.0.0.0
-             libstdc++.so.6.0.29
-             libitm.so.1.0.0
-             libatomic.so.1.2.0"
-
-cd /usr/lib
-
-for LIB in $save_usrlib; do
-    objcopy --only-keep-debug $LIB $LIB.dbg
-    cp $LIB /tmp/$LIB
-    strip --strip-unneeded /tmp/$LIB
-    objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB
-    install -vm755 /tmp/$LIB /usr/lib
-    rm /tmp/$LIB
-done
-
-online_usrbin="bash find strip"
-online_usrlib="libbfd-2.38.so
-               libhistory.so.8.1
-               libncursesw.so.6.3
-               libm.so.6
-               libreadline.so.8.1
-               libz.so.1.2.11
-               $(cd /usr/lib; find libnss*.so* -type f)"
-
-for BIN in $online_usrbin; do
-    cp /usr/bin/$BIN /tmp/$BIN
-    strip --strip-unneeded /tmp/$BIN
-    install -vm755 /tmp/$BIN /usr/bin
-    rm /tmp/$BIN
-done
-
-for LIB in $online_usrlib; do
-    cp /usr/lib/$LIB /tmp/$LIB
-    strip --strip-unneeded /tmp/$LIB
-    install -vm755 /tmp/$LIB /usr/lib
-    rm /tmp/$LIB
-done
-
-for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \
-         $(find /usr/lib -type f -name \*.a)                 \
-         $(find /usr/{bin,sbin,libexec} -type f); do
-    case "$online_usrbin $online_usrlib $save_usrlib" in
-        *$(basename $i)* )
-            ;;
-        * ) strip --strip-unneeded $i
-            ;;
-    esac
-done
-
-unset BIN LIB save_usrlib online_usrbin online_usrlib
-
-

- Um número grande de arquivos serão relatados como tendo o - formato de arquivo deles não reconhecido. Esses avisos podem - ser seguramente ignorados. Eles indicam que aqueles arquivos - são scripts em vez de binários. -

-
-
-
-
-
-

- 8.79. Limpando -

-
-
-
-

- Finalmente, limpe alguns arquivos extra deixados pela execução - de testes: -

-
rm -rf /tmp/*
-

- Existem também muitos arquivos instalados nos diretórios - /usr/lib e /usr/libexec com uma extensão de nome de arquivo de - .la. Esses são arquivos "libtool archive". Como já dito, eles - somente são úteis quando vincular com bibliotecas estáticas. - Eles são desnecessários, e potencialmente danosos, quando se - usar bibliotecas compartilhadas dinâmicas, especialmente quando - se usar também sistemas de construção não autotools. Para - remover eles, execute: -

-
find /usr/lib /usr/libexec -name \*.la -delete
-

- Para mais informação acerca de arquivos libtool archive, veja a - - seção de BLFS "About Libtool Archive (.la) files". -

-

- O compilador construído em Capítulo 6 - e - Capítulo 7 ainda está instalado parcialmente e não é - mais necessário. Remova ele com: -

-
find /usr -depth -name $(uname -m)-lfs-linux-gnu\* | xargs rm -rf
-

- Por fim, remova a conta de usuária(o) 'tester' temporária - criada no início do capítulo anterior. -

-
userdel -r tester
-
-
-
-
-
-
-

- Capítulo 9. Configuração do - Sistema -

-
-
-
-
-
-
-
-

- 9.1. Introdução -

-
-
-
-

- Este capítulo discute arquivos de configuração e serviços do - systemd. Primeiro, os arquivos de configuração gerais - necessários para configurar rede são apresentados. -

- -

- Segundo, problemas que afetam a configuração adequada de - dispositivos são discutidos. -

- -

- Terceiro, configurar o relógio do sistema e esquema de teclado - é mostrado. -

- -

- Quarto, uma introdução breve aos scripts e arquivos de - configuração usados quando a(o) usuária(o) se loga no sistema é - apresentado. -

- -

- E finalmente, configurar o comportamento do systemd é - discutido. -

- -
-
-
-
-
-

- 9.2. Configuração de Rede - Geral -

-
-
-
-

- Esta seção somente se aplica se uma placa de rede é para ser - configurada. -

-
-

- 9.2.1. Arquivos de Configuração de Interface de Rede -

-

- Iniciando com a versão 209, o systemd envia um daemon de - configuração de rede chamado systemd-networkd o qual - pode ser usado para configuração de rede básica. - Adicionalmente, desde a versão 213, resolução de nome de DNS - pode ser lidada por systemd-resolved em lugar - de um arquivo /etc/resolv.conf - estático. Ambos os serviços são habilitados por padrão. -

-

- Arquivos de configuração para systemd-networkd (e - systemd-resolved) podem ser - colocados em /usr/lib/systemd/network ou /etc/systemd/network. Arquivos em - /etc/systemd/network tem uma - prioridade mais alta que aqueles em /usr/lib/systemd/network. Existem três - tipos de arquivos de configuração: arquivos .link, .netdev e .network. Para descrições detalhadas e - conteúdo de exemplo desses arquivos de configuração, consulte - as páginas de manual systemd-link(5), systemd-netdev(5) e systemd-network(5). -

-
-
-
-
-

- 9.2.1.1. Nomeando - Dispositivo de Rede -

-
-
-
-

- Udev normalmente atribui nomes de interface de placa de - rede baseados em características de sistema físicas tais - como enp2s1. Se você não está certa(o) acerca do que é o - nome de sua interface, então você sempre pode executar - ip link após - você ter inicializado seu sistema. -

-
-

- Nota -

-

- Os nomes de interface dependem da implementação e - configuração do daemon udev em execução no sistema. O - daemon udev para LFS (systemd-udevd, - instalado na Seção 8.71, - “Systemd-250”), não executará a menos que - o sistema LFS seja inicializado. Assim, não é confiável - determinar os nomes de interface sendo usados no sistema - LFS executando aqueles comandos na distribuição anfitriã, - mesmo que você esteja no - ambiente chroot. -

-
-

- Para a maioria dos sistemas, existe apenas uma interface de - rede para cada tipo de conexão. Por exemplo, o nome de - interface clássico para uma conexão com fios é eth0. Uma - conexão sem fios usualmente terá o nome wifi0 ou wlan0. -

-

- Se você preferir usar os nomes de interface de rede - clássicos ou personalizados, então existem três caminhos - alternativos para fazer isso: -

-
-
    -
  • -

    - Mascarar o arquivo .link do udev para a política - padrão: -

    -
    ln -s /dev/null /etc/systemd/network/99-default.link
    -
  • -
  • -

    - Criar um esquema de nomenclatura manual, por exemplo - nomeando as interfaces com alguma coisa como - "internet0", "dmz0" ou "lan0". Para fazer isso, crie - arquivos .link em /etc/systemd/network/ que - selecionem um nome explícito ou um esquema de - nomenclatura melhor para suas interfaces de rede. Por - exemplo: -

    -
    cat > /etc/systemd/network/10-ether0.link << "EOF"
    -[Match]
    -# Change the MAC address as appropriate for your network device
    -MACAddress=12:34:45:78:90:AB
    -
    -[Link]
    -Name=ether0
    -EOF
    -

    - Veja a página de manual systemd.link(5) para mais - informação. -

    -
  • -
  • -

    - Em /boot/grub/grub.cfg, passe a opção net.ifnames=0 - na linha de comando do kernel. -

    -
  • -
-
-
-
-
-
-
-

- 9.2.1.2. - Configuração de IP Estático -

-
-
-
-

- O comando abaixo cria um arquivo de configuração básico - para uma configuração de IP Estático (usando ambos - systemd-networkd e systemd-resolved): -

-
cat > /etc/systemd/network/10-eth-static.network << "EOF"
-[Match]
-Name=<network-device-name>
-
-[Network]
-Address=192.168.0.2/24
-Gateway=192.168.0.1
-DNS=192.168.0.1
-Domains=<Your Domain Name>
-EOF
-

- Múltiplas entradas de DNS podem ser adicionadas se você - tiver mais que um servidor de DNS. Não inclua entradas de - DNS ou Domínios se você pretende usar um arquivo - /etc/resolv.conf estático. -

-
-
-
-
-
-

- 9.2.1.3. - Configuração de DHCP -

-
-
-
-

- O comando abaixo cria um arquivo de configuração básico - para uma configuração de DHCP IPv4: -

-
cat > /etc/systemd/network/10-eth-dhcp.network << "EOF"
-[Match]
-Name=<network-device-name>
-
-[Network]
-DHCP=ipv4
-
-[DHCP]
-UseDomains=true
-EOF
-
-
-
-

- 9.2.2. Criando o - Arquivo /etc/resolv.conf -

-

- Se o sistema será conectado à Internet, então ele precisará - de alguns meios de resolução de nome do Domain Name Service - (DNS) para resolver nomes de domínio da Internet para - endereços de IP e vice versa. Isso é melhor alcançado - colocando-se o endereço de IP do servidor de DNS, disponível - a partir do ISP ou administradora(r) de rede, no /etc/resolv.conf. -

-
-
-
-
-

- 9.2.2.1. - Configuração do systemd-resolved -

-
-
-
-
-

- Nota -

-

- Se usar métodos incompatíveis com systemd-resolved para - configurar suas interfaces de rede (ex.: ppp, etc.); ou - se usar qualquer tipo de resolvedor local (ex.: bind, - dnsmasq, unbound, etc.); ou qualquer outro aplicativo que - gere um /etc/resolv.conf - (ex.: um aplicativo resolvconf outro - diferente daquele fornecido pelo systemd), então o - serviço systemd-resolved não - deveria ser usado. -

-

- Para desabilitar systemd-resolved, execute o seguinte - comando: -

-
systemctl disable systemd-resolved
-
-

- Quando se usa o systemd-resolved para - configuração de DNS, ele cria o arquivo /run/systemd/resolve/stub-resolv.conf. E, - se /etc/resolv.conf não - existir, ele será criado pelo systemd-resolved como um - link simbólico para /run/systemd/resolve/stub-resolv.conf. - Então, é desnecessário criar um /etc/resolv.conf manualmente. -

-
-
-
-
-
-

- 9.2.2.2. Configuração - resolv.conf Estática -

-
-
-
-

- Se um /etc/resolv.conf - estático for desejado, então crie ele executando o seguinte - comando: -

-
cat > /etc/resolv.conf << "EOF"
-# Begin /etc/resolv.conf
-
-domain <Your Domain Name>
-nameserver <IP address of your primary nameserver>
-nameserver <IP address of your secondary nameserver>
-
-# End /etc/resolv.conf
-EOF
-

- A declaração domain pode ser - omitida ou substituída com uma declaração search. Veja-se a página de manual para - resolv.conf para mais detalhes. -

-

- Substitua <IP address of - the nameserver> com o endereço de IP do - servidor DNS mais apropriado para sua configuração. - Frequentemente existirá mais que uma entrada (exigências - demandam servidores secundários para capacidade de - substituto). Se você precisa ou quer apenas um servidor - DNS, então remova a segunda linha nameserver do arquivo. O - endereço de IP também talvez seja um roteador na rede - local. Outra opção é usar o serviço de DNS Google Public - usando os endereços de IP abaixo como servidores de nome. -

-
-

- Nota -

-

- Os endereços DNS IPv4 do Google Public são 8.8.8.8 e 8.8.4.4 para IPv4; e - 2001:4860:4860::8888 e - 2001:4860:4860::8844 para - IPv6. -

-
-
-
-
-

- 9.2.3. Configurando o nome de - dispositivo do sistema -

-

- Durante o processo de inicialização, o arquivo /etc/hostname é usado para estabelecer o - nome de dispositivo do sistema. -

-

- Crie o arquivo /etc/hostname e - informe um nome de dispositivo executando: -

-
echo "<lfs>" > /etc/hostname
-

- <lfs> precisa - ser substituído com o nome dado para o computador. Não - informe o Fully Qualified Domain Name (FQDN) aqui. Essa - informação é colocada no arquivo /etc/hosts. -

-
-
-

- 9.2.4. - Personalizando o Arquivo /etc/hosts -

-

- Decida acerca de um fully-qualified domain name (FQDN), e - possíveis apelidos para uso no arquivo /etc/hosts. Se usar endereços de IP - estáticos, então você também precisará decidir acerca de um - endereço de IP. A sintaxe para uma entrada de arquivo hosts - é: -

-
IP_address myhost.example.org aliases
-

- A menos que o computador seja para estar visível para a - Internet (por exemplo, existe um domínio registrado e um - bloco válido de endereços de IP atribuídos—a maioria - das(os) usuárias(os) não tem isso), assegure-se de que o - endereço de IP está no intervalo de endereço de IP de rede - privado. Intervalos válidos são: -

-
Intervalo de Endereço de Rede Privado    Prefixo Normal
-10.0.0.1 - 10.255.255.254               8
-172.x.0.1 - 172.x.255.254               16
-192.168.y.1 - 192.168.y.254             24
-

- x pode ser qualquer número no intervalo 16-31. y pode ser - qualquer número no intervalo 0-255. -

-

- Um endereço de IP privado válido poderia ser 192.168.1.1. Um - FQDN válido para esse IP poderia ser lfs.example.org. -

-

- Mesmo se não se usar uma placa de rede, um FQDN válido ainda - é exigido. Isso é necessário para determinados aplicativos, - tais como MTAs, operarem adequadamente. -

-

- Crie o arquivo /etc/hosts - usando o seguinte comando: -

-
cat > /etc/hosts << "EOF"
-# Begin /etc/hosts
-
-127.0.0.1 localhost.localdomain localhost
-127.0.1.1 <FQDN> <HOSTNAME>
-<192.168.0.2> <FQDN> <HOSTNAME> [alias1] [alias2] ...
-::1       localhost ip6-localhost ip6-loopback
-ff02::1   ip6-allnodes
-ff02::2   ip6-allrouters
-
-# End /etc/hosts
-EOF
-

- Os valores <192.168.0.2>, - <FQDN> e - <HOSTNAME> - precisam ser mudados para usuárias(os) ou exigências - específicas(os) (se atribuído um endereço de IP por uma(m) - administradora(r) de rede/sistema e a máquina estará - conectada a uma rede existente). O(s) nome(s) de apelido(s) - opcional(is) pode(m) ser omitido(s), e a linha <192.168.0.2> pode ser - omitida se você estiver usando uma conexão configurada com - DHCP ou IPv6 Autoconfiguration. -

-

- A entrada ::1 é o homônimo IPv6 do 127.0.0.1 e representa a - interface de loopback IPv6. 127.0.1.1 é uma entrada de - loopback reservada especificamente para o FQDN. -

-
-
-
-
-
-
-

- 9.3. Visão Geral do Manuseio - de Dispositivos e Módulos -

-
-
-
-

- No Capítulo 8, - nós instalamos o pacote udev quando systemd foi construído. Antes de entrarmos em - detalhes referentes a como isso funciona, um histórico breve - dos métodos anteriores de manuseio de dispositivos é oportuno. -

-

- Sistemas Linux em geral tradicionalmente usavam um método de - criação de dispositivo estático, pelo qual muitos nós de - dispositivos eram criados sob /dev (as vezes literalmente milhares de nós), - independente de se os dispositivos de hardware correspondentes - atualmente existissem. Isso tipicamente era feito via um script - MAKEDEV, o qual - contém um número de chamadas ao aplicativo mknod com os números de - dispositivo principal e secundário relevantes para cada - dispositivo possível que pudesse existir no mundo. -

-

- Usando o método udev, somente aqueles dispositivos os quais são - detectados pelo kernel obtém nós de dispositivo criados para - eles. Como esses nós de dispositivo serão criados a cada vez - que o sistema inicializar, eles serão armazenados em um sistema - de arquivos devtmpfs (um - sistema de arquivos virtual que reside inteiramente na memória - do sistema). Nós de dispositivo não exigem muito espaço, de - forma que a memória que é usada é insignificante. -

-
-

- 9.3.1. Histórico -

-

- Em fevereiro 2000, um novo sistema de arquivos chamado - devfs foi mesclado no kernel - 2.3.46 e foi feito disponível durante as séries 2.4 de - kernels estáveis. Embora ele estivesse presente no próprio - fonte do kernel, esse método de criar dispositivos - dinamicamente nunca recebeu suporte decisivo das(os) - desenvolvedoras(es) do kernel centrais. -

-

- O problema principal com a abordagem adotada pelo - devfs era a maneira como ele - lidava com detecção, criação e nomenclatura de dispositivo. O - último problema, esse da nomenclatura de nó de dispositivo, - era talvez o mais crítico. É aceito geralmente que, se nomes - de dispositivo são passíveis de serem configuráveis, então a - política de nomenclatura de dispositivo esteja a cargo de - uma(m) administradora(r) do sistema, não imposta sobre - elas(es) por (quais)qualquer desenvolvedoras(r(es)) - específicas(o(s)). O sistema de arquivos devfs também sofria com algumas condições - que eram inerentes ao projeto dele e não poderiam ser - consertadas sem uma revisão substancial do kernel. Ele ficou - marcado como obsoleto por um longo período – e foi - finalmente removido do kernel em junho de 2006. -

-

- Com o desenvolvimento da árvore do kernel 2.5 instável, - liberada posteriormente como as séries 2.6 dos kernels - estáveis, um novo sistema de arquivos virtual chamado - sysfs veio a existir. O - trabalho do sysfs é o de - exportar uma visão da configuração de hardware do sistema - para processos de espaço de usuária(o). Com essa - representação visível ao espaço de usuária(o), a - possibilidade de desenvolvimento de um substituto de espaço - de usuária(o) para o devfs - tornou-se muito mais realista. -

-
-
-

- 9.3.2. Implementação do Udev -

-
-
-
-
-

- 9.3.2.1. Sysfs -

-
-
-
-

- O sistema de arquivos sysfs - foi mencionado brevemente acima. Alguém talvez questione - como o sysfs sabe sobre os - dispositivos presentes em um sistema e quais números de - dispositivo deveriam ser usados para eles. Controladores - que tenham sido compilados diretamente no kernel registram - os objetos deles com um sysfs (devtmpfs internamente) assim que - eles são detectados pelo kernel. Para controladores - compilados como módulos, esse registro acontecerá quando o - módulo for carregado. Assim que o sistema de arquivos - sysfs for montado (em - /sys), os dados os quais os controladores registram com - sysfs ficam disponíveis - para os processos de espaço de usuária(o) e para udevd para - processamento (incluindo modificações para nós de - dispositivo). -

-
-
-
-
-
-

- 9.3.2.2. Criação de Nó de - Dispositivo -

-
-
-
-

- Arquivos de dispositivo são criados pelo kernel por meio do - sistema de arquivos devtmpfs. Qualquer controlador que - deseje registrar um nó de dispositivo usará o devtmpfs (via o núcleo do controlador) - para fazê-lo. Quando uma instância do devtmpfs é montada em /dev, o nó de dispositivo inicialmente - será criado com um nome, permissões e proprietária(o) - fixos. -

-

- Pouco tempo depois, o kernel enviará um uevent para - udevd. - Baseado nas regras especificadas nos arquivos dentro dos - diretórios /etc/udev/rules.d, - /usr/lib/udev/rules.d e - /run/udev/rules.d, - udevd criará - links simbólicos adicionais para o nó de dispositivo, ou - mudará as permissões, proprietária(o), ou grupo deles, ou - modificará a entrada de banco de dados do udevd interna (nome) para - aquele objeto. -

-

- As regras nesses três diretórios são numeradas e todos os - três diretórios são mesclados. Se udevd não puder encontrar - uma regra para o dispositivo que ele está criando, então - ele deixará as permissões e propriedade no que devtmpfs usou inicialmente. -

-
-
-
-
-
-

- 9.3.2.3. Carregamento de - Módulo -

-
-
-
-

- Controladores de dispositivo compilados como módulos talvez - tenham apelidos construídos dentro deles. Apelidos são - visíveis na saída do aplicativo modinfo e geralmente - estão relacionados aos identificadores específicos ao - barramento dos dispositivos suportados por um módulo. Por - exemplo, o controlador snd-fm801 suporta dispositivos - PCI com ID de fornecedor 0x1319 e ID de dispositivo 0x0801, - e tem um apelido de pci:v00001319d00000801sv*sd*bc04sc01i*. - Para a maioria dos dispositivos, o controlador de - barramento exporta o apelido do controlador que lidaria com - o dispositivo via sysfs. - Por exemplo, o arquivo /sys/bus/pci/devices/0000:00:0d.0/modalias - pode conter a sequência de caracteres pci:v00001319d00000801sv00001319sd00001319bc04sc01i00. - As regras padrão fornecidas com udev causarão udevd chamar /sbin/modprobe com o - conteúdo da variável de ambiente do uevent MODALIAS (o qual deveria ser o mesmo que o - conteúdo do arquivo modalias - em sysfs), dessa forma carregando todos os módulos cujos - apelidos correspondem a essa sequência de caracteres depois - da expansão de carácter curinga. -

-

- Nesse exemplo, isso significa que, em adição a snd-fm801, o obsoleto (e - indesejado) controlador forte será carregado se ele - estiver disponível. Veja abaixo maneiras pelas quais o - carregamento de controladores indesejados pode ser evitado. -

-

- O próprio kernel também é capaz de carregar módulos para - protocolos de rede, sistemas de arquivos e suporte NLS sob - demanda. -

-
-
-
-
-
-

- 9.3.2.4. Lidando com - Dispositivos Plugáveis a Quente/Dinâmicos -

-
-
-
-

- Quando você conecta um dispositivo, como um tocador de MP3 - Universal Serial Bus (USB), o kernel reconhece que o - dispositivo agora está conectado e gera um uevent. Esse - uevent é então tratado pelo udevd como descrito - acima. -

-
-
-
-

- 9.3.3. Problemas ao Carregar Módulos e Criar Dispositivos -

-

- Existem uns poucos possíveis problemas quando se trata de - criar automaticamente nós de dispositivos. -

-
-
-
-
-

- 9.3.3.1. Um módulo do kernel não - é carregado automaticamente -

-
-
-
-

- O Udev só carregará um módulo se ele tiver um apelido - específico a barramento e o controlador de barramento - exportar adequadamente os apelidos necessários para - sysfs. Em outros casos, - deve-se organizar o carregamento de módulo por outros - meios. Com o Linux-5.16.9, udev é conhecido por carregar - controladores escritos adequadamente para dispositivos - INPUT, IDE, PCI, USB, SCSI, SERIO e FireWire. -

-

- Para determinar se o controlador de dispositivo que você - exige tem o suporte necessário para udev, execute - modinfo com o - nome de módulo como o argumento. Agora tente localizar o - diretório de dispositivo sob /sys/bus e verifique se existe um arquivo - modalias lá. -

-

- Se o arquivo modalias existir - em sysfs, então o - controlador suporta o dispositivo e pode falar com ele - diretamente, mas não tem o apelido, isso é um defeito no - controlador. Carregue o controlador sem a ajuda do udev e - espere que o problema seja consertado posteriormente. -

-

- Se não existir arquivo modalias no diretório relevante sob - /sys/bus, então isso - significa que as(os) desenvolvedoras(es) do kernel ainda - não adicionaram suporte modalias para esse tipo de - barramento. Com Linux-5.16.9, esse é o caso com barramentos - ISA. Espere que esse problema seja consertado em versões do - kernel posteriores. -

-

- Udev não é planejado para carregar controladores - encapsuladores, tais como - snd-pcm-oss, e - controladores não hardware, tais como loop, de maneira alguma. -

-
-
-
-
-
-

- 9.3.3.2. Um módulo do kernel não - é carregado automaticamente, e udev não é planejado - para carregar ele -

-
-
-
-

- Se o módulo encapsulador apenas aprimora a - funcionalidade fornecida por algum outro módulo (por - exemplo, snd-pcm-oss - aprimora a funcionalidade de snd-pcm tornando as placas de - som disponíveis para aplicações OSS), então configure - modprobe para - carregar o encapsulador após o udev carregar o módulo - encapsulado. Para fazer isso, adicione uma linha - softdep ao arquivo - /etc/modprobe.d/<filename>.conf - correspondente. Por exemplo: -

-
softdep snd-pcm post: snd-pcm-oss
-

- Observe que o comando softdep também permite - dependências pre:, ou uma - mistura de ambas as dependências pre: e post:. - Veja-se a página de manual modprobe.d(5) para mais informação sobre - a sintaxe e capacidades softdep. -

-
-
-
-
-
-

- 9.3.3.3. Udev carrega algum - módulo indesejado -

-
-
-
-

- Ou não construa o módulo, ou coloque-o na lista negra em um - arquivo /etc/modprobe.d/blacklist.conf como feito - com o módulo forte - no exemplo abaixo: -

-
blacklist forte
-

- Módulos em listas negras ainda podem ser carregados - manualmente com o comando explícito modprobe. -

-
-
-
-
-
-

- 9.3.3.4. Udev cria um - dispositivo incorretamente, ou faz um link simbólico - errado -

-
-
-
-

- Isso geralmente acontece se uma regra inesperadamente - corresponder com um dispositivo. Por exemplo, uma regra mal - escrita pode corresponder com ambos um disco SCSI (como - desejado) e o dispositivo genérico SCSI correspondente - (incorretamente) pelo fornecedor. Encontre a regra - infratora e torne-a mais específica, com a ajuda do comando - udevadm info. -

-
-
-
-
-
-

- 9.3.3.5. Regra do Udev funciona - de forma não confiável -

-
-
-
-

- Isso talvez seja outra manifestação do problema anterior. - Se não, e sua regra usar atributos do sysfs, então isso talvez seja um - problema de temporização do kernel, a ser consertado em - kernels posteriores. Por hora, você pode contornar ele - criando uma regra que aguarda o atributo do sysfs usado e adiciona ele ao arquivo - /etc/udev/rules.d/10-wait_for_sysfs.rules - (crie esse arquivo se ele não existir). Por favor notifique - a lista LFS Development se você o fizer e isso ajudar. -

-
-
-
-
-
-

- 9.3.3.6. Udev não cria um - dispositivo -

-
-
-
-

- O texto adicional assume que o driver está construído - estaticamente dentro do kernel ou já carregado como um - módulo, e que você já verificou que o udev não cria um - dispositivo mal nomeado. -

-

- Udev não tem informação necessária para criar um nó de - dispositivo se um controlador de kernel não exportar os - dados dele para o sysfs. - Isso é mais comum com controladores terceirizados oriundos - de fora da árvore do kernel. Crie um nó de dispositivo - estático em /usr/lib/udev/devices com os números - principal/secundário apropriados (veja o arquivo - devices.txt dentro da - documentação do kernel ou a documentação fornecida pela(o) - fornecedora(r) de controlador terceirizado). O nó de - dispositivo estático será copiado para /dev por udev. -

-
-
-
-
-
-

- 9.3.3.7. Ordem de nomenclatura - de dispositivo muda aleatoriamente após reinicializar -

-
-
-
-

- Isso é devido ao fato de o udev, pelo projeto, lidar com - uevents e carregar módulos em paralelo, e assim em uma - ordem imprevisível. Isso nunca será consertado. Você não deveria - confiar que os nomes de dispositivos do kernel sejam - estáveis. Em vez disso, crie suas próprias regras que fazem - links simbólicos com nomes estáveis baseados em alguns - atributos estáveis do dispositivo, tais como um número de - série ou a saída dos vários utilitários *_id instalados - pelo udev. Veja-se a Seção 9.4, - “Gerenciando Dispositivos” e Seção 9.2, - “Configuração de Rede Geral” para exemplos. -

-
-
-
-

- 9.3.4. Leitura Útil -

-

- Documentação útil adicional está disponível nos seguintes - sítios: -

- -
-
-
-
-
-
-

- 9.4. Gerenciando - Dispositivos -

-
-
-
-
-

- 9.4.1. Lidando com dispositivos duplicados -

-

- Como explicado na Seção 9.3, - “Visão Geral do Manuseio de Dispositivos e - Módulos”, a ordem na qual dispositivos com a mesma - função aparecem em /dev é - essencialmente aleatória. Por exemplo, se você tem uma câmera - web USB e um sintonizador de TV, as vezes /dev/video0 se refere à câmera e - /dev/video1 se refere ao - sintonizador, e as vezes após uma reinicialização a ordem - muda. Para todas as classes de hardware, exceto placas de som - e placas de rede, isso é consertável criando regras do udev - para links simbólicos persistentes personalizados. O caso das - placas de rede é abordado separadamente na Seção 9.2, - “Configuração de Rede Geral”, e configuração - de placa de som pode ser encontrado em - BLFS. -

-

- Para cada um dos seus dispositivos que é provável ter esse - problema (mesmo que o problema não exista em sua distribuição - Linux atual), encontre o diretório correspondente sob - /sys/class ou /sys/block. Para dispositivos de vídeo, - isso talvez seja /sys/class/video4linux/videoX. Descubra os - atributos que identificam o dispositivo de maneira única - (geralmente, IDs de fornecedor e produto e (ou) números - seriais funcionam): -

-
udevadm info -a -p /sys/class/video4linux/video0
-

- Então escreva regras que criam os links simbólicos, por - exemplo: -

-
cat > /etc/udev/rules.d/83-duplicate_devs.rules << "EOF"
-
-# Persistent symlinks for webcam and tuner
-KERNEL=="video*", ATTRS{idProduct}=="1910", ATTRS{idVendor}=="0d81", SYMLINK+="webcam"
-KERNEL=="video*", ATTRS{device}=="0x036f",  ATTRS{vendor}=="0x109e", SYMLINK+="tvtuner"
-
-EOF
-

- O resultado é que os dispositivos /dev/video0 e /dev/video1 ainda se referem aleatoriamente - ao sintonizador e à câmera web (e, portanto, nunca deveriam - ser usados diretamente), mas existem links simbólicos - /dev/tvtuner e /dev/webcam que sempre apontam para o - dispositivo correto. -

-
-
-
-
-
-
-

- 9.5. Configurando o relógio - do sistema -

-
-
-
-

- Esta seção discute como configurar o serviço de sistema - systemd-timedated, o qual - configura o relógio e fuso horário do sistema. -

-

- Se você não conseguir se lembrar se ou não o relógio do - hardware está configurado para UTC, [então] descubra executando - o comando hwclock --localtime - --show. Isso mostrará o que a hora atual é de - acordo com o relógio do hardware. Se essa hora corresponder à - que o seu relógio diz, então o relógio do hardware está - configurado para hora local. Se a saída originária do - hwclock não for a - hora local, [então] as chances são que ele esteja configurado - para hora UTC. Verifique isso adicionando ou subtraindo a - quantidade apropriada de horas para o fuso horário à (da) hora - mostrada pelo hwclock. Por exemplo, se você - estiver atualmente no fuso horário MST, o qual é conhecido - também como GMT -0700, [então] adicione sete horas à hora - local. -

-

- O systemd-timedated lê - /etc/adjtime, e, dependendo do - conteúdo do arquivo, configura o relógio para ou UTC ou hora - local. -

-

- Crie o arquivo /etc/adjtime com o - seguinte conteúdo se seu relógio do hardware estiver - configurado para hora local: -

-
cat > /etc/adjtime << "EOF"
-0.0 0 0.0
-0
-LOCAL
-EOF
-

- Se /etc/adjtime não estiver - presente na primeira inicialização, [então] systemd-timedated assumirá - que o relógio do hardware está configurado para UTC e ajustará - o arquivo de acordo com isso. -

-

- Você também pode usar o utilitário timedatectl para dizer ao - systemd-timedated - se o seu relógio do hardware está configurado para UTC ou hora - local: -

-
timedatectl set-local-rtc 1
-

- O timedatectl - também pode ser usado para mudar a hora e fuso horário do - sistema. -

-

- Para mudar sua atual hora do sistema, emita: -

-
timedatectl set-time YYYY-MM-DD HH:MM:SS
-

- O relógio do hardware também será atualizado de acordo. -

-

- Para mudar seu atual fuso horário, emita: -

-
timedatectl set-timezone TIMEZONE
-

- Você pode obter uma lista dos fusos horários disponíveis - executando: -

-
timedatectl list-timezones
-
-

- Nota -

-

- Por favor observe que o comando timedatectl não funciona no - ambiente chroot. Ele somente pode ser usado depois que o - sistema LFS for inicializado com o systemd. -

-
-
-

- 9.5.1. Sincronização da Hora da Rede -

-

- Iniciando com a versão 213, o systemd envia um daemon chamado - systemd-timesyncd o qual - pode ser usado para sincronizar a hora do sistema com - servidores do NTP remotos. -

-

- O daemon não é concebido como um substituto para o bem - estabelecido daemon do NTP, porém como uma implementação - somente cliente do protocolo SNTP o qual pode ser usado para - tarefas menos avançadas e em sistemas de recurso limitado. -

-

- Iniciando com o systemd versão 216, o daemon systemd-timesyncd está - habilitado por padrão. Se você desejar desabilitar ele, - [então] emita o seguinte comando: -

-
systemctl disable systemd-timesyncd
-

- O arquivo /etc/systemd/timesyncd.conf pode ser usado - para mudar os servidores do NTP que o systemd-timesyncd - sincroniza com. -

-

- Por favor observe que, quando o relógio do sistema estiver - configurado para Hora Local, [então] o systemd-timesyncd não - atualizará o relógio do hardware. -

-
-
-
-
-
-
-

- 9.6. Configurando o Console - do Linux -

-
-
-
-

- Esta seção discute como configurar o serviço de sistema - systemd-vconsole-setup, o - qual configura a fonte de console virtual e mapa de tecla de - console. -

-

- O serviço systemd-vconsole-setup lê o - arquivo /etc/vconsole.conf para - informação de configuração. Decida qual mapa de tecla e fonte - de tela será usada. Vários HOWTOs específicos de idioma também - podem ajudar com isso, veja-se http://www.tldp.org/HOWTO/HOWTO-INDEX/other-lang.html. - Examine a saída de localectl - list-keymaps para uma lista dos mapas de tecla - de console válidos. Olhe no diretório /usr/share/consolefonts para fontes de tela - válidas. -

-

- O arquivo /etc/vconsole.conf - deveria conter linhas da forma: VARIÁVEL="valor". As seguintes - variáveis são reconhecidas: -

-
-
-
- KEYMAP -
-
-

- Essa variável especifica a tabela de mapeamento de tecla - para o teclado. Se desconfigurada, [então] ela padroniza - para us. -

-
-
- KEYMAP_TOGGLE -
-
-

- Essa variável pode ser usada para configurar um segundo - mapa de tecla de alternância e é desconfigurada por - padrão. -

-
-
- FONT -
-
-

- Essa variável especifica a fonte usada pelo console - virtual. -

-
-
- FONT_MAP -
-
-

- Essa variável especifica o mapa de console para ser - usado. -

-
-
- FONT_UNIMAP -
-
-

- Essa variável especifica o mapa de fonte Unicode. -

-
-
-
-

- Um exemplo para um teclado e console alemão é dado abaixo: -

-
cat > /etc/vconsole.conf << "EOF"
-KEYMAP=de-latin1
-FONT=Lat2-Terminus16
-EOF
-

- Você pode mudar o valor KEYMAP em tempo de execução usando o - utilitário localectl: -

-
localectl set-keymap MAP
-
-

- Nota -

-

- Por favor observe que o comando localectl não funciona no - ambiente chroot. Ele somente pode ser usado depois que o - sistema LFS for inicializado com o systemd. -

-
-

- Você também pode usar o utilitário localectl com os parâmetros - correspondentes para mudar o esquema, modelo, variante e opções - de teclado do X11: -

-
localectl set-x11-keymap LAYOUT [MODEL] [VARIANT] [OPTIONS]
-

- Para listar possíveis valores para os parâmetros do - localectl - set-x11-keymap, execute localectl com os parâmetros - listados abaixo: -

-
-
-
- list-x11-keymap-models -
-
-

- Mostra modelos de mapeamento de teclado do X11 - conhecidos. -

-
-
- list-x11-keymap-layouts -
-
-

- Mostra esquemas de mapeamento de teclado do X11 - conhecidos. -

-
-
- list-x11-keymap-variants -
-
-

- Mostra variantes de mapeamento de teclado do X11 - conhecidas. -

-
-
- list-x11-keymap-options -
-
-

- Mostra opções de mapeamento de teclado do X11 conhecidas. -

-
-
-
-
-

- Nota -

-

- Usar quaisquer dos parâmetros listados acima exige o pacote - XKeyboard-Config originário do BLFS. -

-
-
-
-
-
-
-

- 9.7. Configurando o Locale - do Sistema -

-
-
-
-

- O arquivo /etc/locale.conf abaixo - configura algumas variáveis de ambiente necessárias para - suporte de idioma nativo. Configurar elas adequadamente resulta - em: -

-
-
    -
  • -

    - A saída de aplicativos sendo traduzida para seu idioma - nativo -

    -
  • -
  • -

    - A classificação correta de caracteres em letras, dígitos - e outras classes. Isso é necessário para o bash aceitar - adequadamente caracteres não ASCII em linhas de comando - em locales não ingleses -

    -
  • -
  • -

    - A sequência de ordenação alfabética correta para o país -

    -
  • -
  • -

    - Tamanho de papel padrão apropriado -

    -
  • -
  • -

    - Formatação correta de valores monetário, hora e data -

    -
  • -
-
-

- Substitua <ll> - abaixo com o código de duas letras para seu idioma desejado - (por exemplo, en) e <CC> com o código de duas - letras para o país apropriado (por exemplo, GB). - <charmap> - deveria ser substituído com o mapa de caracteres canônico para - seu locale escolhido. Modificadores opcionais, tais como - @euro, talvez também estejam - presentes. -

-

- A lista de todos os locales suportados pela Glibc pode ser - obtida executando o seguinte comando: -

-
locale -a
-

- Mapas de caracteres podem ter um número de apelidos, por - exemplo, ISO-8859-1 também é referenciado - como iso8859-1 e iso88591. Alguns aplicativos não - podem lidar com os vários sinônimos corretamente (por exemplo, - exigem que UTF-8 seja escrito como - UTF-8, não utf8), - de forma que é mais seguro, na maioria dos casos, escolher o - nome canônico para um locale particular. Para determinar o nome - canônico, execute o seguinte comando, onde <locale name> é a saída - dada por locale - -a para seu locale preferido (en_GB.iso88591 no nosso exemplo). -

-
LC_ALL=<locale name> locale charmap
-

- Para o locale en_GB.iso88591, o comando acima - imprimirá: -

-
ISO-8859-1
-

- Isso resulta em uma configuração de locale final de - en_GB.ISO-8859-1. É importante que - o locale encontrado usando a heurística acima seja testado - antes que ele seja adicionado aos arquivos de inicialização do - Bash: -

-
LC_ALL=<locale name> locale language
-LC_ALL=<locale name> locale charmap
-LC_ALL=<locale name> locale int_curr_symbol
-LC_ALL=<locale name> locale int_prefix
-

- Os comandos acima deveriam imprimir o nome do idioma, a - codificação de caracteres usada pelo locale, a moeda local, e o - prefixo para discar antes do número de telefone para se - alcançar o país. Se quaisquer dos comandos acima falharem com - uma mensagem similar àquela mostrada abaixo, [então] isso - significa que seu locale ou não foi instalado no - Capítulo 8 ou não é suportado pela instalação padrão da - Glibc. -

-
locale: Cannot set LC_* to default locale: No such file or directory
-

- Se isso acontecer, [então] você deveria instalar o locale - desejado usando o comando localedef, ou considere - escolher um locale diferente. As instruções posteriores assumem - que não existem tais mensagens de erro originárias da Glibc. -

-

- Alguns pacotes além do LFS também talvez careçam de suporte - para seu locale escolhido. Um exemplo é a biblioteca do X - (parte do X Window System), a qual externaliza a seguinte - mensagem de erro se o locale não corresponder exatamente a um - dos nomes de mapa de carácter nos arquivos internos dela: -

-
Warning: locale not supported by Xlib, locale set to C
-

- Em muitos casos, a Xlib presume que o mapa de carácter será - listado em notação de letras maiúsculas com hífens canônicos. - Por exemplo, "ISO-8859-1" em vez de "iso88591". Também é - possível encontrar uma especificação apropriada removendo-se a - parte de mapa de carácter da especificação de locale. Isso pode - ser verificado executando-se o comando locale charmap em ambos os - locales. Por exemplo, alguém poderia ter que mudar - "de_DE.ISO-8859-15@euro" para "de_DE@euro" para conseguir que - esse locale fosse reconhecido pela Xlib. -

-

- Outros pacotes também podem funcionar incorretamente (mas - talvez não necessariamente exibam quaisquer mensagens de erro) - se o nome do locale não corresponder às expectativas deles. - Nesses casos, investigar como outras distribuições do Linux - suportam seu locale poderia fornecer alguma informação útil. -

-

- Uma vez que as configurações de locale adequadas tenham sido - determinadas, crie o arquivo /etc/locale.conf: -

-
cat > /etc/locale.conf << "EOF"
-LANG=<ll>_<CC>.<charmap><@modifiers>
-EOF
-

- Observe que você pode modificar o /etc/locale.conf com o utilitário - localectl do - systemd. Para usar o localectl para o exemplo - acima, execute: -

-
localectl set-locale LANG="<ll>_<CC>.<charmap><@modifiers>"
-

- Você também pode especificar outras variáveis de ambiente - específicas de idioma, tais como LANG; LC_CTYPE; - LC_NUMERIC; ou qualquer outra - variável de ambiente oriunda da saída de locale. Apenas separe elas - com um espaço. Um exemplo onde LANG - é configurada como en_US.UTF-8, porém LC_CTYPE é configurada apenas como en_US é: -

-
localectl set-locale LANG="en_US.UTF-8" LC_CTYPE="en_US"
-
-

- Nota -

-

- Por favor observe que o comando localectl não funciona no - ambiente chroot. Ele somente pode ser usado depois que o - sistema LFS for inicializado com o systemd. -

-
-

- Os locales C (padrão) e en_US - (aquele recomendado para usuárias(os) do inglês dos Estados - Unidos da América do Norte) são diferentes. C usa o - conjunto de caracteres de 7 bits US-ASCII, e trata bytes com o - bit alto configurado como caracteres inválidos. Esse é o - porquê, por exemplo, do comando ls substituir eles com pontos - de interrogação nesse locale. Também, uma tentativa de enviar - correio com tais caracteres a partir do Mutt ou Pine resulta em - mensagens de não conformidade com RFC sendo enviadas (o - conjunto de caracteres no correio de saída é indicado como - unknown - 8-bit). É sugerido que você use o locale - C apenas se você tiver certeza de - que nunca precisará de caracteres de 8 bits. -

-
-
-
-
-
-

- 9.8. Criando o Arquivo - /etc/inputrc -

-
-
-
-

- O arquivo inputrc é o arquivo de - configuração para a biblioteca readline, a qual fornece - capacidades de edição enquanto a(o) usuária(o) estiver - digitando uma linha a partir do terminal. Ele funciona - traduzindo entradas de teclado em ações específicas. Readline é - usada pelo bash e maioria dos outros shells, bem como muitos - outros aplicativos. -

-

- A maioria das pessoas não necessita de funcionalidade - específica de usuária(o), de forma que o comando abaixo cria um - /etc/inputrc global usado por - qualquer uma(m) que se logue. Se você mais tarde decidir que - você precisa sobrepor os padrões em uma base por usuária(o), - [então] você pode criar um arquivo .inputrc no diretório home da(o) usuária(o) - com os mapeamentos modificados. -

-

- Para mais informação sobre como editar o arquivo inputrc, veja-se info bash sob a seção - Readline Init File. - info readline é - também uma boa fonte de informação. -

-

- Abaixo está um inputrc global - genérico junto com comentários para explicar o que as várias - opções fazem. Observe que comentários não podem estar na mesma - linha que comandos. Crie o arquivo usando o seguinte comando: -

-
cat > /etc/inputrc << "EOF"
-# Begin /etc/inputrc
-# Modified by Chris Lynn <roryo@roryo.dynup.net>
-
-# Allow the command prompt to wrap to the next line
-set horizontal-scroll-mode Off
-
-# Enable 8bit input
-set meta-flag On
-set input-meta On
-
-# Turns off 8th bit stripping
-set convert-meta Off
-
-# Keep the 8th bit for display
-set output-meta On
-
-# none, visible or audible
-set bell-style none
-
-# All of the following map the escape sequence of the value
-# contained in the 1st argument to the readline specific functions
-"\eOd": backward-word
-"\eOc": forward-word
-
-# for linux console
-"\e[1~": beginning-of-line
-"\e[4~": end-of-line
-"\e[5~": beginning-of-history
-"\e[6~": end-of-history
-"\e[3~": delete-char
-"\e[2~": quoted-insert
-
-# for xterm
-"\eOH": beginning-of-line
-"\eOF": end-of-line
-
-# for Konsole
-"\e[H": beginning-of-line
-"\e[F": end-of-line
-
-# End /etc/inputrc
-EOF
-
-
-
-
-
-

- 9.9. Criando o Arquivo - /etc/shells -

-
-
-
-

- O arquivo shells contém uma lista - dos shells de login no sistema. Os aplicativos usam esse - arquivo para determinar quando um shell é válido. Para cada - shell, uma linha única deveria estar presente, consistindo do - caminho do shell relativo à raiz da estrutura de diretório (/). -

-

- Por exemplo, esse arquivo é consultado pelo chsh para determinar quando - uma usuária desprivilegiada possa mudar o shell de login para a - própria conta dela. Se o nome de comando não estiver listado, - [então] a usuária terá negada a habilidade de mudar shells. -

-

- É uma exigência para aplicativos tais como GDM o qual não publiciza o navegador de - face se ele não puder encontrar /etc/shells, ou daemons do FTP os quais - tradicionalmente proíbem acesso a usuárias(os) com shells não - incluídos nesse arquivo. -

-
cat > /etc/shells << "EOF"
-# Begin /etc/shells
-
-/bin/sh
-/bin/bash
-
-# End /etc/shells
-EOF
-
-
-
-
-
-

- 9.10. Uso e - Configuração do Systemd -

-
-
-
-
-

- 9.10.1. Configuração Básica -

-

- O arquivo /etc/systemd/system.conf contém um conjunto - de opções para controlar as operações do systemd básicas. O - arquivo padrão tem todas as entradas comentadas com as - configurações padrão indicadas. Esse arquivo é onde o nível - de registro talvez seja mudado, bem como algumas - configurações de registro básicas. Veja-se a página de manual - systemd-system.conf(5) para - detalhes sobre cada opção de configuração. -

-
-
-

- 9.10.2. Desabilitando a Limpeza da Tela em Tempo de - Inicialização -

-

- O comportamento normal para o systemd é o de limpar a tela ao - final da sequência de inicialização. Se desejado, esse - comportamento talvez seja mudado executando o seguinte - comando: -

-
mkdir -pv /etc/systemd/system/getty@tty1.service.d
-
-cat > /etc/systemd/system/getty@tty1.service.d/noclear.conf << EOF
-[Service]
-TTYVTDisallocate=no
-EOF
-

- As mensagens de inicialização podem sempre ser revistas - usando o comando journalctl - -b como a(o) usuária(o) root. -

-
-
-

- 9.10.3. Desabilitando tmpfs para /tmp -

-

- Por padrão, /tmp é criado como - um tmpfs. Se isso não for desejado, [então] ele pode ser - sobreposto executando o seguinte comando: -

-
ln -sfv /dev/null /etc/systemd/system/tmp.mount
-

- Alternativamente, se uma partição separada para /tmp for desejada, [então] especifique essa - partição em uma entrada do /etc/fstab. -

-
-

- Atenção -

-

- Não crie o link simbólico acima se uma partição separada - for usada para o /tmp. Isso - impedirá o sistema de arquivos raiz (/) de ser remontado - leitura/escrita e tornará o sistema inutilizável quando - inicializado. -

-
-
-
-

- 9.10.4. Configurando a Criação e Deleção de Arquivo - Automática -

-

- Existem vários serviços que criam ou deletam arquivos ou - diretórios: -

-
-
    -
  • -

    - systemd-tmpfiles-clean.service -

    -
  • -
  • -

    - systemd-tmpfiles-setup-dev.service -

    -
  • -
  • -

    - systemd-tmpfiles-setup.service -

    -
  • -
-
-

- O local de sistema para os arquivos de configuração é - /usr/lib/tmpfiles.d/*.conf. Os - arquivos de configuração locais estão em /etc/tmpfiles.d. Os arquivos em - /etc/tmpfiles.d sobrepõem os - arquivos com o mesmo nome em /usr/lib/tmpfiles.d. Veja-se a página de - manual tmpfiles.d(5) para - detalhes do formato de arquivo. -

-

- Observe que a sintaxe para os arquivos /usr/lib/tmpfiles.d/*.conf pode ser - confusa. Por exemplo, a deleção de arquivos padrão no - diretório /tmp está localizada em /usr/lib/tmpfiles.d/tmp.conf com a linha: -

-
q /tmp 1777 root root 10d
-

- O campo tipo, q, discute criar um sub-volume com cotas, o - qual realmente é aplicável apenas para sistemas de arquivos - btrfs. Ele referencia tipo v, o qual sequencialmente - referencia tipo d (diretório). Isso então cria o diretório - especificado se ele não estiver presente e ajusta as - permissões e propriedade como especificado. O conteúdo do - diretório estará sujeito a limpeza baseada em hora se o - argumento idade for especificado. -

-

- Se os parâmetros padrão não forem desejados, então o arquivo - deveria ser copiado para /etc/tmpfiles.d e editado conforme - desejado. Por exemplo: -

-
mkdir -p /etc/tmpfiles.d
-cp /usr/lib/tmpfiles.d/tmp.conf /etc/tmpfiles.d
-
-
-

- 9.10.5. Sobrepondo o Comportamento de Serviços Padrão -

-

- Os parâmetros de uma unidade podem ser sobrepostos criando-se - um diretório e um arquivo de configuração em /etc/systemd/system. Por exemplo: -

-
mkdir -pv /etc/systemd/system/foobar.service.d
-
-cat > /etc/systemd/system/foobar.service.d/foobar.conf << EOF
-[Service]
-Restart=always
-RestartSec=30
-EOF
-

- Veja-se a página de manual systemd.unit(5) para mais informação. - Depois de criar o arquivo de configuração, execute - systemctl - daemon-reload e systemctl restart foobar - para ativar as mudanças para um serviço. -

-
-
-

- 9.10.6. Depurando a Sequência de Inicialização -

-

- Em vez de scripts de shell simples usados nos sistemas de - inicialização estilo SysVinit ou BSD, o systemd usa um - formato unificado para tipos diferentes dos arquivos de - inicialização (ou unidades). O comando systemctl é usado para - habilitar; desabilitar; controlar estado; e obter a situação - dos arquivos de unidade. Aqui estão alguns exemplos dos - comandos usados frequentemente: -

-
-
    -
  • -

    - systemctl list-units -t - <serviço> - [--all]: lista os arquivos de unidade - carregados do tipo serviço. -

    -
  • -
  • -

    - systemctl list-units -t - <alvo> - [--all]: lista os arquivos de unidade - carregados do tipo alvo. -

    -
  • -
  • -

    - systemctl show -p Wants - <multi-user.target>: - mostra todas as unidades que dependem do alvo - multi-user. Alvos são arquivos de unidade especiais que - são análogos a níveis de execução sob o SysVinit. -

    -
  • -
  • -

    - systemctl status - <nomeserviço.service>: - mostra a situação do serviço nomeserviço. A extensão - .service pode ser omitida se não existirem outros - arquivos de unidade com o mesmo nome, tais como - arquivos .socket (os quais criam um soquete de escuta - que fornece funcionalidade similar ao inetd/xinetd). -

    -
  • -
-
-
-
-

- 9.10.7. Trabalhando com o Diário do Systemd -

-

- O registro em um sistema inicializado com o systemd é - manejado com o systemd-journald (por padrão), em vez de um - daemon syslog Unix típico. Você também pode adicionar um - daemon syslog normal e ter ambos operando lado a lado se - desejado. O aplicativo systemd-journald armazena entradas de - diário em um formato binário, em vez de um arquivo de - registro de texto simples. Para auxiliar na análise do - arquivo, o comando journalctl é fornecido. - Aqui estão alguns exemplos dos comandos usados - frequentemente: -

-
-
    -
  • -

    - journalctl - -r: mostra todo o conteúdo do diário em - ordem cronológica reversa. -

    -
  • -
  • -

    - journalctl -u UNIDADE: - mostra as entradas de diário associadas com o arquivo - de UNIDADE especificado. -

    -
  • -
  • -

    - journalctl -b[=ID] - -r: mostra as entradas de diário desde - a mais recente inicialização bem sucedida (ou para a ID - de inicialização) em ordem cronológica reversa. -

    -
  • -
  • -

    - journalctl - -f: fornece funcionalidade similar ao - tail -f (seguir). -

    -
  • -
-
-
-
-

- 9.10.8. Trabalhando com Despejos de Núcleo -

-

- Despejos de núcleo são úteis para depurar aplicativos - quebrados, especialmente quando um processo de daemon quebra. - Em sistemas inicializados do systemd, o despejamento de - núcleo é manejado pelo systemd-coredump. Ele - registrará o despejo de núcleo no diário e armazenará o - próprio despejo de núcleo em /var/lib/systemd/coredump. Para recuperar e - processar despejos de núcleo, a ferramenta coredumpctl é fornecida. - Aqui estão alguns exemplos de comandos usados frequentemente: -

-
-
    -
  • -

    - coredumpctl - -r: lista todos os despejos de núcleo - em ordem cronológica reversa. -

    -
  • -
  • -

    - coredumpctl -1 - info: mostra a informação a partir do - mais recente despejo de núcleo. -

    -
  • -
  • -

    - coredumpctl -1 - debug: carrega o mais recente despejo - de núcleo no - GDB. -

    -
  • -
-
-

- Despejos de núcleo talvez usem um monte de espaço de disco. O - espaço de disco máximo usado por despejos de núcleo pode ser - limitado criando-se um arquivo de configuração em - /etc/systemd/coredump.conf.d. - Por exemplo: -

-
mkdir -pv /etc/systemd/coredump.conf.d
-
-cat > /etc/systemd/coredump.conf.d/maxuse.conf << EOF
-[Coredump]
-MaxUse=5G
-EOF
-

- Vejam-se as páginas de manual systemd-coredump(8); coredumpctl(1); e coredump.conf.d(5) para mais informação. -

-
-
-

- 9.10.9. Processos de Execução Longa -

-

- Iniciando com o systemd-230, todos os processos de usuária(o) - são finalizados quando uma sessão de usuária(o) for - terminada, mesmo se nohup for usado, ou o processo usar as - funções daemon() ou - setsid(). Isso é uma mudança - deliberada de um ambiente permissivo historicamente para um - mais restritivo. O novo comportamento talvez cause problemas - se você depender de aplicativos de execução longa (por - exemplo, screen - ou tmux) para - continuarem ativos depois de terminar sua sessão de - usuária(o). Existem três maneiras de habilitar processos - persistentes para continuarem depois que uma sessão de - usuária(o) for terminada. -

-
-
    -
  • -

    - Habilitar persistência de - processo apenas para usuárias(os) - selecionadas(os): Usuárias(os) normais tem - permissão para habilitar persistência de processo com o - comando loginctl - enable-linger para as(os) próprias(os) - usuárias(os) delas(es). Administradoras(es) de sistema - podem usar o mesmo comando com um argumento user ao habilitar para - uma(m) usuária(o). Essa(e) usuária(o) pode então usar o - comando systemd-run para - iniciar processos de execução longa. Por exemplo: - systemd-run --scope - --user /usr/bin/screen. Se você - habilitar a persistência para sua(eu) usuária(o), - [então] a user@.service continuará, mesmo depois que - todas as sessões de login forem fechadas, e - automaticamente iniciará na inicialização do sistema. - Isso tem a vantagem de explicitamente permitir e - proibir processos para execução depois que a sessão de - usuária(o) for terminada, porém quebra - retrocompatibilidade com ferramentas como nohup e utilitários - que usam daemon(). -

    -
  • -
  • -

    - Habilitar persistência de - processo no âmbito do sistema: Você pode - configurar KillUserProcesses=no em - /etc/systemd/logind.conf - para habilitar a persistência de processo globalmente - para todas(os) as(os) usuárias(os). Isso tem o - benefício de deixar o método antigo disponível para - todas(os) as(os) usuárias(os) à custa do controle - explícito. -

    -
  • -
  • -

    - Desabilitar em tempo de - construção: Você pode desabilitar a - persistência por padrão enquanto construir o systemd - adicionando a chave -Ddefault-kill-user-processes=false - ao comando meson para o systemd. - Isso desabilita completamente a habilidade do systemd - para finalizar processos de usuária(o) ao fim de - sessão. -

    -
  • -
-
-
-
-
-
-
-
-
-

- Capítulo 10. Tornando o - Sistema LFS Inicializável -

-
-
-
-
-
-
-
-

- 10.1. Introdução -

-
-
-
-

- É hora de tornar o sistema LFS inicializável. Este capítulo - discute a criação do arquivo /etc/fstab; construção de um kernel para o - novo sistema LFS; e instalação do carregador de inicialização - GRUB, de modo que o sistema LFS possa ser selecionado para - iniciar durante a inicialização. -

-
-
-
-
-
-

- 10.2. Criando o Arquivo - /etc/fstab -

-
-
-
-

- O arquivo /etc/fstab é usado por - alguns aplicativos para determinar onde sistemas de arquivos - são para serem montados por padrão; em qual ordem; e quais - precisam ser verificados (para erros de integridade) antes da - montagem. Crie uma nova tabela de sistemas de arquivos como - esta: -

-
cat > /etc/fstab << "EOF"
-# Begin /etc/fstab
-
-# file system  mount-point  type     options             dump  fsck
-#                                                              order
-
-/dev/<xxx>     /            <fff>    defaults            1     1
-/dev/<yyy>     swap         swap     pri=1               0     0
-
-# End /etc/fstab
-EOF
-

- Substitua <xxx>; <yyy>; e <fff> com os valores - apropriados para o sistema, por exemplo, sda2; sda5; e - ext4. Para detalhes sobre os - seis campos nesse arquivo, veja-se man 5 fstab. -

-

- Sistemas de arquivos com origem MS-DOS ou Windows (isto é, - vfat, ntfs, smbfs, cifs, iso9660, udf) precisam de uma opção - especial, utf8, para a finalidade de caracteres não ASCII nos - nomes de arquivo serem interpretados corretamente. Para locales - não UTF-8, o valor de iocharset - deveria ser configurado para ser o mesmo que o conjunto de - caracteres do locale, ajustado de tal maneira que o kernel o - entenda. Isso funciona se a definição de conjunto de caracteres - relevante (encontrada sob File systems -> Native Language - Support quando da configuração do kernel) tenha sido compilada - no kernel ou construída como um módulo. Entretanto, se o - conjunto de caracteres do locale for UTF-8, [então] a - correspondente opção iocharset=utf8 - tornaria o sistema de arquivo sensível a maiúsculas e - minúsculas. Para consertar isso, use a opção especial - utf8 em vez de iocharset=utf8, para locales UTF-8. A opção - codepage também é necessária para - sistemas de arquivos vfat e smbfs. Ela deveria ser configurada - para o número da página de código usada sob MS-DOS em seu país. - Por exemplo, para montar controladores flash USB, uma(m) - usuária(o) do ru_RU.KOI8-R precisaria do seguinte na porção de - opções da linha mount dele em /etc/fstab: -

-
noauto,user,quiet,showexec,codepage=866,iocharset=koi8r
-

- O correspondente fragmento das opções para usuárias(os) do - ru_RU.UTF-8 é: -

-
noauto,user,quiet,showexec,codepage=866,utf8
-

- Observe que usar iocharset é o - padrão para iso8859-1 (a qual - mantém o sistema de arquivo insensível a maiúsculas e - minúsculas), e a opção utf8 diz ao - kernel para converter os nomes de arquivo usando UTF-8, de - forma que eles podem ser interpretados no locale UTF-8. -

-

- É possível também especificar os valores de página de código e - iocharset padrão para alguns sistemas de arquivos durante a - configuração do kernel. Os parâmetros relevantes são chamados - de Default NLS - Option (CONFIG_NLS_DEFAULT); Default Remote NLS - Option (CONFIG_SMB_NLS_DEFAULT); Default codepage for - FAT (CONFIG_FAT_DEFAULT_CODEPAGE); e Default iocharset for - FAT (CONFIG_FAT_DEFAULT_IOCHARSET). Não há maneira - de especificar essas configurações para o sistema de arquivos - ntfs em tempo de compilação do kernel. -

-

- É possível tornar o sistema de arquivos ext3 confiável em casos - de falhas de eletricidade para alguns tipos de disco rígido. - Para fazer isso, adicione a opção de montagem barrier=1 para a entrada apropriada em - /etc/fstab. Para verificar se o - controlador de disco suporta essa opção, execute - hdparm no controlador de disco aplicável. Por exemplo, se: -

-
hdparm -I /dev/sda | grep NCQ
-

- retornar uma saída não vazia, [então] a opção é suportada. -

-

- Nota: partições baseadas em Logical Volume Management (LVM) não - podem usar a opção barrier. -

-
-
-
-
-
-

- 10.3. Linux-5.16.9 -

-
-
-
-
-

- O pacote Linux contém o kernel do Linux. -

-
-
-
- Tempo aproximado de - construção: 1,5 - 130,0 - UPC (tipicamente cerca de 12 UPC) -
-
- Espaço em disco - exigido: 1200 - 8800 MB - (tipicamente cerca de 1700 MB) -
-
-
-
-
-

- 10.3.1. Instalação do kernel -

-

- Construir o kernel envolve uns poucos - passos—configuração; compilação; e instalação. Leia o - arquivo README na árvore do - fonte do kernel para métodos alternativos à maneira que este - livro configura o kernel. -

-

- Prepare para compilação executando o seguinte comando: -

-
make mrproper
-

- Isso garante que a árvore do kernel esteja absolutamente - limpa. O time do kernel recomenda que esse comando seja - executado antes de cada compilação do kernel. Não confie que - a árvore do fonte esteja limpa após descompactar. -

-

- Existem muitas maneiras de configurar as opções do kernel. - Usualmente, isso é feito por meio de uma interface controlada - por menu, por exemplo: -

-
make menuconfig
-
-

- O significado das variáveis de ambiente do make - opcionais: -

-
-
- LANG=<host_LANG_value> - LC_ALL= -
-
-

- Isso estabelece a configuração do locale para aquela - usada no anfitrião. Isso talvez seja necessário para um - adequado desenho de linha da interface ncurses do - menuconfig em um console de texto linux UTF-8. -

-

- Se usada, [então] assegure-se de substituir <host_LANG_value> - pelo valor da variável $LANG - oriunda do seu anfitrião. Você pode, alternativamente, - usar, em vez disso, o valor do anfitrião de - $LC_ALL ou $LC_CTYPE. -

-
-
- make - menuconfig -
-
-

- Isso lança uma interface controlada por menu ncurses. - Para outras (gráficas) interfaces, digite make help. -

-
-
-
-

- Para informação geral sobre configuração do kernel, veja-se - - https://www.linuxfromscratch.org/hints/downloads/files/kernel-configuration.txt. - O BLFS tem alguma informação relativa a exigências de - configuração do kernel particulares de pacotes que estão fora - do LFS em - https://www.linuxfromscratch.org/blfs/view/stable-systemd/longindex.html#kernel-config-index. - Informação adicional sobre configurar e construir o kernel - pode ser encontrada em http://www.kroah.com/lkn/ -

-
-

- Nota -

-

- Um bom ponto de partida para configurar a configuração do - kernel é executar make - defconfig. Isso configurará a configuração - base para um bom estado que leve a sua atual arquitetura de - sistema em conta. -

-

- Assegure-se de habilitar/desabilitar/configurar as - seguintes características ou o sistema poderia não - funcionar corretamente ou inicializar de forma alguma: -

-
General setup -->
-   [ ] Auditing Support [CONFIG_AUDIT]
-   < > Enable kernel headers through /sys/kernel/kheaders.tar.xz [CONFIG_IKHEADERS]
-   [*] Control Group support [CONFIG_CGROUPS]   --->
-      [*] Memory controller [CONFIG_MEMCG]
-   [ ] Enable deprecated sysfs features to support old userspace tools [CONFIG_SYSFS_DEPRECATED]
-   [*] Configure standard kernel features (expert users) [CONFIG_EXPERT] --->
-      [*] open by fhandle syscalls [CONFIG_FHANDLE]
-   CPU/Task time and stats accounting --->
-      [*] Pressure stall information tracking [CONFIG_PSI]
-General architecture-dependent options  --->
-   [*] Enable seccomp to safely compute untrusted bytecode [CONFIG_SECCOMP]
-Networking support  --->
-  Networking options  --->
-   <*> The IPv6 protocol [CONFIG_IPV6]
-Device Drivers  --->
-  Firmware Drivers   --->
-   [*] Export DMI identification via sysfs to userspace [CONFIG_DMIID]
-  Graphics support --->
-   Frame buffer Devices --->
-      [*] Support for frame buffer devices ----
-  Generic Driver Options  --->
-   [ ] Support for uevent helper [CONFIG_UEVENT_HELPER]
-   [*] Maintain a devtmpfs filesystem to mount at /dev [CONFIG_DEVTMPFS]
-   Firmware Loader --->
-      [ ] Enable the firmware sysfs fallback mechanism [CONFIG_FW_LOADER_USER_HELPER]
-File systems  --->
-   [*] Inotify support for userspace [CONFIG_INOTIFY_USER]
-  Pseudo filesystems  --->
-   [*] Tmpfs POSIX Access Control Lists [CONFIG_TMPFS_POSIX_ACL]
-
-
-

- Nota -

-

- Enquanto que "The IPv6 Protocol" não é estritamente - exigido, ela é altamente recomendada pelas(os) - desenvolvedoras(es) do systemd. -

-
-
-

- Nota -

-

- Se seu hardware do anfitrião estiver usando UEFI e você - desejar inicializar o sistema LFS com ela, [então] você - deveria ajustar alguma configuração do kernel seguindo - - a página do BLFS. -

-
-
-

- A justificativa para os itens de configuração - acima: -

-
-
- Enable - kernel headers through - /sys/kernel/kheaders.tar.xz -
-
-

- Isso exigirá cpio ao se construir - o kernel. cpio não é instalado - por LFS. -

-
-
- Support - for uevent helper -
-
-

- Ter essa opção configurada talvez interfira com o - gerenciamento de dispositivo quando se usar Udev/Eudev. -

-
-
- Maintain a - devtmpfs -
-
-

- Isso criará nós de dispositivos automatizados os quais - são povoados pelo kernel, mesmo sem o Udev executando. - O Udev então executa no topo disso, gerenciando - permissões e adicionando links simbólicos. Esse item de - configuração é exigido para todas(os) as(os) - usuárias(os) do Udev/Eudev. -

-
-
-
-

- Alternativamente, make - oldconfig talvez seja mais apropriado em - algumas situações. Veja-se o arquivo README para mais informação. -

-

- Se desejado, [então] pule a configuração do kernel copiando o - arquivo config do kernel, .config, a partir do sistema anfitrião - (assumindo que ele esteja disponível) para o diretório - linux-5.16.9 desempacotado. - Entretanto, nós não recomendamos essa opção. Frequentemente é - melhor explorar todos os menus de configuração e criar a - configuração do kernel a partir do zero. -

-

- Compile a imagem do kernel e módulos: -

-
make
-

- Se usar módulos do kernel, [então] a configuração do módulo - em /etc/modprobe.d talvez seja - exigida. Informação pertinente à configuração de módulos e - kernel está localizada na Seção 9.3, - “Visão Geral do Manuseio de Dispositivos e - Módulos” e na documentação do kernel no diretório - linux-5.16.9/Documentation. - Também, modprobe.d(5) talvez - seja de interesse. -

-

- A menos que o suporte de módulo tenha sido desabilitado na - configuração do kernel, instale os módulos com: -

-
make modules_install
-

- Depois que a compilação do kernel estiver completa, passos - adicionais são exigidos para completar a instalação. Alguns - arquivos precisam ser copiados para o diretório /boot. -

-
-

- Cuidado -

-

- Se o sistema anfitrião tiver uma partição /boot separada, - [então] os arquivos copiados abaixo deveriam ir para lá. A - maneira mais fácil de fazer isso é vincular /boot no - anfitrião (do lado de fora do chroot) à /mnt/lfs/boot antes - de prosseguir. Como a(o) usuária(o) root no sistema anfitrião: -

-
mount --bind /boot /mnt/lfs/boot
-
-

- O caminho para a imagem do kernel talvez varie, dependendo da - plataforma sendo usada. O nome de arquivo abaixo pode ser - mudado para se adequar ao seu gosto, porém o tronco do nome - de arquivo deveria ser vmlinuz para ser compatível com a - configuração automática do processo de inicialização descrito - na próxima seção. O seguinte comando assume uma arquitetura - x86: -

-
cp -iv arch/x86/boot/bzImage /boot/vmlinuz-5.16.9-lfs-11.1-systemd
-

- System.map é um arquivo de - símbolo para o kernel. Ele mapeia os pontos de entrada de - função de cada função na API do kernel, assim como os - endereços das estruturas de dados do kernel para o kernel em - execução. Ele é usado como um recurso quando se investigar - problemas do kernel. Emita o seguinte comando para instalar o - arquivo de mapa: -

-
cp -iv System.map /boot/System.map-5.16.9
-

- O arquivo de configuração do kernel .config produzido pelo passo make menuconfig acima - contém todas as seleções de configuração para o kernel que - foi recém compilado. É uma boa ideia manter esse arquivo para - futura referência: -

-
cp -iv .config /boot/config-5.16.9
-

- Instale a documentação para o kernel do Linux: -

-
install -d /usr/share/doc/linux-5.16.9
-cp -r Documentation/* /usr/share/doc/linux-5.16.9
-

- É importante observar que os arquivos no diretório do fonte - do kernel não são de propriedade da(o) root. Sempre que um pacote é - desempacotado como a(o) usuária(o) root (como nós fizemos dentro do - chroot), os arquivos tem os IDs de usuária(o) e grupo do que - quer que fossem no computador da(o) empacotadora(r). Isso - geralmente não é um problema para qualquer outro pacote ser - instalado, pois a árvore do fonte é removida depois da - instalação. Entretanto, a árvore do fonte do Linux - frequentemente é mantida por um longo tempo. Devido a isso, - existe uma chance de que qualquer ID de usuária(o) que a(o) - empacotadora(r) usou será atribuído para alguém na máquina. - Essa pessoa então teria acesso de escrita ao fonte do kernel. -

-
-

- Nota -

-

- Em muitos casos, a configuração do kernel precisará ser - atualizada para pacotes que serão instalados posteriormente - em BLFS. Diferente de outros pacotes, não é necessário - remover a árvore do fonte do kernel depois que o recém - construído kernel for instalado. -

-

- Se a árvore do fonte do kernel será mantida, [então] - execute chown -R - 0:0 no diretório linux-5.16.9 para assegurar que todos os - arquivos são de propriedade da(o) usuária(o) root. -

-
-
-

- Atenção -

-

- Alguma documentação do kernel recomenda criar um link - simbólico a partir de /usr/src/linux apontando para o diretório - do fonte do kernel. Isso é específico para kernels - anteriores à série 2.6 e precisa - não ser criado em um sistema LFS, uma vez que - ele pode causar problemas para pacotes que você talvez - deseje construir tão logo seu sistema LFS base esteja - completo. -

-
-
-

- Atenção -

-

- Os cabeçalhos no diretório include do sistema (/usr/include) deveriam sempre ser aqueles contra os - quais a Glibc foi compilada, isto é, os cabeçalhos - sanitizados instalados na Seção 5.4, - “Cabeçalhos da API do Linux-5.16.9”. - Portanto, eles nunca - deveriam ser substituídos tanto pelos cabeçalhos do kernel - crus quanto por quaisquer outros cabeçalhos sanitizados do - kernel. -

-
-
-
-

- 10.3.2. - Configurando a Ordem de Carregamento de Módulos do Linux -

-

- Na maior parte do tempo, os módulos do Linux são carregados - automaticamente, porém algumas vezes precisa-se de alguma - direção específica. O aplicativo que carrega os módulos, - modprobe ou - insmod, usa - /etc/modprobe.d/usb.conf para - esse propósito. Esse arquivo precisa ser criado, de forma - que, se os controladores do USB (ehci_hcd, ohci_hcd e - uhci_hcd) tiverem sido construídos como módulos, [então] eles - serão carregados na ordem correta; ehci_hcd precisa ser - carregado antes de ohci_hcd e uhci_hcd para evitar um aviso - sendo produzido em tempo de inicialização. -

-

- Crie um novo arquivo /etc/modprobe.d/usb.conf executando o - seguinte: -

-
install -v -m755 -d /etc/modprobe.d
-cat > /etc/modprobe.d/usb.conf << "EOF"
-# Begin /etc/modprobe.d/usb.conf
-
-install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true
-install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i uhci_hcd ; true
-
-# End /etc/modprobe.d/usb.conf
-EOF
-
-
-

- 10.3.3. - Conteúdo do Linux -

-
-
-
- Arquivos instalados: - config-5.16.9, - vmlinuz-5.16.9-lfs-11.1-systemd e - System.map-5.16.9 -
-
- Diretórios instalados: - /lib/modules e - /usr/share/doc/linux-5.16.9 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - -
-

- config-5.16.9 -

-
-

- Contém todas as seleções de configuração para o - kernel -

-
-

- vmlinuz-5.16.9-lfs-11.1-systemd -

-
-

- O motor do sistema Linux. Quando se liga o - computador, o kernel é a primeira parte do sistema - operacional que se torna carregada. Ele detecta e - inicializa todos os componentes do hardware do - computador, então torna esses componentes - disponíveis como uma árvore de arquivos para o - software e transforma uma CPU individual em uma - máquina multitarefa capaz de executar dezenas de - aplicativos aparentemente ao mesmo tempo -

-
-

- System.map-5.16.9 -

-
-

- Uma lista de endereços e símbolos; ele mapeia os - pontos de entrada e endereços de todas as funções e - estruturas de dados no kernel -

-
-
-
-
-
-
-
-
-

- 10.4. Usando o GRUB para - Configurar o Processo de Inicialização -

-
-
-
-
-

- Nota -

-

- Se seu sistema tiver suporte UEFI e você desejar inicializar - o LFS com UEFI, [então] você deveria pular esta página, e - configurar o GRUB com suporte UEFI usando as instruções - fornecidas na - página do BLFS. -

-
-
-

- 10.4.1. Introdução -

-
-

- Atenção -

-

- Configurar o GRUB incorretamente pode tornar seu sistema - inoperável sem um dispositivo de inicialização alternativo, - como um CD-ROM ou unidade USB inicializável. Esta seção não - é exigida para inicializar seu sistema LFS. Você talvez - apenas queira modificar seu carregador de inicialização - atual, por exemplo, Grub-Legacy, GRUB2 ou LILO. -

-
-

- Certifique-se de que um disco de inicialização de emergência - esteja pronto para resgatar o computador se o - computador se tornar inutilizável (não inicializável). Se - você ainda não tem um dispositivo de inicialização, [então] - você pode criar um. Para que o procedimento abaixo funcione, - você precisa saltar para a frente para o BLFS e instalar - xorriso - oriundo do pacote - libisoburn. -

-
cd /tmp
-grub-mkrescue --output=grub-img.iso
-xorriso -as cdrecord -v dev=/dev/cdrw blank=as_needed grub-img.iso
-
-
-

- 10.4.2. Convenções de Nomenclatura do GRUB -

-

- O GRUB usa estrutura de nomenclatura própria dele para - unidades e partições na forma de (hdn,m), onde n é o número da unidade rígida e - m é o número da - partição. O número da unidade rígida começa do zero, porém o - número da partição inicia do um para partições normais e - cinco para partições estendidas. Observe que isso é diferente - de versões anteriores onde ambos os números começavam do - zero. Por exemplo, a partição sda1 é (hd0,1) para o GRUB e sdb3 é (hd1,3). Em contraste com o Linux, - GRUB não considera unidades de CD-ROM como unidades rígidas. - Por exemplo, se usar um CD em hdb e uma segunda unidade rígida em - hdc, [então] aquela segunda - unidade rígida ainda seria (hd1). -

-
-
-

- 10.4.3. Definindo a Configuração -

-

- O GRUB funciona escrevendo dados para a primeira trilha - física do disco rígido. Essa área não é parte de nenhum - sistema de arquivos. Os aplicativos lá acessam módulos do - GRUB na partição de inicialização. O local padrão é - /boot/grub/. -

-

- O local da partição de inicialização é uma escolha da(o) - usuária(o) que afeta a configuração. Uma recomendação é ter - uma partição pequena (tamanho sugerido é 200 MB) separada - somente para informação de inicialização. Dessa forma, cada - construção, seja LFS ou alguma distribuição comercial, pode - acessar os mesmos arquivos de inicialização e o acesso pode - ser feito a partir de qualquer sistema inicializado. Se você - escolher fazer isso, [então] você precisará montar a partição - separada, mover todos os arquivos no diretório /boot atual (por exemplo, o kernel linux - que você recém construiu na seção anterior) para a nova - partição. Você precisará então desmontar a partição e - remontar ela como /boot. Se - você fizer isso, [então] tenha certeza de atualizar - /etc/fstab. -

-

- Usar a partição lfs atual também funcionará, porém a - configuração para múltiplos sistemas é mais complicada. -

-

- Usando a informação acima, determine o designador apropriado - para a partição raiz (ou partição de inicialização, se uma - separada for usada). Para o exemplo seguinte, é assumido que - a partição raiz (ou inicialização separada) é sda2. -

-

- Instale os arquivos do GRUB em /boot/grub e configure a trilha de - inicialização: -

-
-

- Atenção -

-

- O seguinte comando sobrescreverá o carregador de - inicialização atual. Não execute o comando de isso não for - desejado, por exemplo, se usar um gerenciador de - inicialização de terceiro para gerenciar o Master Boot - Record (MBR). -

-
-
grub-install /dev/sda
-
-

- Nota -

-

- Se o sistema tiver sido inicializado usando UEFI, [então] o - grub-install - tentará instalar arquivos para o alvo x86_64-efi, porém aqueles - arquivos não foram instalados no Capítulo 8. - Se esse for o caso, [então] adicione --target i386-pc ao comando acima. -

-
-
-
-

- 10.4.4. Criando o - Arquivo de Configuração do GRUB -

-

- Gere o /boot/grub/grub.cfg: -

-
cat > /boot/grub/grub.cfg << "EOF"
-# Begin /boot/grub/grub.cfg
-set default=0
-set timeout=5
-
-insmod ext2
-set root=(hd0,2)
-
-menuentry "GNU/Linux, Linux 5.16.9-lfs-11.1-systemd" {
-        linux   /boot/vmlinuz-5.16.9-lfs-11.1-systemd root=/dev/sda2 ro
-}
-EOF
-
-

- Nota -

-

- A partir da perspectiva do GRUB, os arquivos do kernel são - relativos à partição usada. Se você usou uma partição /boot - separada, [então] remova /boot da linha linux acima. Você também - precisará mudar a linha set - root para apontar para a partição de - inicialização. -

-
-

- O GRUB é um aplicativo extremamente poderoso e ele fornece um - tremendo número de opções para inicializar a partir de uma - ampla variedade de dispositivos, sistemas operacionais e - tipos de partição. Existem também muitas opções para - personalização, tais como telas splash gráficas; reprodução - de sons; entrada de mouse; etc. Os detalhes dessas opções - estão além do escopo desta introdução. -

-
-

- Cuidado -

-

- Existe um comando, grub-mkconfig, que pode escrever um - arquivo de configuração automaticamente. Ele usa um - conjunto de scripts em /etc/grub.d/ e destruirá quaisquer - personalizações que você fizer. Esses scripts são - projetados primariamente para distribuições não fonte e não - são recomendados para o LFS. Se você instalar uma - distribuição do Linux comercial, [então] existe uma boa - chance de que esse aplicativo será executado. Tenha certeza - de produzir uma cópia de segurança do seu arquivo grub.cfg. -

-
-
-
-
-
-
-
-
-

- Capítulo 11. O Fim -

-
-
-
-
-
-
-
-

- 11.1. O Fim -

-
-
-
-

- Muito bem! O novo sistema LFS está instalado! Nós desejamos a - você muito sucesso com seu novo e brilhante sistema Linux - construído sob medida. -

-

- Talvez seja uma boa ideia criar um arquivo /etc/lfs-release. Tendo esse arquivo, é muito - fácil para você (e para nós se você precisar pedir por ajuda em - algum ponto) descobrir qual versão do LFS está instalada no - sistema. Crie esse arquivo executando: -

-
echo 11.1-systemd > /etc/lfs-release
-

- Dois arquivos descrevendo o sistema instalado talvez sejam - usados por pacotes que podem ser instalados no sistema - posteriormente, ou em forma de binário ou construindo eles. -

-

- O primeiro deles mostra a situação do seu novo sistema com - respeito ao Linux Standards Base (LSB). Para criar esse - arquivo, execute: -

-
cat > /etc/lsb-release << "EOF"
-DISTRIB_ID="Linux From Scratch"
-DISTRIB_RELEASE="11.1-systemd"
-DISTRIB_CODENAME="<seu nome aqui>"
-DISTRIB_DESCRIPTION="Linux From Scratch"
-EOF
-

- O segundo deles contém aproximadamente a mesma informação, e é - usado pelo systemd e alguns ambientes de área de trabalho - gráficos. Para criar esse arquivo, execute: -

-
cat > /etc/os-release << "EOF"
-NAME="Linux From Scratch"
-VERSION="11.1-systemd"
-ID=lfs
-PRETTY_NAME="Linux From Scratch 11.1-systemd"
-VERSION_CODENAME="<seu nome aqui>"
-EOF
-

- Tenha certeza de colocar algum tipo de personalização para os - campos 'DISTRIB_CODENAME' e 'VERSION_CODENAME' para tornar o - sistema unicamente seu. -

-
-
-
-
-
-

- 11.2. Seja Contado -

-
-
-
-

- Agora que você terminou o livro, você quer ser contada(o) como - uma(m) usuária(o) do LFS? Vá para https://www.linuxfromscratch.org/cgi-bin/lfscounter.php - e registre-se como uma(m) usuária(o) do LFS fornecendo seu nome - e a primeira versão do LFS que você usou. -

-

- Vamos reinicializar no LFS agora. -

-
-
-
-
-
-

- 11.3. Reinicializando o - Sistema -

-
-
-
-

- Agora que todo o software foi instalado, é hora de - reinicializar seu computador. Entretanto, você deveria estar - ciente de umas poucas coisas. O sistema que você criou neste - livro é bastante mínimo, e provavelmente não terá a - funcionalidade que você precisaria para ser capaz de seguir em - frente. Instalando uns poucos pacotes extras a partir do livro - BLFS enquanto ainda em seu ambiente chroot atual, você pode - deixar-se em uma posição muito melhor para continuar tão logo - você reinicialize em sua nova instalação do LFS. Aqui estão - algumas sugestões: -

-
-
    -
  • -

    - Um navegador de modo de texto como o - Lynx permitirá que você facilmente visualize o livro - BLFS em um terminal virtual, enquanto constrói pacotes em - outro. -

    -
  • -
  • -

    - O pacote - make-ca permitirá que você configure certificados de - âncora confiáveis locais, permitindo que o sistema - verifique certificados SSL fornecidos por servidores - remotos (por exemplo, um sítio da web usando o HTTPS). -

    -
  • -
  • -

    - O pacote - GPM permitirá que você realize ações de copiar/colar - em seus terminais virtuais. -

    -
  • -
  • -

    - Instalar - sudo talvez seja útil para construir pacotes como - uma(m) usuária(o) não root e facilmente instalar os - pacotes resultantes em seu novo sistema. -

    -
  • -
  • -

    - Se você quiser acessar seu novo sistema a partir de um - sistema remoto dentro de um ambiente GUI confortável, - [então] instale - openssh. -

    -
  • -
  • -

    - Para tornar a obtenção de arquivos por meio da Internet - mais fácil, instale - wget. -

    -
  • -
  • -

    - Para se conectar a um ponto de acesso sem fios para rede, - instale - wpa_supplicant. -

    -
  • -
  • -

    - Finalmente, uma revisão dos seguintes arquivos de - configuração também é apropriada neste ponto. -

    -
    -
      -
    • -

      - /etc/bashrc -

      -
    • -
    • -

      - /etc/dircolors -

      -
    • -
    • -

      - /etc/fstab -

      -
    • -
    • -

      - /etc/hosts -

      -
    • -
    • -

      - /etc/inputrc -

      -
    • -
    • -

      - /etc/profile -

      -
    • -
    • -

      - /etc/resolv.conf -

      -
    • -
    • -

      - /etc/vimrc -

      -
    • -
    • -

      - /root/.bash_profile -

      -
    • -
    • -

      - /root/.bashrc -

      -
    • -
    -
    -
  • -
-
-

- Agora que nós dissemos isso, vamos em frente para inicializar - nossa brilhante e nova instalação do LFS pela primeira vez! - Primeiro saia do ambiente chroot: -

-
logout
-

- Então desmonte os sistemas de arquivos virtuais: -

-
umount -v $LFS/dev/pts
-umount -v $LFS/dev
-umount -v $LFS/run
-umount -v $LFS/proc
-umount -v $LFS/sys
-

- Se múltiplas partições foram criadas, [então] desmonte as - outras partições antes de desmontar a principal, como isto: -

-
umount -v $LFS/usr
-umount -v $LFS/home
-umount -v $LFS
-

- Desmonte o próprio sistema de arquivos do LFS: -

-
umount -v $LFS
-

- Agora, reinicialize o sistema com: -

-
shutdown -r now
-

- Assumindo que o carregador de inicialização GRUB foi - configurado como destacado anteriormente, o menu está - configurado para inicializar o LFS - 11.1-systemd automaticamente. -

-

- Quando a reinicialização estiver completa, o sistema LFS estará - pronto para uso e mais software talvez seja adicionado para - suprir suas necessidades. -

-
-
-
-
-
-

- 11.4. E agora? -

-
-
-
-

- Obrigado por ler este livro LFS. Nós esperamos que você tenha - achado este livro útil e tenha aprendido mais sobre o processo - de criação do sistema. -

-

- Agora que o sistema LFS está instalado, você talvez esteja se - perguntando: E - depois? Para responder a essa pergunta, - nós compilamos uma lista de recursos para você. -

-
-
    -
  • -

    - Manutenção -

    -

    - Notificações de defeitos e segurança são relatadas - regularmente para todo software. Uma vez que um sistema - LFS é compilado a partir do fonte, cabe a você se manter - a par de tais relatórios. Existem vários recursos online - que rastreiam tais relatórios, alguns dos quais estão - mostrados abaixo: -

    -
    -
      -
    • -

      - CERT (Computer Emergency - Response Team) -

      -

      - O CERT tem uma lista de discussão que publica - alertas de segurança a respeito de vários sistemas - operacionais e aplicativos. Informação de - assinatura está disponível em http://www.us-cert.gov/cas/signup.html. -

      -
    • -
    • -

      - Bugtraq -

      -

      - Bugtraq é uma lista de discussão de segurança de - computador de divulgação completa. Ela publica - problemas de segurança descobertos recentemente, e - ocasionalmente consertos potenciais para eles. - Informação de assinatura está disponível em - http://www.securityfocus.com/archive. -

      -
    • -
    -
    -
  • -
  • -

    - Beyond Linux From Scratch -

    -

    - O livro Beyond Linux From Scratch cobre procedimentos de - instalação para uma ampla gama de software além do escopo - do Livro LFS. O projeto BLFS está localizado em - https://www.linuxfromscratch.org/blfs/view/stable-systemd/. -

    -
  • -
  • -

    - LFS Hints -

    -

    - As Dicas do LFS são uma coleção de documentos - educacionais submetidos por voluntários na comunidade do - LFS. As dicas estão disponíveis em - https://www.linuxfromscratch.org/hints/downloads/files/. -

    -
  • -
  • -

    - Listas de discussão -

    -

    - Existem várias listas de discussão do LFS que você talvez - assine se você estiver necessitada(o) de ajuda; quiser se - manter atualizada(o) com os mais recentes - desenvolvimentos; quiser contribuir para o projeto; e - mais. Veja-se Capítulo 1 - - Listas de Discussão para mais informação. -

    -
  • -
  • -

    - The Linux Documentation Project -

    -

    - O objetivo do The Linux Documentation Project (TLDP) é o - de colaborar em todos os problemas de documentação do - Linux. O TLDP apresenta uma grande coleção de HOWTOs, - guias e páginas de manual. Ele está localizado em - http://www.tldp.org/. -

    -
  • -
-
-
-
-
-
-
-
-
-

- Parte V. Anexos -

-
-
-
-
-
-
-
-

- Apêndice A. Siglas e Termos -

-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- ABI -

-
-

- Application Binary Interface -

-
-

- ALFS -

-
-

- Automated Linux From Scratch -

-
-

- API -

-
-

- Application Programming Interface -

-
-

- ASCII -

-
-

- American Standard Code for Information Interchange -

-
-

- BIOS -

-
-

- Basic Input/Output System -

-
-

- BLFS -

-
-

- Beyond Linux From Scratch -

-
-

- BSD -

-
-

- Berkeley Software Distribution -

-
-

- chroot -

-
-

- change root -

-
-

- CMOS -

-
-

- Complementary Metal Oxide Semiconductor -

-
-

- COS -

-
-

- Class Of Service -

-
-

- CPU -

-
-

- Central Processing Unit -

-
-

- CRC -

-
-

- Cyclic Redundancy Check -

-
-

- CVS -

-
-

- Concurrent Versions System -

-
-

- DHCP -

-
-

- Dynamic Host Configuration Protocol -

-
-

- DNS -

-
-

- Domain Name Service -

-
-

- EGA -

-
-

- Enhanced Graphics Adapter -

-
-

- ELF -

-
-

- Executable and Linkable Format -

-
-

- EOF -

-
-

- End of File -

-
-

- EQN -

-
-

- equation -

-
-

- ext2 -

-
-

- second extended file system -

-
-

- ext3 -

-
-

- third extended file system -

-
-

- ext4 -

-
-

- fourth extended file system -

-
-

- FAQ -

-
-

- Frequently Asked Questions -

-
-

- FHS -

-
-

- Filesystem Hierarchy Standard -

-
-

- FIFO -

-
-

- First-In, First Out -

-
-

- FQDN -

-
-

- Fully Qualified Domain Name -

-
-

- FTP -

-
-

- File Transfer Protocol -

-
-

- GB -

-
-

- Gigabytes -

-
-

- GCC -

-
-

- GNU Compiler Collection -

-
-

- GID -

-
-

- Group Identifier -

-
-

- GMT -

-
-

- Greenwich Mean Time -

-
-

- HTML -

-
-

- Hypertext Markup Language -

-
-

- IDE -

-
-

- Integrated Drive Electronics -

-
-

- IEEE -

-
-

- Institute of Electrical and Electronic Engineers -

-
-

- IO -

-
-

- Input/Output -

-
-

- IP -

-
-

- Internet Protocol -

-
-

- IPC -

-
-

- Inter-Process Communication -

-
-

- IRC -

-
-

- Internet Relay Chat -

-
-

- ISO -

-
-

- International Organization for Standardization -

-
-

- ISP -

-
-

- Internet Service Provider -

-
-

- KB -

-
-

- Kilobytes -

-
-

- LED -

-
-

- Light Emitting Diode -

-
-

- LFS -

-
-

- Linux From Scratch -

-
-

- LSB -

-
-

- Linux Standard Base -

-
-

- MB -

-
-

- Megabytes -

-
-

- MBR -

-
-

- Master Boot Record -

-
-

- MD5 -

-
-

- Message Digest 5 -

-
-

- NIC -

-
-

- Network Interface Card -

-
-

- NLS -

-
-

- Native Language Support -

-
-

- NNTP -

-
-

- Network News Transport Protocol -

-
-

- NPTL -

-
-

- Native POSIX Threading Library -

-
-

- OSS -

-
-

- Open Sound System -

-
-

- PCH -

-
-

- Pre-Compiled Headers -

-
-

- PCRE -

-
-

- Perl Compatible Regular Expression -

-
-

- PID -

-
-

- Process Identifier -

-
-

- PTY -

-
-

- pseudo terminal -

-
-

- QOS -

-
-

- Quality Of Service -

-
-

- RAM -

-
-

- Random Access Memory -

-
-

- RPC -

-
-

- Remote Procedure Call -

-
-

- RTC -

-
-

- Real Time Clock -

-
-

- SBU -

-
-

- Standard Build Unit -

-
-

- SCO -

-
-

- The Santa Cruz Operation -

-
-

- SHA1 -

-
-

- Secure-Hash Algorithm 1 -

-
-

- TLDP -

-
-

- The Linux Documentation Project -

-
-

- TFTP -

-
-

- Trivial File Transfer Protocol -

-
-

- TLS -

-
-

- Thread-Local Storage -

-
-

- UID -

-
-

- User Identifier -

-
-

- umask -

-
-

- user file-creation mask -

-
-

- USB -

-
-

- Universal Serial Bus -

-
-

- UTC -

-
-

- Coordinated Universal Time -

-
-

- UUID -

-
-

- Universally Unique Identifier -

-
-

- VC -

-
-

- Virtual Console -

-
-

- VGA -

-
-

- Video Graphics Array -

-
-

- VT -

-
-

- Virtual Terminal -

-
-
-
-
-
-
-
-

- Apêndice B. Reconhecimentos -

-
-
-
-

- Nós gostaríamos de agradecer às seguintes pessoas e organizações - por suas contribuições para o Projeto Linux From Scratch. -

-
-
    -
  • -

    - Gerard Beekmans - <gerard AT linuxfromscratch D0T org> – Criador do LFS -

    -
  • -
  • -

    - Bruce Dubbs - <bdubbs AT linuxfromscratch D0T org> – Editor-chefe do - LFS -

    -
  • -
  • -

    - Jim - Gifford <jim AT linuxfromscratch D0T org> – - Colíder do Projeto CLFS -

    -
  • -
  • -

    - Pierre Labastie - <pierre AT linuxfromscratch D0T org> – Editor do BLFS - e Líder do ALFS -

    -
  • -
  • -

    - DJ - Lucas <dj AT linuxfromscratch D0T org> – Editor do - LFS e BLFS -

    -
  • -
  • -

    - Ken - Moffat <ken AT linuxfromscratch D0T org> – Editor - do BLFS -

    -
  • -
  • -

    - Incontáveis outras pessoas nas várias listas de discussão - do LFS e BLFS que ajudaram a tornar este livro possível - dando suas sugestões; testando o livro; e submetendo - relatórios de defeitos; instruções; e suas experiências com - a instalação de vários pacotes. -

    -
  • -
-
-

- Tradutoras(es) -

-
-
    -
  • -

    - Manuel - Canales Esparcia <macana AT macana-es D0T com> – - Projeto de tradução do LFS para espanhol -

    -
  • -
  • -

    - Johan Lenglet - <johan AT linuxfromscratch D0T org> – Projeto de - tradução do LFS para francês até 2008 -

    -
  • -
  • -

    - Jean-Philippe - Mengual <jmengual AT linuxfromscratch D0T org> – - Projeto de tradução do LFS para francês 2008-2016 -

    -
  • -
  • -

    - Julien Lepiller - <jlepiller AT linuxfromscratch D0T org> – Projeto de - tradução do LFS para francês 2017-presente -

    -
  • -
  • -

    - Anderson Lizardo - <lizardo AT linuxfromscratch D0T org> – Projeto de - tradução do LFS para português -

    -
  • -
  • -

    - Thomas - Reitelbach <tr AT erdfunkstelle D0T de> – Projeto - de tradução do LFS para alemão -

    -
  • -
  • -

    - Anton Maisak - <info AT linuxfromscratch D0T org D0T ru> – Projeto de - tradução do LFS para russo -

    -
  • -
  • -

    - Elena Shevcova - <helen AT linuxfromscratch D0T org D0T ru> – Projeto de - tradução do LFS para russo -

    -
  • -
-
-

- Mantenedoras(es) de Espelhos -

-

- Espelhos da América do Norte -

-
-
    -
  • -

    - Scott - Kveton <scott AT osuosl D0T org> – espelho - lfs.oregonstate.edu -

    -
  • -
  • -

    - William - Astle <lost AT l-w D0T net> – espelho - ca.linuxfromscratch.org -

    -
  • -
  • -

    - Eujon Sellers - <jpolen@rackspace.com> – espelho - lfs.introspeed.com -

    -
  • -
  • -

    - Justin - Knierim <tim@idge.net> – espelho - lfs-matrix.net -

    -
  • -
-
-

- Espelhos da América do Sul -

-
- -
-

- Espelhos Europeus -

-
-
    -
  • -

    - Guido - Passet <guido AT primerelay D0T net> – espelho - nl.linuxfromscratch.org -

    -
  • -
  • -

    - Bastiaan - Jacques <baafie AT planet D0T nl> – espelho - lfs.pagefault.net -

    -
  • -
  • -

    - Sven - Cranshoff <sven D0T cranshoff AT lineo D0T be> – - espelho lfs.lineo.be -

    -
  • -
  • -

    - Scarlet Belgium – espelho lfs.scarlet.be -

    -
  • -
  • -

    - Sebastian - Faulborn <info AT aliensoft D0T org> – espelho - lfs.aliensoft.org -

    -
  • -
  • -

    - Stuart - Fox <stuart AT dontuse D0T ms> – espelho - lfs.dontuse.ms -

    -
  • -
  • -

    - Ralf - Uhlemann <admin AT realhost D0T de> – espelho - lfs.oss-mirror.org -

    -
  • -
  • -

    - Antonin Sprinzl - <Antonin D0T Sprinzl AT tuwien D0T ac D0T at> – espelho - at.linuxfromscratch.org -

    -
  • -
  • -

    - Fredrik Danerklint - <fredan-lfs AT fredan D0T org> – espelho - se.linuxfromscratch.org -

    -
  • -
  • -

    - Franck - <franck AT linuxpourtous D0T com> – espelho - lfs.linuxpourtous.com -

    -
  • -
  • -

    - Philippe - Baque <baque AT cict D0T fr> – espelho lfs.cict.fr -

    -
  • -
  • -

    - Vitaly - Chekasin <gyouja AT pilgrims D0T ru> – espelho - lfs.pilgrims.ru -

    -
  • -
  • -

    - Benjamin - Heil <kontakt AT wankoo D0T org> – espelho - lfs.wankoo.org -

    -
  • -
  • -

    - Anton Maisak - <info AT linuxfromscratch D0T org D0T ru> – espelho - linuxfromscratch.org.ru -

    -
  • -
-
-

- Espelhos Asiáticos -

-
-
    -
  • -

    - Satit - Phermsawang <satit AT wbac D0T ac D0T th> – espelho - lfs.phayoune.org -

    -
  • -
  • -

    - Shizunet - Co.,Ltd. <info AT shizu-net D0T jp> – espelho - lfs.mirror.shizu-net.jp -

    -
  • -
  • -

    - Init - World <http://www.initworld.com/> – espelho - lfs.initworld.com -

    -
  • -
-
-

- Espelhos da Austrália -

-
-
    -
  • -

    - Jason - Andrade <jason AT dstc D0T edu D0T au> – espelho - au.linuxfromscratch.org -

    -
  • -
-
-

- Ex-membros da Equipe do Projeto -

-
-
    -
  • -

    - Christine - Barczak <theladyskye AT linuxfromscratch D0T org> - – Editor do Livro LFS -

    -
  • -
  • -

    - Archaic <archaic@linuxfromscratch.org> – - Escritor/Editor Técnico do LFS (Dicas e Patches); Líder do - Projeto HLFS; Editor do BLFS; Mantenedor do Projeto Dicas e - Patches -

    -
  • -
  • -

    - Matthew Burgess - <matthew AT linuxfromscratch D0T org> – Líder de - Projeto do LFS; Escritor/Editor Técnico do LFS -

    -
  • -
  • -

    - Nathan Coulson - <nathan AT linuxfromscratch D0T org> – Mantenedor de - Scripts de Inicialização do LFS -

    -
  • -
  • -

    - Timothy Bauscher -

    -
  • -
  • -

    - Robert Briggs -

    -
  • -
  • -

    - Ian Chilton -

    -
  • -
  • -

    - Jeroen Coumans - <jeroen AT linuxfromscratch D0T org> – Desenvolvedor - de Sítio da Web; Mantenedor de FAQ -

    -
  • -
  • -

    - Manuel Canales - Esparcia <manuel AT linuxfromscratch D0T org> – - Mantenedor de XML e XSL do LFS/BLFS/HLFS -

    -
  • -
  • -

    - Alex Groenewoud – Escritor Técnico do LFS -

    -
  • -
  • -

    - Marc Heerdink -

    -
  • -
  • -

    - Jeremy Huntwork - <jhuntwork AT linuxfromscratch D0T org> – Escritor - Técnico do LFS; Mantenedor de LiveCD do LFS -

    -
  • -
  • -

    - Bryan Kadzban - <bryan AT linuxfromscratch D0T org> – Escritor Técnico - do LFS -

    -
  • -
  • -

    - Mark Hymers -

    -
  • -
  • -

    - Seth W. Klein – Mantenedor do FAQ -

    -
  • -
  • -

    - Nicholas Leippe - <nicholas AT linuxfromscratch D0T org> – Mantenedor da - Wiki -

    -
  • -
  • -

    - Anderson Lizardo - <lizardo AT linuxfromscratch D0T org> – Mantenedor de - Scripts de Infraestrutura de Sítio Web -

    -
  • -
  • -

    - Randy McMurchy - <randy AT linuxfromscratch D0T org> – Líder de Projeto - do BLFS; Editor do LFS -

    -
  • -
  • -

    - Dan Nicholson - <dnicholson AT linuxfromscratch D0T org> – Editor do - LFS e BLFS -

    -
  • -
  • -

    - Alexander E. - Patrakov <alexander AT linuxfromscratch D0T org> – - Escritor Técnico do LFS; Editor de Internacionalização do - LFS; Mantenedor de Live CD do LFS -

    -
  • -
  • -

    - Simon Perreault -

    -
  • -
  • -

    - Scot Mc Pherson - <scot AT linuxfromscratch D0T org> – Mantenedor do - Gateway NNTP do LFS -

    -
  • -
  • -

    - Douglas R. Reno - <renodr AT linuxfromscratch D0T org> – Editor do - Systemd -

    -
  • -
  • -

    - Ryan Oliver - <ryan AT linuxfromscratch D0T org> – Colíder de - Projeto do CLFS -

    -
  • -
  • -

    - Greg - Schafer <gschafer AT zip D0T com D0T au> – Escritor - Técnico do LFS e Arquiteto do Método de Construção de - Habilitação de 64 bits de Próxima Geração -

    -
  • -
  • -

    - Jesse Tie-Ten-Quee – Escritor Técnico do LFS -

    -
  • -
  • -

    - James Robertson - <jwrober AT linuxfromscratch D0T org> – Mantenedor do - Bugzilla -

    -
  • -
  • -

    - Tushar Teredesai - <tushar AT linuxfromscratch D0T org> – Editor do Livro - BLFS; Líder de Projeto de Dicas e Patches -

    -
  • -
  • -

    - Jeremy Utley - <jeremy AT linuxfromscratch D0T org> – Escritor - Técnico do LFS; Mantenedor do Bugzilla; Mantenedor de - Scripts de Inicialização do LFS -

    -
  • -
  • -

    - Zack - Winkles <zwinkles AT gmail D0T com> – Escritor - Técnico do LFS -

    -
  • -
-
-
-
-
-
-
-

- Apêndice C. Dependências -

-
-
-
-

- Cada pacote construído no LFS depende de um ou mais outros - pacotes para construir e instalar adequadamente. Alguns pacotes - até participam em dependências circulares, isto é, o primeiro - pacote depende do segundo o qual, na sequência, depende do - primeiro. Por causa dessas dependências, a ordem na qual pacotes - são construídos no LFS é muito importante. O propósito desta - página é o de documentar as dependências de cada pacote - construído no LFS. -

-

- Para cada pacote que é construído, existem três, e as vezes até - cinco tipos de dependências listadas abaixo. A primeira lista que - outros pacotes necessitam estar disponíveis para compilar e - instalar o pacote em questão. A segunda lista os pacotes que - precisam estar disponíveis quando quaisquer aplicativos ou - bibliotecas oriundos do pacote forem usados em tempo de execução. - A terceira lista que pacotes, em adição àqueles na primeira - lista, necessitam estar disponíveis para executar as suítes de - teste. A quarta lista de dependências são pacotes que exigem que - esse pacote esteja construído e instalado no local final dele - antes que eles sejam construídos e instalados. Na maioria dos - casos, isso é porque esses pacotes codificarão rigidamente - caminhos para binários dentro dos scripts deles. Se não for - construído em uma certa ordem, [então] isso poderia resultar em - caminhos como /tools/bin/[binário] sendo colocados dentro de - scripts instalados para o sistema final. Isso obviamente não é - desejável. -

-

- A última lista de dependências são pacotes opcionais que não são - endereçados no LFS, porém poderiam ser úteis para a(o) - usuária(o). Esses pacotes talvez tenham dependências obrigatórias - ou opcionais adicionais deles próprios. Para essas dependências, - a prática recomendada é a de instalá-las depois de completar o - livro LFS e então voltar e reconstruir o pacote LFS. Em muitos - casos, a reinstalação é endereçada no BLFS. -

-

- Acl -

-
- -
-
- Instalação depende de: - Attr, Bash, Binutils, Coreutils, GCC, - Gettext, Grep, M4, Make, Perl, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Attr e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Automake, Diffutils, Findutils e - Libtool -
-
-
-
- -
-
- Precisa ser instalado antes - de: Coreutils, Sed, Tar e - Vim -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Attr -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, M4, Make, Perl, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Automake, Diffutils, Findutils e - Libtool -
-
-
-
- -
-
- Precisa ser instalado antes - de: Acl e Libcap -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Autoconf -

-
- -
-
- Instalação depende de: - Bash, Coreutils, Grep, M4, Make, Perl, - Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Coreutils, - Grep, M4, Make, Sed e Texinfo -
-
-
-
- -
-
- Suíte de teste depende de: - Automake, Diffutils, Findutils, GCC e - Libtool -
-
-
-
- -
-
- Precisa ser instalado antes - de: Automake -
-
-
-
- -
-
- Dependências opcionais: - - Emacs -
-
-
-

- Automake -

-
- -
-
- Instalação depende de: - Autoconf, Bash, Coreutils, Gettext, - Grep, M4, Make, Perl, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Coreutils, - Grep, M4, Sed e Texinfo -
-
-
-
- -
-
- Suíte de teste depende de: - Binutils, Bison, Bzip2, DejaGNU, - Diffutils, Expect, Findutils, Flex, GCC, Gettext, Gzip, - Libtool e Tar -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Bash -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bison, Coreutils, - Diffutils, Gawk, GCC, Glibc, Grep, Make, Ncurses, Patch, - Readline, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc, Ncurses e - Readline -
-
-
-
- -
-
- Suíte de teste depende de: - Expect e Shadow -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - Xorg -
-
-
-

- Bc -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Grep e Make -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc, Ncurses e - Readline -
-
-
-
- -
-
- Suíte de teste depende de: - Gawk -
-
-
-
- -
-
- Precisa ser instalado antes - de: Linux -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Binutils -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - File, Flex, Gawk, GCC, Glibc, Grep, Make, Perl, Sed, Texinfo - e Zlib -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - DejaGNU e Expect -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Elfutils -
-
-
-

- Bison -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, M4, Make, Perl e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils, Findutils e Flex -
-
-
-
- -
-
- Precisa ser instalado antes - de: Kbd e Tar -
-
-
-
- -
-
- Dependências opcionais: - - Doxygen -
-
-
-

- Bzip2 -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - GCC, Glibc, Make e Patch -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: File -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Check -

-
- -
-
- Instalação depende de: - Gawk, GCC, Grep, Make, Sed e - Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash e Gawk -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Coreutils -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, GMP, Grep, Libcap, Make, OpenSSL, Patch, - Perl, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils, E2fsprogs, Findutils, Shadow - e Util-linux -
-
-
-
- -
-
- Precisa ser instalado antes - de: Bash, Diffutils, Eudev, - Findutils e Man-DB -
-
-
-
- -
-
- Dependências opcionais: - Expect.pm e IO::Tty -
-
-
-

- DejaGNU -

-
- -
-
- Instalação depende de: - Bash, Coreutils, Diffutils, Expect, - GCC, Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Expect e Bash -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Diffutils -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Gawk, GCC, - Gettext, Glibc, Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Perl -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- E2fsprogs -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, Gzip, Make, Sed, Texinfo e - Util-linux -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e - Util-linux -
-
-
-
- -
-
- Suíte de teste depende de: - Procps-ng e Psmisc -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Eudev -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Gawk, GCC, - Glibc, Grep, Gperf, Make, Sed e Util-linux -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc, Kmod, Xz, - Util-linux e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Expat -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Gawk, GCC, - Glibc, Grep, Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Python e - XML::Parser -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Expect -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - GCC, Glibc, Grep, Make, Patch, Sed e Tcl -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e Tcl -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - Tk -
-
-
-

- File -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bzip2, Coreutils, - Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed, Xz e - Zlib -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc, Bzip2, Xz e - Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - libseccomp -
-
-
-

- Findutils -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - DejaGNU, Diffutils e Expect -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Flex -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, M4, Make, Patch, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Glibc e - M4 -
-
-
-
- -
-
- Suíte de teste depende de: - Bison e Gawk -
-
-
-
- -
-
- Precisa ser instalado antes - de: Binutils, IProute2, Kbd, - Kmod e Man-DB -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Gawk -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, GMP, Grep, Make, MPFR, Patch, Readline, Sed e - Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Glibc e - Mpfr -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - libsigsegv -
-
-
-

- GCC -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Findutils, Gawk, GCC, Gettext, Glibc, GMP, Grep, M4, Make, - MPC, MPFR, Patch, Perl, Sed, Tar, Texinfo e Zstd -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Binutils, - Glibc, Mpc e Python -
-
-
-
- -
-
- Suíte de teste depende de: - DejaGNU, Expect e Shadow -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - GNAT e ISL -
-
-
-

- GDBM -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - GCC, Grep, Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Glibc e - Readline -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Gettext -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Gawk, GCC, - Glibc, Grep, Make, Ncurses, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Acl, Bash, Gcc e - Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils, Perl e Tcl -
-
-
-
- -
-
- Precisa ser instalado antes - de: Automake e Bison -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Glibc -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bison, Coreutils, - Diffutils, Gawk, GCC, Gettext, Grep, Gzip, Cabeçalhos da API - do Linux, Make, Perl, Python, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Nenhuma -
-
-
-
- -
-
- Suíte de teste depende de: - File -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- GMP -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, M4, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: GCC e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: MPFR e GCC -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Gperf -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc e - Make -
-
-
-
- -
-
- Exigido em tempo de - execução: GCC e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils e Expect -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Grep -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - GCC, Gettext, Glibc, Grep, Make, Patch, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Gawk -
-
-
-
- -
-
- Precisa ser instalado antes - de: Man-DB -
-
-
-
- -
-
- Dependências opcionais: - - PCRE e - libsigsegv -
-
-
-

- Groff -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bison, Coreutils, Gawk, - GCC, Glibc, Grep, Make, Patch, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: GCC, Glibc e - Perl -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Man-DB e Perl -
-
-
-
- -
-
- Dependências opcionais: - - ghostscript e - Uchardet -
-
-
-

- GRUB -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bison, Coreutils, - Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed, - Texinfo e Xz -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, GCC, Gettext, - Glibc, Xz e Sed -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Gzip -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils e Less -
-
-
-
- -
-
- Precisa ser instalado antes - de: Man-DB -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Iana-Etc -

-
- -
-
- Instalação depende de: - Coreutils -
-
-
-
- -
-
- Exigido em tempo de - execução: Nenhuma -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Perl -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Inetutils -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Grep, Make, Ncurses, Patch, Sed, Texinfo e Zlib -
-
-
-
- -
-
- Exigido em tempo de - execução: GCC, Glibc, Ncurses - e Readline -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Tar -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Intltool -

-
- -
-
- Instalação depende de: - Bash, Gawk, Glibc, Make, Perl, Sed e - XML::Parser -
-
-
-
- -
-
- Exigido em tempo de - execução: Autoconf, Automake, - Bash, Glibc, Grep, Perl e Sed -
-
-
-
- -
-
- Suíte de teste depende de: - Perl -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- IProute2 -

-
- -
-
- Instalação depende de: - Bash, Bison, Coreutils, Flex, GCC, - Glibc, Make, Libcap, Libelf, Cabeçalhos da API do Linux e - Zlib -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Coreutils, - Glibc, Libcap, Libelf e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - Berkeley DB e - iptables -
-
-
-

- Jinja2 -

-
- -
-
- Instalação depende de: - MarkupSafe e Python -
-
-
-
- -
-
- Exigido em tempo de - execução: MarkupSafe e - Python -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Systemd -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Kbd -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bison, Check, - Coreutils, Flex, GCC, Gettext, Glibc, Gzip, Make, Patch e - Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Coreutils e - Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Kmod -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bison, Coreutils, Flex, - GCC, Gettext, Glibc, Gzip, Make, OpenSSL, Pkg-config, Sed, Xz - e Zlib -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc, Xz e - Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Eudev -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Less -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - GCC, Glibc, Grep, Make, Ncurses e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e - Ncurses -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Gzip -
-
-
-
- -
-
- Dependências opcionais: - - PCRE -
-
-
-

- Libcap -

-
- -
-
- Instalação depende de: - Attr, Bash, Binutils, Coreutils, GCC, - Glibc, Perl, Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: IProute2 e Shadow -
-
-
-
- -
-
- Dependências opcionais: - - Linux-PAM -
-
-
-

- Libelf -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc e - Make -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: IProute2 e Linux -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Libffi -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - DejaGnu -
-
-
-
- -
-
- Precisa ser instalado antes - de: Python -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Libpipeline -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Check -
-
-
-
- -
-
- Precisa ser instalado antes - de: Man-DB -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Libtool -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Autoconf, Automake, - Bash, Binutils, Coreutils, File, GCC, Glibc, Grep, Make e - Sed -
-
-
-
- -
-
- Suíte de teste depende de: - Autoconf, Automake e Findutils -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Linux -

-
- -
-
- Instalação depende de: - Bash, Bc, Binutils, Coreutils, - Diffutils, Findutils, GCC, Glibc, Grep, Gzip, Kmod, Libelf, - Make, Ncurses, OpenSSL, Perl e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Nenhuma -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - cpio -
-
-
-

- Cabeçalhos da API do Linux -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Findutils, - GCC, Glibc, Grep, Gzip, Make, Perl e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Nenhuma -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- M4 -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils -
-
-
-
- -
-
- Precisa ser instalado antes - de: Autoconf e Bison -
-
-
-
- -
-
- Dependências opcionais: - - libsigsegv -
-
-
-

- Make -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Perl e Procps-ng -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - Guile -
-
-
-

- Man-DB -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bzip2, Coreutils, Flex, - GCC, GDBM, Gettext, Glibc, Grep, Groff, Gzip, Less, - Libpipeline, Make, Sed e Xz -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, GDBM, Groff, - Glibc, Gzip, Less, Libpipeline e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Util-linux -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - libseccomp -
-
-
-

- Man-Pages -

-
- -
-
- Instalação depende de: - Bash, Coreutils e Make -
-
-
-
- -
-
- Exigido em tempo de - execução: Nenhuma -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- MarkupSafe -

-
- -
-
- Instalação depende de: - Python -
-
-
-
- -
-
- Exigido em tempo de - execução: Python -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Jinja2 -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Meson -

-
- -
-
- Instalação depende de: - Ninja e Python -
-
-
-
- -
-
- Exigido em tempo de - execução: Python -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Systemd -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- MPC -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, GMP, Make, MPFR, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc, GMP e - MPFR -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: GCC -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- MPFR -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, GMP, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e GMP -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Gawk e GCC -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Ncurses -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, Make, Patch e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Bash, GRUB, Inetutils, - Less, Procps-ng, Psmisc, Readline, Texinfo, Util-linux e - Vim -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Ninja -

-
- -
-
- Instalação depende de: - Binutils, Coreutils, GCC e - Python -
-
-
-
- -
-
- Exigido em tempo de - execução: GCC e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Meson -
-
-
-
- -
-
- Dependências opcionais: - - Asciidoc, - Doxygen, - Emacs e re2c -
-
-
-

- OpenSSL -

-
- -
-
- Instalação depende de: - Binutils, Coreutils, GCC, Make e - Perl -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e Perl -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Coreutils, Kmod e - Linux -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Patch -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Grep, Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e Patch -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - Ed -
-
-
-

- Perl -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Gawk, GCC, - GDBM, Glibc, Grep, Groff, Make, Sed e Zlib -
-
-
-
- -
-
- Exigido em tempo de - execução: GDBM e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Iana-Etc, Less e Procps-ng -
-
-
-
- -
-
- Precisa ser instalado antes - de: Autoconf -
-
-
-
- -
-
- Dependências opcionais: - - Berkeley DB -
-
-
-

- Pkg-config -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Gawk, GCC, - Glibc, Grep, Make, Popt e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Kmod -
-
-
-
- -
-
- Dependências opcionais: - - Glib2 -
-
-
-

- Procps-ng -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Make e Ncurses -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - DejaGNU -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Psmisc -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, Make, Ncurses e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e - Ncurses -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Python -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Expat, GCC, - Gdbm, Gettext, Glibc, Grep, Libffi, Make, Ncurses, OpenSSL, - Sed e Util-linux -
-
-
-
- -
-
- Exigido em tempo de - execução: Bzip2, Expat, Gdbm, - Glibc, Libffi, Ncurses, OpenSSL e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - GDB e Valgrind -
-
-
-
- -
-
- Precisa ser instalado antes - de: Ninja -
-
-
-
- -
-
- Dependências opcionais: - - Berkeley DB, - libnsl, - SQLite e - Tk -
-
-
-

- Readline -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Gawk, GCC, - Glibc, Grep, Make, Ncurses, Patch, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e - Ncurses -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Bash e Gawk -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Sed -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Acl, Attr e - Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils e Gawk -
-
-
-
- -
-
- Precisa ser instalado antes - de: E2fsprogs, File, Libtool e - Shadow -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Shadow -

-
- -
-
- Instalação depende de: - Acl, Attr, Bash, Binutils, Coreutils, - Diffutils, Findutils, Gawk, GCC, Gettext, Glibc, Grep, - Libcap, Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Coreutils -
-
-
-
- -
-
- Dependências opcionais: - - CrackLib e - Linux-PAM -
-
-
-

- Sysklogd -

-
- -
-
- Instalação depende de: - Binutils, Coreutils, GCC, Glibc, Make e - Patch -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Systemd -

-
- -
-
- Instalação depende de: - Acl, Attr, Bash, Binutils, Coreutils, - Diffutils, Expat, Gawk, GCC, Glibc, Gperf, Grep, Jinja2, - Libcap, Meson, Sed, Util-linux e Zstd -
-
-
-
- -
-
- Exigido em tempo de - execução: Acl, Attr, Glibc, - Libcap e Util-linux -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
- -

- Sysvinit -

-
- -
-
- Instalação depende de: - Binutils, Coreutils, GCC, Glibc, Make e - Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Tar -

-
- -
-
- Instalação depende de: - Acl, Attr, Bash, Binutils, Bison, - Coreutils, GCC, Gettext, Glibc, Grep, Inetutils, Make, Sed e - Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Acl, Attr, Bzip2, - Glibc, Gzip e Xz -
-
-
-
- -
-
- Suíte de teste depende de: - Autoconf, Diffutils, Findutils, Gawk e - Gzip -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Tcl -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - GCC, Glibc, Grep, Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Texinfo -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, Make, Ncurses, Patch e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e - Ncurses -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Util-linux -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Eudev, Findutils, Gawk, GCC, Gettext, Glibc, Grep, Libcap, - Make, Ncurses, Sed e Zlib -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc, Libcap, - Ncurses, Readline e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - Linux-PAM e - smartmontools -
-
-
-

- Vim -

-
- -
-
- Instalação depende de: - Acl, Attr, Bash, Binutils, Coreutils, - Diffutils, GCC, Glibc, Grep, Make, Ncurses e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Acl, Attr, Glibc, - Python, Ncurses e Tcl -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - Xorg, - GTK+2, LessTif, - Ruby e - GPM -
-
-
-

- XML::Parser -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Expat, GCC, - Glibc, Make e Perl -
-
-
-
- -
-
- Exigido em tempo de - execução: Expat, Glibc e - Perl -
-
-
-
- -
-
- Suíte de teste depende de: - Perl -
-
-
-
- -
-
- Precisa ser instalado antes - de: Intltool -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Xz -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - GCC, Glibc e Make -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Eudev, File, GRUB, Kmod e - Man-DB -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Zlib -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: File, Kmod, Perl e - Util-linux -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Zstd -

-
- -
-
- Instalação depende de: - Binutils, Coreutils, GCC, Glibc, Gzip, - Make e Xz -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: GCC e Systemd -
-
-
-
- -
-
- Dependências opcionais: - LZ4 -
-
-
-
-
-
-
-
-

- Apêndice D. Licenças do LFS -

-
-
-
-

- Este livro [escrito originalmente em inglês] está licenciado sob - a licença da Creative Commons - Attribution-NonCommercial-ShareAlike 2.0. -

-

- A "versão modificada" do livro (traduzida para o idioma português - escrito e falado no Brasil) ("Obra derivada") está licenciada sob - a Licença de Documentação Livre GNU, versão 1.3 ou qualquer - versão posterior publicada pela Free Software Foundation. -

-

- As instruções de computador tem permissão para serem extraídas a - partir do livro sob a Licença do MIT. -

-
-
-
-
-

- D.1. Licença da Creative Commons -

-
-
-
-

- Creative Commons Legal Code -

-

- Atribuição - Uso não-Comercial - Compartilhamento pela mesma - licença 2.0 -

-
-

- Importante -

-

- A INSTITUIÇÃO CREATIVE COMMONS NÃO É UM ESCRITÓRIO DE - ADVOCACIA E NÃO PRESTA SERVIÇOS JURÍDICOS. A DISTRIBUIÇÃO - DESTA LICENÇA NÃO ESTABELECE QUALQUER RELAÇÃO ADVOCATÍCIA. O - CREATIVE COMMONS DISPONIBILIZA ESTA INFORMAÇÃO "NO ESTADO EM - QUE SE ENCONTRA". O CREATIVE COMMONS NÃO FAZ QUALQUER - GARANTIA QUANTO ÀS INFORMAÇÕES DISPONIBILIZADAS E SE EXONERA - DE QUALQUER RESPONSABILIDADE POR DANOS RESULTANTES DO SEU - USO. -

-
-

- Licença -

-

- A OBRA (CONFORME DEFINIDA ABAIXO) É DISPONIBILIZADA DE ACORDO - COM OS TERMOS DESTA LICENÇA PÚBLICA CREATIVE COMMONS ("CCPL" OU - "LICENÇA"). A OBRA É PROTEGIDA POR DIREITO AUTORAL E/OU OUTRAS - LEIS APLICÁVEIS. QUALQUER USO DA OBRA QUE NÃO O AUTORIZADO SOB - ESTA LICENÇA OU PELA LEGISLAÇÃO AUTORAL É PROIBIDO. -

-

- AO EXERCER QUAISQUER DOS DIREITOS À OBRA AQUI CONCEDIDOS, VOCÊ - ACEITA E CONCORDA FICAR OBRIGADO NOS TERMOS DESTA LICENÇA. O - LICENCIANTE CONCEDE A VOCÊ OS DIREITOS AQUI CONTIDOS EM - CONTRAPARTIDA À SUA ACEITAÇÃO DESTES TERMOS E CONDIÇÕES. -

-
-
    -
  1. -

    - Definições -

    -
    -
      -
    1. -

      - "Obra Coletiva" significa uma obra, tal como uma - edição periódica, antologia ou enciclopédia, na - qual a Obra em sua totalidade e de forma - inalterada, em conjunto com um número de outras - contribuições, constituindo obras independentes e - separadas em si mesmas, são agregadas em um - trabalho coletivo. Uma obra que constitua uma Obra - Coletiva não será considerada Obra Derivada - (conforme definido abaixo) para os propósitos desta - licença. -

      -
    2. -
    3. -

      - "Obra Derivada" significa uma obra baseada sobre a - Obra ou sobre a Obra e outras obras pré-existentes, - tal como uma tradução, arranjo musical, - dramatização, romantização, versão de filme, - gravação de som, reprodução de obra artística, - resumo, condensação ou qualquer outra forma na qual - a Obra possa ser refeita, transformada ou adaptada, - com a exceção de que uma obra que constitua uma - Obra Coletiva não será considerada Obra Derivada - para fins desta licença. Para evitar dúvidas, - quando a Obra for uma composição musical ou - gravação de som, a sincronização da Obra em relação - cronometrada com uma imagem em movimento - (“synching”) será considerada uma Obra - Derivada para os propósitos desta licença. -

      -
    4. -
    5. -

      - "Licenciante" significa a pessoa física ou a - jurídica que oferece a Obra sob os termos desta - licença. -

      -
    6. -
    7. -

      - "Autor Original" significa a pessoa física ou - jurídica que criou a Obra. -

      -
    8. -
    9. -

      - "Obra" significa a obra autoral, passível de - proteção pelo direito autoral, oferecida sob os - termos desta licença. -

      -
    10. -
    11. -

      - "Você" significa a pessoa física ou jurídica - exercendo direitos sob esta Licença que não tenha - previamente violado os termos desta Licença com - relação à Obra, ou que tenha recebido permissão - expressa do Licenciante para exercer direitos sob - esta Licença apesar de uma violação prévia. -

      -
    12. -
    13. -

      - "Elementos da Licença" significa os principais - atributos da licença correspondente, conforme - escolhidos pelo licenciante e indicados no título - desta licença: Atribuição, Compartilhamento pela - Mesma Licença. -

      -
    14. -
    -
    -
  2. -
  3. -

    - Direitos de Uso Legítimo. Nada nesta licença deve ser - interpretado de modo a reduzir, limitar ou restringir - quaisquer direitos relativos ao uso legítimo, ou outras - limitações sobre os direitos exclusivos do titular de - direitos autorais sob a legislação autoral ou quaisquer - outras leis aplicáveis. -

    -
  4. -
  5. -

    - Concessão da Licença. O Licenciante concede a Você uma - licença de abrangência mundial, sem royalties, - não-exclusiva, perpétua (pela duração do direito autoral - aplicável), sujeita aos termos e condições desta Licença, - para exercer os direitos sobre a Obra definidos abaixo: -

    -
    -
      -
    1. -

      - reproduzir a Obra, incorporar a Obra em uma ou mais - Obras Coletivas e reproduzir a Obra quando - incorporada em Obra Coletiva; -

      -
    2. -
    3. -

      - criar e reproduzir Obras Derivadas; -

      -
    4. -
    5. -

      - distribuir cópias ou gravações da Obra, exibir - publicamente, executar publicamente e executar - publicamente por meio de uma transmissão de áudio - digital a Obra, inclusive quando incorporada em - Obras Coletivas; -

      -
    6. -
    7. -

      - distribuir cópias ou gravações de Obras Derivadas, - exibir publicamente, executar publicamente e - executar publicamente por meio de uma transmissão - digital de áudio Obras Derivadas. -

      -
    8. -
    -
    -

    - Os direitos acima podem ser exercidos em todas as mídias - e formatos, independente de serem conhecidos agora ou - concebidos posteriormente. Os direitos acima incluem o - direito de fazer modificações que forem tecnicamente - necessárias para exercer os direitos em outras mídias, - meios e formatos. Todos os direitos não concedidos - expressamente pelo Licenciante ficam aqui reservados, - incluindo, mas não se limitando, os direitos definidos - nas Seções 4(e) e 4(f). -

    -
  6. -
  7. -

    - Restrições. A licença concedida na Seção 3 acima está - expressamente sujeita e limitada aos seguintes termos: -

    -
    -
      -
    1. -

      - Você pode distribuir, exibir publicamente, executar - publicamente ou executar publicamente por meios - digitais a Obra apenas sob os termos desta Licença, - e Você deve incluir uma cópia desta licença, ou o - Identificador Uniformizado de Recursos (Uniform - Resource Identifier) para esta Licença, com cada - cópia ou gravação da Obra que Você distribuir, - exibir publicamente, executar publicamente, ou - executar publicamente por meios digitais. Você não - poderá oferecer ou impor quaisquer termos sobre a - Obra que alterem ou restrinjam os termos desta - Licença ou o exercício dos direitos aqui concedidos - aos destinatários. Você não poderá sub-licenciar a - Obra. Você deverá manter intactas todas as - informações que se referem a esta Licença e à - exclusão de garantias. Você não pode distribuir, - exibir publicamente, executar publicamente ou - executar publicamente por meios digitais a Obra com - qualquer medida tecnológica que controle o acesso - ou o uso da Obra de maneira inconsistente com os - termos deste Acordo de Licença. O disposto acima se - aplica à Obra enquanto incorporada em uma Obra - Coletiva, mas isto não requer que a Obra Coletiva, - à parte da Obra em si, esteja sujeita aos termos - desta Licença. Se Você criar uma Obra Coletiva, em - havendo notificação de qualquer Licenciante, Você - deve, na medida do razoável, remover da Obra - Coletiva qualquer referência a este Licenciante ou - Autor Original, conforme solicitado. Se você criar - uma Obra Derivada, em havendo notificação de - qualquer Licenciante, Você deve, na medida do - razoável, remover da Obra Derivada qualquer - referência a este Licenciante ou ao Autor Original, - conforme solicitado. -

      -
    2. -
    3. -

      - Você pode distribuir, exibir publicamente, executar - publicamente ou executar publicamente por meios - digitais uma Obra Derivada somente sob os termos - desta Licença, ou de uma versão posterior desta - licença com os mesmos Elementos da Licença desta - licença, ou de uma licença do internacional do - Creative Commons (iCommons) que contenha os mesmos - Elementos da Licença desta Licença (por exemplo, - Atribuição, Uso Não Comercial, Compartilhamento - pela Mesma Licença Japão). Você deve incluir uma - cópia desta licença ou de outra licença - especificada na sentença anterior, ou o - Identificador Uniformizado de Recursos (Uniform - Resource Identifier) para esta licença ou de outra - licença especificada na sentença anterior, com cada - cópia ou gravação de cada Obra Derivada que Você - distribuir, exibir publicamente, executar - publicamente ou executar publicamente por meios - digitais. Você não poderá oferecer ou impor - quaisquer termos sobre a Obra Derivada que alterem - ou restrinjam os termos desta Licença ou o - exercício dos direitos aqui concedidos aos - destinatários, e Você deverá manter intactas todas - as informações que se refiram a esta Licença e à - exclusão de garantias. Você não poderá distribuir, - exibir publicamente, executar publicamente ou - executar publicamente por meios digitais a Obra - Derivada com qualquer medida tecnológica que - controle o acesso ou o uso da Obra de maneira - inconsistente com os termos deste Acordo de - Licença. O disposto acima se aplica à Obra Derivada - quando incorporada em uma Obra Coletiva, mas isto - não requer que a Obra Coletiva, à parte da Obra em - si, esteja sujeita aos termos desta Licença. -

      -
    4. -
    5. -

      - Você não poderá exercer nenhum dos direitos acima - concedidos a Você na Seção 3 de qualquer maneira - que seja predominantemente intencionada ou - direcionada à obtenção de vantagem comercial ou - compensação monetária privada. A troca da Obra por - outros materiais protegidos por direito autoral - através de compartilhamento digital de arquivos ou - de outras formas não deverá ser considerada como - intencionada ou direcionada à obtenção de vantagens - comerciais ou compensação monetária privada, desde - que não haja pagamento de nenhuma compensação - monetária com relação à troca de obras protegidas - por direito de autor. -

      -
    6. -
    7. -

      - Se Você distribuir, exibir publicamente, executar - publicamente ou executar publicamente por meios - digitais a Obra ou qualquer Obra Derivada ou Obra - Coletiva, Você deve manter intactas todas as - informações relativas a direitos autorais sobre a - Obra e atribuir ao Autor Original crédito razoável - com relação ao meio ou mídia que Você está - utilizando, através da veiculação do nome (ou - pseudônimo, se for o caso) do Autor Original, se - fornecido; o título da Obra, se fornecido; na - medida do razoável, o Identificador Uniformizado de - Recursos (URI) que o Licenciante especificar para - estar associado à Obra, se houver, exceto se o URI - não se referir ao aviso de direitos autorais ou à - informação sobre o regime de licenciamento da Obra; - e no caso de Obra Derivada, crédito identificando o - uso da Obra na Obra Derivada (exemplo: "Tradução - Francesa da Obra de Autor Original", ou "Roteiro - baseado na Obra original de Autor Original"). Tal - crédito pode ser implementado de qualquer forma - razoável; entretanto, no caso de Obra Derivada ou - Obra Coletiva, este crédito aparecerá no mínimo - onde qualquer outro crédito comparável de autoria - aparece e de modo ao menos tão proeminente quanto - este outro crédito de autoria comparável. -

      -
    8. -
    9. -

      - De modo a tornar claras estas disposições, quando - uma Obra for uma composição musical: -

      -
      -
        -
      1. -

        - Royalties e execução pública. O Licenciante - reserva o seu direito exclusivo de coletar, - seja individualmente ou através de entidades - coletoras de direitos de execução (por - exemplo, ECAD, ASCAP, BMI, SESAC), o valor - dos seus direitos autorais pela execução - pública da obra ou execução pública digital - (por exemplo, webcasting) da Obra se esta - execução for predominantemente intencionada - ou direcionada à obtenção de vantagem - comercial ou compensação monetária privada. -

        -
      2. -
      3. -

        - Royalties e Direitos fonomecânicos. O - Licenciante reserva o seu direito exclusivo - de coletar, seja individualmente ou através - de uma entidade designada como seu agente - (por exemplo, a agência Harry Fox), royalties - relativos a quaisquer gravações que Você - criar da Obra (por exemplo, uma versão - “cover”) e distribuir, conforme - as disposições aplicáveis de direito autoral, - se a distribuição feita por Você de versão - “cover” for predominantemente - intencionada ou direcionada à obtenção de - vantagem comercial ou compensação monetária - privada. -

        -
      4. -
      -
      -
    10. -
    11. -

      - Direitos de Execução Digital pela Internet - (Webcasting) e royalties. De modo a evitar dúvidas, - quando a Obra for uma gravação de som, o - Licenciante reserva o seu direito exclusivo de - coletar, seja individualmente ou através de - entidades coletoras de direitos de execução (por - exemplo, SoundExchange ou ECAD), royalties e - direitos autorais pela execução digital pública - (por exemplo, Webcasting) da Obra, conforme as - disposições aplicáveis de direito autoral, se a - execução digital pública feita por Você for - predominantemente intencionada ou direcionada à - obtenção de vantagem comercial ou compensação - monetária privada. -

      -
    12. -
    -
    -
  8. -
  9. -

    - Declarações, Garantias e Exoneração -

    -

    - EXCETO QUANDO FOR DE OUTRA FORMA MUTUAMENTE ACORDADO - PELAS PARTES POR ESCRITO, O LICENCIANTE OFERECE A OBRA - “NO ESTADO EM QUE SE ENCONTRA” (AS IS) E NÃO - PRESTA QUAISQUER GARANTIAS OU DECLARAÇÕES DE QUALQUER - ESPÉCIE RELATIVAS À OBRA, SEJAM ELAS EXPRESSAS OU - IMPLÍCITAS, DECORRENTES DA LEI OU QUAISQUER OUTRAS, - INCLUINDO, SEM LIMITAÇÃO, QUAISQUER GARANTIAS SOBRE A - TITULARIDADE DA OBRA, ADEQUAÇÃO PARA QUAISQUER - PROPÓSITOS, NÃO-VIOLAÇÃO DE DIREITOS, OU INEXISTÊNCIA DE - QUAISQUER DEFEITOS LATENTES, ACURACIDADE, PRESENÇA OU - AUSÊNCIA DE ERROS, SEJAM ELES APARENTES OU OCULTOS. EM - JURISDIÇÕES QUE NÃO ACEITEM A EXCLUSÃO DE GARANTIAS - IMPLÍCITAS, ESTAS EXCLUSÕES PODEM NÃO SE APLICAR A VOCÊ. -

    -
  10. -
  11. -

    - Limitação de Responsabilidade. EXCETO NA EXTENSÃO EXIGIDA - PELA LEI APLICÁVEL, EM NENHUMA CIRCUNSTÂNCIA O - LICENCIANTE SERÁ RESPONSÁVEL PARA COM VOCÊ POR QUAISQUER - DANOS, ESPECIAIS, INCIDENTAIS, CONSEQUENCIAIS, PUNITIVOS - OU EXEMPLARES, ORIUNDOS DESTA LICENÇA OU DO USO DA OBRA, - MESMO QUE O LICENCIANTE TENHA SIDO AVISADO SOBRE A - POSSIBILIDADE DE TAIS DANOS. -

    -
  12. -
  13. -

    - Terminação -

    -
    -
      -
    1. -

      - Esta Licença e os direitos aqui concedidos - terminarão automaticamente no caso de qualquer - violação dos termos desta Licença por Você. Pessoas - físicas ou jurídicas que tenham recebido Obras - Derivadas ou Obras Coletivas de Você sob esta - Licença, entretanto, não terão suas licenças - terminadas desde que tais pessoas físicas ou - jurídicas permaneçam em total cumprimento com essas - licenças. As Seções 1, 2, 5, 6, 7 e 8 subsistirão a - qualquer terminação desta Licença. -

      -
    2. -
    3. -

      - Sujeito aos termos e condições dispostos acima, a - licença aqui concedida é perpétua (pela duração do - direito autoral aplicável à Obra). Não obstante o - disposto acima, o Licenciante reserva-se o direito - de difundir a Obra sob termos diferentes de licença - ou de cessar a distribuição da Obra a qualquer - momento; desde que, no entanto, quaisquer destas - ações não sirvam como meio de retratação desta - Licença (ou de qualquer outra licença que tenha - sido concedida sob os termos desta Licença, ou que - deva ser concedida sob os termos desta Licença) e - esta Licença continuará válida e eficaz a não ser - que seja terminada de acordo com o disposto acima. -

      -
    4. -
    -
    -
  14. -
  15. -

    - Outras Disposições -

    -
    -
      -
    1. -

      - Cada vez que Você distribuir ou executar - publicamente por meios digitais a Obra ou uma Obra - Coletiva, o Licenciante oferece ao destinatário uma - licença da Obra nos mesmos termos e condições que a - licença concedida a Você sob esta Licença. -

      -
    2. -
    3. -

      - Cada vez que Você distribuir ou executar - publicamente por meios digitais uma Obra Derivada, - o Licenciante oferece ao destinatário uma licença à - Obra original nos mesmos termos e condições que - foram concedidos a Você sob esta Licença. -

      -
    4. -
    5. -

      - Se qualquer disposição desta Licença for tida como - inválida ou não-executável sob a lei aplicável, - isto não afetará a validade ou a possibilidade de - execução do restante dos termos desta Licença e, - sem a necessidade de qualquer ação adicional das - partes deste acordo, tal disposição será reformada - na mínima extensão necessária para tal disposição - tornar-se válida e executável. -

      -
    6. -
    7. -

      - Nenhum termo ou disposição desta Licença será - considerado renunciado e nenhuma violação será - considerada consentida, a não ser que tal renúncia - ou consentimento seja feito por escrito e assinado - pela parte que será afetada por tal renúncia ou - consentimento. -

      -
    8. -
    9. -

      - Esta Licença representa o acordo integral entre as - partes com respeito à Obra aqui licenciada. Não há - entendimentos, acordos ou declarações relativas à - Obra que não estejam especificadas aqui. O - Licenciante não será obrigado por nenhuma - disposição adicional que possa aparecer em - quaisquer comunicações provenientes de Você. Esta - Licença não pode ser modificada sem o mútuo acordo, - por escrito, entre o Licenciante e Você. -

      -
    10. -
    -
    -
  16. -
-
-
-

- Importante -

-

- O Creative Commons não é uma parte desta Licença e não presta - qualquer garantia relacionada à Obra. O Creative Commons não - será responsável perante Você ou qualquer outra parte por - quaisquer danos, incluindo, sem limitação, danos gerais, - especiais, incidentais ou consequentes, originados com - relação a esta licença. Não obstante as duas frases - anteriores, se o Creative Commons tiver expressamente se - identificado como o Licenciante, ele deverá ter todos os - direitos e obrigações do Licenciante. -

-

- Exceto para o propósito delimitado de indicar ao público que - a Obra é licenciada sob a CCPL (Licença Pública Creative - Commons), nenhuma parte deverá utilizar a marca "Creative - Commons" ou qualquer outra marca ou logo relacionado ao - Creative Commons sem consentimento prévio e por escrito do - Creative Commons. Qualquer uso permitido deverá ser de acordo - com as diretrizes do Creative Commons de utilização da marca - então válidas, conforme sejam publicadas em seu website ou de - outro modo disponibilizadas periodicamente mediante - solicitação. -

-

- O Creative Commons pode ser contactado pelo endereço: - http://creativecommons.org/. -

-
-
-
-
-
-
-

- D.2. A Licença do MIT -

-
-
-
-

- Direitos autorais © 1999-2022 Gerard Beekmans -

-

- Permissão é aqui concedida, gratuitamente, para qualquer pessoa - que obtenha uma cópia deste software e arquivos de documentação - associados (o "Software"), para lidar com o Software sem - restrição, incluindo, sem limitação, os direitos para usar, - copiar, modificar, mesclar, publicar, distribuir, sublicenciar, - e (ou) vender cópias do Software, e para permitir para as - pessoas para quem o Software é fornecido para fazer o mesmo, - sujeito às seguintes condições: -

-

- O aviso de direitos autorais acima e este aviso de permissão - deveria ser incluído em todas as cópias ou porções substanciais - do Software. -

-

- O SOFTWARE É FORNECIDO “NO ESTADO EM QUE SE - ENCONTRA”, SEM GARANTIAS DE QUALQUER ESPÉCIE, EXPLÍCITAS - OU IMPLÍCITAS, INCLUINDO, PORÉM NÃO LIMITADA A, AS GARANTIAS DE - COMERCIALIZAÇÃO, ADEQUAÇÃO PARA UM PROPÓSITO PARTICULAR E - NÃO-VIOLAÇÃO. EM NENHUMA CIRCUNSTÂNCIA OS AUTORES OU TITULARES - DE DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUAISQUER - ALEGAÇÕES, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM UMA AÇÃO DE - CONTRATO, ATO ILÍCITO OU DE OUTRA FORMA, DECORRENTE DE, OU EM - CONEXÃO COM, O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO - SOFTWARE. -

-
-
-
-
-
-

- D.3. A Licença de Documentação Livre GNU -

-
-
-
-

- Direitos autorais © 1999-2022 Jamenson Espindula -

-

- Versão 1.3, 03 de novembro de 2008 -

-

- Direitos autorais © 2000, 2001, 2002, 2007, 2008 Free Software - Foundation, Inc. http://fsf.org/ -

-

- A qualquer pessoa é permitido copiar e distribuir cópias - literais deste documento de licença, porém modificá-lo não é - permitido. -

-
-
    -
  1. -

    - PREÂMBULO -

    -

    - O propósito desta licença é tornar um manual, livro de - texto, ou outro documento funcional e útil livre no - sentido da liberdade: para assegurar a qualquer pessoa a - liberdade efetiva para copiar e redistribuí-lo, com ou - sem modificações, ambos comercialmente ou não - comercialmente. Secundariamente, esta Licença preserva - para o autor e editor uma maneira de obter crédito pelos - seus trabalhos, ao mesmo tempo não sendo considerado - responsável por modificações feitas por outros. Esta - Licença é uma espécie de “copyleft” - (“esquerdos autorais”), o que significa que - trabalhos derivados do documento devem necessariamente - eles mesmos serem livres no mesmo sentido. Ela - complementa a Licença Pública Geral GNU, a qual é uma - licença de esquerdos autorais projetada para software - livre. Nós projetamos esta Licença para utilizá-la para - manuais para software livre, porque software livre - precisa de documentação livre: um programa livre deveria - vir com manuais provendo as mesmas liberdades que o - software provê. Porém esta Licença não é limitada a - manuais de software; ela pode ser utilizada para qualquer - trabalho textual, independentemente de questões de - assunto ou se o trabalho textual for publicado como um - livro impresso. Nós recomendamos esta Licença - principalmente para trabalhos cujo propósito seja - instrução ou referência. -

    -
  2. -
  3. -

    - APLICABILIDADE E DEFINIÇÕES -

    -

    - Esta Licença se aplica a qualquer manual ou outro - trabalho, em qualquer meio, que contenha um aviso - colocado pelo detentor dos direitos autorais dizendo que - ele pode ser distribuído sob os termos desta Licença. Tal - aviso concede uma licença mundial, livre de patente, - ilimitada na duração, para utilizar aquele trabalho sob - as condições nela declaradas. O “Documento”, - abaixo, se refere a quaisquer desses manuais ou - trabalhos. Qualquer membro do publico é um titular da - licença, e é mencionado como “você”. Você - aceita a licença se você copiar, modificar ou distribuir - o trabalho em uma forma que exija permissão sob lei de - direitos autorais. Uma “Versão Modificada” do - Documento significa qualquer trabalho contendo o - Documento ou uma porção dele, seja literalmente copiado, - ou com modificações e/ou traduzido em outra língua. Uma - “Seção Secundária” é um apêndice nomeado ou - uma seção pré-textual do Documento que lida - exclusivamente com o relacionamento dos editores ou - autores do Documento para com o assunto global do - Documento (ou com questões relacionadas) e não contém - nada que possa se conformar diretamente com aquele - assunto global. (Assim, se o Documento for em parte um - livro texto de matemática, uma Seção Secundária não pode - explanar nada acerca de cálculos matemáticos). O - relacionamento poderia ser uma questão de conexão - histórica com o assunto ou com questões relacionadas, ou - de posicionamento legal, comercial, filosófico, ético ou - político respeitante a eles. As “Seções - Invariantes” são certas Seções Secundárias cujos - títulos são projetados, como sendo aqueles de Seções - Invariantes, no aviso que diz que o Documento é publicado - sob esta Licença. Se uma seção não se encaixa na - definição de Secundária acima, então a seção não está - autorizada a ser designada como Invariante. O Documento - pode conter zero Seções Invariantes. Se o Documento não - identifica quaisquer Seções Invariantes, então não existe - nenhuma. Os “Textos de Capa” são certas - passagens curtas de texto que são listadas, como Textos - de Primeira Capa ou Textos de Quarta-Capa, no aviso que - diz que o Documento é publicado sob esta Licença. Um - Texto de Primeira Capa pode ter no máximo cinco (05) - palavras, e um Texto de Quarta Capa pode ter no máximo - vinte e cinco (25) palavras. Uma cópia - “Transparente” do Documento significa uma - cópia legível por máquina, representada em um formato - cuja especificação está disponível para o público em - geral, que é adequada para revisar o documento - diretamente com editores de texto genéricos ou (para - imagens compostas de pixeis) programas de pintura - genéricos ou (para desenhos) algum editor de desenho - disponível amplamente, e que seja adequado para entrada a - formatadores de texto ou para tradução automática a uma - variedade de formatos próprios para entrada a - formatadores de texto. Uma cópia feita em um formato de - arquivo contrário ao Transparente, cuja linguagem de - marcação, ou ausência de linguagem de marcação, tenha - sido organizada para frustrar ou desencorajar - modificações subsequentes por leitores, não é - Transparente. Um formato de imagem não é Transparente se - utilizado para qualquer quantidade substancial de texto. - Uma cópia que não é “Transparente” é chamada - “Opaca”. Exemplos de formatos adequados para - cópias Transparentes incluem ASCII puro sem marcações; - formato de entrada Texinfo; formato de entrada LaTeX; - SGML ou XML utilizando um DTD disponível publicamente; - HTML simples conformante com o padrão; PostScript ou PDF - projetado para modificação humana. Exemplos de formatos - transparantes de imagens incluem PNG, XCF e JPG. Formatos - opacos incluem formatos proprietários que podem ser lidos - e editados somente por processadores proprietários de - palavra; SGML ou XML para os quais o DTD e/ou as - ferramentas de processamentos não estejam disponíveis - genericamente; e o HTML gerado por máquina; PostScript ou - PDF produzidos por alguns processadores de palavra apenas - para propósitos de saída. A “Página de - Título” significa, para um livro impresso, a - própria página de título, mais tantas páginas seguintes - quantas sejam necessárias para manter, legivelmente, o - material que esta Licença exige para aparecer na página - de título. Para trabalhos em formatos que não tenham - qualquer página de título como tal, “Página de - Título” significa o texto próximo da mais - proeminente aparição do título do trabalho, precedendo o - início do corpo do texto. O “editor” - significa qualquer pessoa ou entidade que distribui - cópias do Documento ao público. Uma seção - “Intitulada XYZ” significa uma subunidade - nomeada do Documento cujo título ou é precisamente XYZ ou - contém XYZ entre parênteses seguinte ao texto que traduz - XYZ em outra linguagem. (Aqui XYZ significa um nome - específico de seção mencionado abaixo, tais como - “Agradecimentos”; “Dedicatórias”; - “Patrocínios”; ou “Histórico”). - “Preservar o Título” de tal seção quando você - modificar o Documento significa que ele permanece uma - seção “Intitulada XYZ” de acordo com essa - definição. O Documento pode incluir Declarações de - Garantia próximas ao aviso que declara que esta Licença - se aplica ao Documento. Essas Declarações de Garantia são - consideradas como inclusas por referência nesta Licença, - porém somente com relação à negação de garantias: - qualquer outra implicação que essas Declarações de - Garantia possam ter é inválida e não tem efeito sobre o - significado desta Licença. -

    -
  4. -
  5. -

    - CÓPIA LITERAL -

    -

    - Você pode copiar e distribuir o Documento em qualquer - meio, ambos comercialmente e não comercialmente, contanto - que esta Licença, os avisos de direitos autorais, e o - aviso de licença dizendo que esta Licença se aplica ao - Documento estejam reproduzidas em todas as cópias, e que - você não adiciona quaisquer outras condições, quaisquer - que sejam, àquelas desta Licença. Você não pode utilizar - medidas técnicas para obstruir ou controlar a leitura ou - posteriores cópias das cópias que você fizer ou - distribuir. Entretanto, você pode aceitar remuneração em - troca das cópias. Se você distribui um número de cópias - grande o suficiente, você deve necessariamente também - seguir as condições na seção três (3). Você também pode - ceder cópias, sob as mesmas condições declaradas acima, e - você pode publicamente exibir cópias. -

    -
  6. -
  7. -

    - CÓPIAS EM QUANTIDADE -

    -

    - Se você publicar cópias impressas (ou cópias em mídia que - geralmente tem capas impressas) do Documento, em número - maior que cem (100), e o aviso de licença do Documento - exigir Textos de Capa, você deve necessariamente encartar - as cópias em capas que transportem, claramente e - legivelmente, todos estes Textos de Capa: Textos de - Primeira Capa na primeira capa, e Textos de Quarta Capa - na capa traseira. Ambas as capas devem necessariamente - também claramente e legivelmente identificar você como o - editor dessas cópias. A capa frontal deve necessariamente - apresentar o título completo com todas as palavras do - título igualmente proeminentes e visíveis. Você pode - adicionar outros materiais nas capas adicionalmente. As - cópias com modificações limitadas às capas, tanto quanto - preservem o título do Documento e satisfaçam essas - condições, podem ser tratadas como cópias literais em - relação a outros aspectos. Se os textos exigidos para - ambas as capas forem muito volumosos para caber - legivelmente, você deveria colocar os primeiros listados - (tantos quantos caibam razoavelmente) na capa atual, e - continuar o restante em páginas adjacentes. Se você - publicar ou distribuir cópias Opacas do Documento em - número maior que cem (100), você deve necessariamente ou - incluir uma cópia Transparente, legível por máquina, - junto com cada cópia Opaca, ou declarar, na ou com cada - cópia Opaca, uma localização de rede de computador, a - partir da qual o público usuário de rede geral tenha - acesso para baixar, utilizando protocolos de rede de - padrão público, uma cópia Transparente completa do - Documento, livre do material adicionado. Se você se - utilizar da última opção, você deve necessariamente - adotar razoavelmente passos prudentes, quando você - iniciar a distribuição de cópias Opacas em quantidade, - para se assegurar que essa cópia Transparente permanecerá - então acessível na localização declarada até pelo menos - um ano após a última vez que você distribuiu uma cópia - Opaca (diretamente ou por intermédio dos seus agentes ou - varejistas) daquela edição ao público. É pedido, mas não - exigido, que você contate os autores do Documento bem - antes de redistribuir qualquer número grande de cópias, - para dá-los a oportunidade de lhe fornecer uma versão - atualizada do Documento. -

    -
  8. -
  9. -

    - MODIFICAÇÕES -

    -

    - Você pode copiar e distribuir uma Versão Modificada do - Documento sob as condições das seções dois (2) e três (3) - acima, contanto que você publique a Versão Modificada - precisamente sob esta Licença, com a Versão Modificada - preenchendo a função do Documento, portanto licenciando a - distribuição e modificação da Versão Modificada a quem - quer que possua uma cópia dela. Adicionalmente, você deve - necessariamente fazer estas coisas na Versão Modificada: -

    -
    -
      -
    1. -

      - Utilize na Página de Título (e nas capas, se - existentes) um título distinto daquele do - Documento, e daqueles das versões prévias (as quais - deveriam, se existiu alguma, serem listadas na - seção Histórico do Documento). Você pode utilizar o - mesmo título que uma versão prévia, se o editor - original daquela versão conceder permissão. -

      -
    2. -
    3. -

      - Liste na Página de Título, como autores, uma ou - mais pessoas ou entidades responsáveis pela autoria - das modificações na Versão Modificada, junto com ao - menos cinco dos autores principais do Documento - (todos os autores principais, se tiver menos que - cinco), a menos que eles liberem você dessa - exigência. -

      -
    4. -
    5. -

      - Declare na Página de Título o nome do editor da - Versão Modificada, como o editor. -

      -
    6. -
    7. -

      - Preserve todos os avisos de direitos autorais do - Documento. -

      -
    8. -
    9. -

      - Adicione um aviso apropriado de direitos autorais - para suas modificações, adjacente aos outros avisos - de direitos autorais. -

      -
    10. -
    11. -

      - Inclua, imediatamente após os avisos de direitos - autorais, um aviso de licença concedendo ao público - permissão para utilizar a Versão Modificada sob os - termos desta Licença, na forma mostrada no Adendo - abaixo. -

      -
    12. -
    13. -

      - Preserve, naquele aviso de licença, as listas - completas de Seções Invariantes e Textos de Capa - exigidos dados no aviso de licença do Documento. -

      -
    14. -
    15. -

      - Inclua uma cópia inalterada desta Licença. -

      -
    16. -
    17. -

      - Preserve a seção intitulada - “Histórico”, Preserve seu Título, e - adicione a ele um item declarando ao menos o - título, ano, novos autores, e editor da Versão - Modificada, conforme dado na Página de Título. Se - não existir uma seção intitulada - “Histórico” no Documento, crie uma - declarando o título, ano, autores, e editor do - Documento, conforme dado em sua Página de Título, - então adicione um item descrevendo a Versão - Modificada, conforme declarado na frase prévia. -

      -
    18. -
    19. -

      - Preserve a localização de rede, se existente, dada - no Documento para acesso público a uma cópia - Transparente do Documento, e da mesma forma as - localizações de rede dadas no Documento para - versões prévias nas quais foi baseado. Essas podem - ser colocadas na seção “Histórico”. - Você pode omitir uma localização de rede para um - trabalho que foi publicado nos últimos quatro anos - anteriores à publicação do próprio do Documento, ou - se o editor original da versão à qual a localização - de rede se refere conceder permissão. -

      -
    20. -
    21. -

      - Para cada seção Intitulada - “Agradecimentos” ou - “Dedicatórias”, Preserve o Título da - seção, e preserve na seção toda a substância e - tonalidade de cada um dos agradecimentos a - contribuidores e/ou dedicatórias dadas nela. -

      -
    22. -
    23. -

      - Preserve todas as Seções Invariantes do Documento, - inalteradas em seus textos e em seus títulos. Os - números de Seção ou o equivalente não são - considerados parte dos títulos de seção. -

      -
    24. -
    25. -

      - Delete quaisquer seções Intituladas - “Patrocínios”. Tal seção não pode ser - incluída na Versão Modificada. -

      -
    26. -
    27. -

      - Não reintitule qualquer seção existente para - Intitulada “Patrocínios” ou para - conflitar no título com qualquer Seção Invariante. -

      -
    28. -
    29. -

      - Preserve quaisquer Declarações de Garantia. -

      -
    30. -
    -
    -

    - Se a Versão Modificada incluir novas seções pré textuais - ou apêndices que se qualifiquem como Seções Secundárias e - não contenham material copiado a partir do Documento, - você pode, a sua escolha, designar algumas ou todas essas - seções como Invariantes. Para fazer isso, adicione seus - títulos à lista das Seções Invariantes no aviso de - licença da Versão Modificada. Esses títulos devem - necessariamente serem distintos de quaisquer outros - títulos de seções. Você pode adicionar uma seção - Intitulada “Patrocínios”, contanto que ela - não contenha nada além de patrocínios da sua Versão - Modificada por vários patrocinadores—por exemplo, - declarações de avaliadores ou aquelas de que o texto foi - aprovado por uma organização como a definição - autorizativa de um padrão. Você pode adicionar uma - passagem de até cinco palavras, como um Texto de Primeira - Capa, e uma passagem de até vinte e cinco palavras, como - um Texto de Quarta Capa, ao final da lista dos Textos de - Capa na Versão Modificada. Somente uma passagem de Texto - de Primeira Capa e uma de Texto de Quarta Capa podem ser - adicionadas por (ou mediante acordos feitos por) qualquer - uma entidade. Se o Documento já inclui um texto de capa - para a mesma capa, previamente adicionado por você ou por - acordo feito pela mesma entidade pela qual você está - atuando, você não pode adicionar outro; porém você pode - substituir o antigo, na permissão explícita do editor - prévio que adicionou o antigo. O(s) autor(s) e editor(s) - do Documento, por esta Licença, não concedem permissão - para utilizar seus nomes para publicidade para ou para - afirmar ou implicar patrocínio de qualquer Versão - Modificada. -

    -
  10. -
  11. -

    - COMBINANDO DOCUMENTOS -

    -

    - Você pode combinar o Documento com outros documentos - publicados sob esta Licença, sob os termos definidos na - seção quatro (4) acima para versões modificadas, contanto - que você inclua na combinação todas as Seções Invariantes - de todos os documentos originais, não modificados, e - listá-los todos como Seções Invariantes do seu trabalho - combinado no seu aviso de licença, e você preserva todas - as Declarações de Garantias deles. O trabalho combinado - precisa conter somente uma cópia desta Licença, e - múltiplas Seções Invariantes idênticas podem ser - substituídas por uma cópia única. Se existirem múltiplas - Seções Invariantes com o mesmo nome, mas conteúdos - diferentes, torne o título de cada uma de tal seção único - adicionando ao final dele, entre parênteses, o nome do - autor ou editor original daquela seção se conhecido, ou, - do contrário, um número único. Faça o mesmo ajuste aos - títulos da seção na lista de Seções Invariantes no aviso - de licença do trabalho combinado. Na combinação, você - deve necessariamente combinar quaisquer seções - Intituladas “Histórico” nos vários documentos - originais, formando uma seção Intitulada - “Histórico”; de mesma maneira, combine - quaisquer seções Intituladas - “Agradecimentos”, e quaisquer seções - Intituladas “Dedicatórias”. Você deve - necessariamente deletar todas as seções Intituladas - “Patrocínios”. -

    -
  12. -
  13. -

    - COLEÇÕES DE DOCUMENTOS -

    -

    - Você pode produzir uma coleção consistente do Documento e - outros documentos publicados sob esta Licença, e - substitua as cópias individuais desta Licença nos vários - documentos por uma cópia única que esteja incluída na - coleção, contanto que você siga as regras desta Licença - para cópias literais de cada um dos documentos em todos - os outros aspectos. Você pode extrair um documento único - de tal coleção, e distribuí-lo individualmente sob esta - Licença, contanto que você insira uma cópia desta Licença - no documento extraído, e siga esta Licença em todos os - outros aspectos relativos à cópias literais daquele - documento. -

    -
  14. -
  15. -

    - AGREGAÇÃO COM TRABALHOS INDEPENDENTES -

    -

    - Uma compilação do Documento ou seus derivados com outros - documentos separados e independentes ou trabalhos, dentro - ou junto a volume de armazenamento ou meio de - distribuição, é chamado em “agregado” se os - direitos autorais resultantes da compilação não forem - utilizados para limitar os direitos legais dos usuários - da compilação além do que os trabalhos individuais - permitem. Quando o Documento for incluído em um agregado, - esta Licença não se aplica aos outros trabalhos no - agregado, os quais não são eles próprios trabalhos - derivados do Documento. Se a exigência do Texto de Capa - da seção três (3) for aplicável a essas cópias do - Documento, então se o Documento for menor que a metade do - agregado inteiro, os Textos de Capa do Documento podem - ser colocados em capas que encartem o Documento dentro do - agregado, ou o equivalente eletrônico de capas se o - Documento estiver em formato eletrônico. Do contrário, - eles devem necessariamente aparecer nas capas impressas - que encartem o agregado inteiro. -

    -
  16. -
  17. -

    - TRADUÇÃO -

    -

    - Tradução é considerada um tipo de modificação, de forma - que você pode distribuir traduções do Documento sob os - termos da seção quatro (4). A substituição de Seções - Invariantes por traduções exige permissão especial de - seus detentores dos direitos autorais, porém você pode - incluir traduções de algumas ou todas as Seções - Invariantes adicionalmente às versões originais dessas - Seções Invariantes. Você pode incluir uma tradução desta - Licença, e todos os avisos de licença no Documento, e - quaisquer Declarações de Garantia, contanto que você - inclua também a versão original em Inglês desta Licença e - as versões originais daqueles avisos e declarações. No - caso de uma divergência entre a tradução e a versão - original desta Licença ou um aviso ou declaração, a - versão original prevalecerá. Se uma seção no Documento - for Intitulada “Agradecimentos”, - “Dedicatórias”, ou “Histórico”, a - exigência (seção 4) de Preservar seu Título (seção 1) - tipicamente exigirá a modificação do título atual. -

    -
  18. -
  19. -

    - FINALIZAÇÃO -

    -

    - Você não pode copiar, modificar, sublicenciar, ou - distribuir o Documento, exceto conforme expressamente - provido sob esta Licença. Qualquer tentativa clandestina - de copiar, modificar, sublicenciar, ou distribuir o - Documento é inválida, e automaticamente finalizará seus - direitos sob esta Licença. Entretanto, se você cessar - todas as violações a esta Licença, então a sua licença - oriunda de um detentor de direitos autorais em particular - está restabelecida (a) provisoriamente, a menos e até que - o detentor dos direitos autorais explicita e finalmente - cancele sua licença; e (b) permanentemente, se o detentor - dos direitos autorais falhar em notificar você da - violação, por algum meio razoável, antes de sessenta (60) - dias após a cessação. Além disso, a sua licença oriunda - de um detentor de direitos autorais em particular está - restabelecida permanentemente se o detentor dos direitos - autorais notificar você sobre a violação por algum meio - razoável, essa for a primeira vez que você recebeu um - aviso de violação desta Licença (para qualquer trabalho) - oriunda daquele detentor de direitos autorais, e você - sanar a violação antes de decorridos trinta (30) dias - após o seu recebimento do aviso. A finalização dos seus - direitos sob esta seção não finaliza as licenças de - varejistas que tenham recebido cópias ou direitos de você - sob esta Licença. Se os seus direitos tiverem sido - finalizados e não permanentemente restabelecidos, o - recebimento de uma cópia de algum ou de tudo do mesmo - material não concede a você direitos de utilizá-lo. -

    -
  20. -
  21. -

    - REVISÕES FUTURAS DESTA LICENÇA -

    -

    - A Free Software Foundation pode publicar novas, revisadas - versões da Licença de Documentação Livre GNU de tempos em - tempos. Tais novas versões serão similares na essência à - presente versão, porém podem diferir em detalhes para - abarcar novos problemas ou assuntos. Veja-se - http://www.gnu.org/copyleft/. Para cada versão da Licença - é dado um número distintivo de versão. Se o Documento - especifica que uma versão numerada em particular desta - Licença “ou qualquer versão posterior” se - aplica a ele, você tem a opção de seguir os termos e - condições ou da versão especificada ou de qualquer versão - posterior que tenha sido publicada (não como um rascunho) - pela Free Software Foundation. Se o Documento não - especifica um número de versão desta Licença, você pode - escolher qualquer versão já publicada (não como um - rascunho) pela Free Software Foundation. Se o Documento - especifica que um procurador pode decidir quais versões - futuras desta Licença podem ser utilizadas, essa - declaração pública do procurador de aceitação de uma - versão permanentemente autoriza você a escolher aquela - versão para o Documento. -

    -
  22. -
  23. -

    - RELICENCIAMENTO -

    -

    - “Sítio de Colaboração Massiva Multi autor” - (ou “Sítio MMC”) significa qualquer servidor - da Rede Mundial de Computadores que publica trabalhos - sujeitos a direitos autorais e também provê facilidades - proeminentes para qualquer pessoa editar esses trabalhos. - Um wiki público que qualquer pessoa pode editar é um - exemplo de tal servidor. Uma “Colaboração Massiva - Multi autor” (ou “MMC”) contida no - sítio significa qualquer conjunto de trabalhos sujeitos a - direitos autorais assim publicados no sítio MMC. - “CC-BY-SA” significa a licença Creative - Commons Attribution-Share Alike 3.0 publicada pela - Creative Commons Corporation, uma corporação sem fins - lucrativos com seu domicílio empresarial situado em São - Francisco, Califórnia, Estados Unidos da América do - Norte, bem como versões futuras de esquerdos autorais - dessa licença publicadas pela mesma organização. - “Incorporar” significa publicar ou republicar - um Documento, no todo ou em parte, como parte de outro - Documento. Um MMC é “elegível para - relicenciamento” se ele for licenciado sob esta - Licença, e se todos os trabalhos que foram primeiro - publicados sob esta Licença em algum lugar que não esse - MMC, e subsequentemente incorporados, no todo ou em - parte, no MMC, (1) não tinham textos de capa ou seções - invariantes; e (2) estavam assim incorporados antes de 01 - de novembro de 2008. O operador de um Sítio MMC pode - republicar um MMC contido no sítio sob CC-BY-SA, no mesmo - sítio, a qualquer tempo antes de 01 de agosto de 2009, - contanto que o MMC seja elegível para relicenciamento. -

    -
  24. -
-
-

- ADENDO: Como utilizar esta Licença para seus documentos -

-

- Para utilizar esta Licença em um documento que você escreveu, - inclua uma cópia da Licença no documento e coloque os seguintes - avisos de direitos autorais e licença pouco depois da página de - título: -

-

-
-  Direitos autorais (C) ano  seu nome.
-  Permissão é concedida para copiar, distribuir e/ou modificar este
-  documento sob os termos da Licença de Documentação Livre GNU, Versão
-  1.3 ou qualquer versão posterior publicada pela Free Software
-  Foundation; sem Seções Invariantes, sem Textos de Primeira Capa, e sem
-  Textos de Quarta Capa.   Uma cópia da licença está inclusa na seção
-  intitulada ``Licença de Documentação Livre GNU''.
-
-  
-

- Se você tiver Seções Invariantes, Textos de Primeira Capa e - Textos de Quarta Capa, substitua a linha ``sem ... Capa'' por - isto: -

-

-
-  com as Seções Invariantes sendo liste seus títulos, com os
-  Textos de Primeira Capa sendo lista, e com os Textos de Quarta
-  Capa sendo lista.
-
-  
-

- Se você tiver Seções Invariantes sem Textos de Capa, ou alguma - outra combinação dos três, mescle essas duas alternativas para - adequar a situação. -

-

- Se o seu documento contém exemplos não triviais de código de - programação, nós recomendamos publicar esses exemplos em - paralelo, sob sua escolha de licença de software livre, tal - como a Licença Pública Geral GNU, para permitir seu uso em - software livre. -

-
-
-
-
-
-
-
-

- Índice Remissivo -

-
-
-
-
-

- -

- -

- -

- -

- -

- -

- -

- -

- -

- -
-
-
- - diff --git a/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.txt b/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.txt deleted file mode 100644 index e16f0ff180..0000000000 --- a/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.txt +++ /dev/null @@ -1,21482 +0,0 @@ -Linux From Scratch - -Versão 11.1-systemd - -Publicado 1º de março de 2022 - -Criado por Gerard Beekmans - -Editor-chefe: Bruce Dubbs - -Editor: Douglas R. Reno - -Editor: DJ Lucas - - Copyright © 1999-2022 Gerard Beekmans - - Direitos autorais © 1999-2022, Gerard Beekmans - - Todos os direitos reservados. - - Este livro é licenciado sob uma [1]Creative Commons License. - - As instruções de computador tem permissão para serem extraídas a partir - do livro sob a [2]MIT License. - - Linux® é uma marca comercial registrada do Linus Torvalds. - __________________________________________________________________ - -Ãndice - - * Prefácio - + [3]Introdução - + [4]Audiência - + [5]Arquiteturas Alvo do LFS - + [6]Pré-requisitos - + [7]LFS e Padrões - + [8]Justificativa para os pacotes no Livro - + [9]Tipografia - + [10]Estrutura - + [11]Errata e Avisos de Segurança - * I. Introdução - + 1. Introdução - o [12]Como Construir um Sistema LFS - o [13]O que há de novo desde o último lançamento - o [14]Registro de Mudanças - o [15]Recursos - o [16]Ajuda - * II. Preparando para a Construção - + 2. Preparando o Sistema Anfitrião - o [17]Introdução - o [18]Exigências do Sistema Anfitrião - o [19]Construindo LFS em Estágios - o [20]Criando uma Nova Partição - o [21]Criando um Sistema de Arquivos na Partição - o [22]Configurando a Variável $LFS - o [23]Montando a Nova Partição - + 3. Pacotes e Patches - o [24]Introdução - o [25]Todos os Pacotes - o [26]Patches Necessários - + 4. Preparações Finais - o [27]Introdução - o [28]Criando um layout limitado de diretório em sistema de - arquivos de LFS - o [29]Adicionando a(o) Usuária(o) LFS - o [30]Configurando o Ambiente - o [31]Sobre UPCs - o [32]Sobre as Suítes de Teste - * III. Construindo o Conjunto de Ferramentas Cruzadas de LFS e - Ferramentas Temporárias - + Material Preliminar Importante - o [33]Introdução - o [34]Notas Técnicas do Conjunto de Ferramentas - o [35]Instruções Gerais de Compilação - + 5. Compilando um Conjunto de Ferramentas Cruzado - o [36]Introdução - o [37]Binutils-2.38 - Passagem 1 - o [38]GCC-11.2.0 - Passagem 1 - o [39]Cabeçalhos da API do Linux-5.16.9 - o [40]Glibc-2.35 - o [41]Libstdc++ oriundo de GCC-11.2.0, Passagem 1 - + 6. Compilando Cruzadamente Ferramentas Temporárias - o [42]Introdução - o [43]M4-1.4.19 - o [44]Ncurses-6.3 - o [45]Bash-5.1.16 - o [46]Coreutils-9.0 - o [47]Diffutils-3.8 - o [48]File-5.41 - o [49]Findutils-4.9.0 - o [50]Gawk-5.1.1 - o [51]Grep-3.7 - o [52]Gzip-1.11 - o [53]Make-4.3 - o [54]Patch-2.7.6 - o [55]Sed-4.8 - o [56]Tar-1.34 - o [57]Xz-5.2.5 - o [58]Binutils-2.38 - Passagem 2 - o [59]GCC-11.2.0 - Passagem 2 - + 7. Entrando em Chroot e Construindo Ferramentas Temporárias - Adicionais - o [60]Introdução - o [61]Mudando Propriedade - o [62]Preparando Sistemas de Arquivos Virtuais de Kernel - o [63]Entrando no Ambiente Chroot - o [64]Criando Diretórios - o [65]Criando Arquivos Essenciais e Links Simbólicos - o [66]Libstdc++ oriundo de GCC-11.2.0, Passagem 2 - o [67]Gettext-0.21 - o [68]Bison-3.8.2 - o [69]Perl-5.34.0 - o [70]Python-3.10.2 - o [71]Texinfo-6.8 - o [72]Util-linux-2.37.4 - o [73]Limpando e Salvando o Sistema Temporário - * IV. Construindo o Sistema LFS - + 8. Instalando Aplicativos Básicos de Sistema - o [74]Introdução - o [75]Gerenciamento de Pacote - o [76]Man-pages-5.13 - o [77]Iana-Etc-20220207 - o [78]Glibc-2.35 - o [79]Zlib-1.2.11 - o [80]Bzip2-1.0.8 - o [81]Xz-5.2.5 - o [82]Zstd-1.5.2 - o [83]File-5.41 - o [84]Readline-8.1.2 - o [85]M4-1.4.19 - o [86]Bc-5.2.2 - o [87]Flex-2.6.4 - o [88]Tcl-8.6.12 - o [89]Expect-5.45.4 - o [90]DejaGNU-1.6.3 - o [91]Binutils-2.38 - o [92]GMP-6.2.1 - o [93]MPFR-4.1.0 - o [94]MPC-1.2.1 - o [95]Attr-2.5.1 - o [96]Acl-2.3.1 - o [97]Libcap-2.63 - o [98]Shadow-4.11.1 - o [99]GCC-11.2.0 - o [100]Pkg-config-0.29.2 - o [101]Ncurses-6.3 - o [102]Sed-4.8 - o [103]Psmisc-23.4 - o [104]Gettext-0.21 - o [105]Bison-3.8.2 - o [106]Grep-3.7 - o [107]Bash-5.1.16 - o [108]Libtool-2.4.6 - o [109]GDBM-1.23 - o [110]Gperf-3.1 - o [111]Expat-2.4.6 - o [112]Inetutils-2.2 - o [113]Less-590 - o [114]Perl-5.34.0 - o [115]XML::Parser-2.46 - o [116]Intltool-0.51.0 - o [117]Autoconf-2.71 - o [118]Automake-1.16.5 - o [119]OpenSSL-3.0.1 - o [120]Kmod-29 - o [121]Libelf oriundo de Elfutils-0.186 - o [122]Libffi-3.4.2 - o [123]Python-3.10.2 - o [124]Ninja-1.10.2 - o [125]Meson-0.61.1 - o [126]Coreutils-9.0 - o [127]Check-0.15.2 - o [128]Diffutils-3.8 - o [129]Gawk-5.1.1 - o [130]Findutils-4.9.0 - o [131]Groff-1.22.4 - o [132]GRUB-2.06 - o [133]Gzip-1.11 - o [134]IPRoute2-5.16.0 - o [135]Kbd-2.4.0 - o [136]Libpipeline-1.5.5 - o [137]Make-4.3 - o [138]Patch-2.7.6 - o [139]Tar-1.34 - o [140]Texinfo-6.8 - o [141]Vim-8.2.4383 - o [142]MarkupSafe-2.0.1 - o [143]Jinja2-3.0.3 - o [144]Systemd-250 - o [145]D-Bus-1.12.20 - o [146]Man-DB-2.10.1 - o [147]Procps-ng-3.3.17 - o [148]Util-linux-2.37.4 - o [149]E2fsprogs-1.46.5 - o [150]Acerca dos Símbolos de Depuração - o [151]Despojando - o [152]Limpando - + 9. Configuração do Sistema - o [153]Introdução - o [154]Configuração de Rede Geral - o [155]Visão Geral do Manuseio de Dispositivos e Módulos - o [156]Gerenciando Dispositivos - o [157]Configurando o relógio do sistema - o [158]Configurando o Console do Linux - o [159]Configurando o Locale do Sistema - o [160]Criando o Arquivo /etc/inputrc - o [161]Criando o Arquivo /etc/shells - o [162]Uso e Configuração do Systemd - + 10. Tornando o Sistema LFS Inicializável - o [163]Introdução - o [164]Criando o Arquivo /etc/fstab - o [165]Linux-5.16.9 - o [166]Usando o GRUB para Configurar o Processo de - Inicialização - + 11. O Fim - o [167]O Fim - o [168]Seja Contado - o [169]Reinicializando o Sistema - o [170]E agora? - * V. Anexos - + [171]A. Siglas e Termos - + [172]B. Reconhecimentos - + [173]C. Dependências - + [174]D. Licenças do LFS - o [175]Licença da Creative Commons - o [176]A Licença do MIT - o [177]A Licença de Documentação Livre GNU - * [178]Ãndice Remissivo - -Prefácio - -Introdução - - Minha jornada para aprender e entender melhor Linux começou em meados - de 1998. Eu havia acabado de instalar minha primeira distribuição Linux - e rapidamente fiquei intrigado com todo o conceito e filosofia por trás - do Linux. - - Há sempre várias maneiras de se completar uma tarefa. O mesmo pode ser - dito sobre distribuições Linux. Muitas surgiram ao longo dos anos. - Algumas ainda existem, outras se transformaram em outra distribuição, e - ainda há outras que ficaram relegadas às nossas memórias. Todas elas - executam as tarefas de maneira diferente para se adequar às - necessidades de seus respectivos públicos-alvo. Devido ao fato de haver - tantas maneiras de se executar uma tarefa, eu comecei a perceber que eu - não tinha que me limitar à implementação de outra pessoa. Antes de - descobrir o Linux, nós simplesmente lidávamos com problemas em outros - Sistemas Operacionais como se não tivéssemos escolha. A coisa era o que - era, não importando se você gostasse ou não. Com Linux, o conceito de - escolha começou a emergir. Se você não gostou de alguma coisa, você - seria livre, até encorajado, a mudá-la. - - Eu tentei várias distribuições, mas não consegui me decidir por - nenhuma. Elas eram ótimas distribuições em seu próprio direito. Não era - mais uma questão de certo ou errado. O problema havia se transformado - em uma questão de gosto pessoal. Com todas aquelas opções disponíveis, - tornou-se aparente que não haveria um sistema que seria perfeito para - mim. Então eu me propus a criar meu próprio sistema Linux que estaria - totalmente em conformidade com minhas preferências pessoais. - - Para realmente fazer meu próprio sistema, eu resolvi compilar tudo a - partir do código fonte em vez de usar pacotes pré-compilados. Esse - sistema Linux “perfeito†teria a força de vários sistemas sem suas - fraquezas visíveis. A princípio, a ideia era bastante amedrontadora. - Mas eu me mantive comprometido à ideia de que esse sistema poderia ser - construído. - - Após lidar com questões como dependências recíprocas e erros durante a - compilação, eu finalmente construí um sistema Linux customizado. O - sistema era totalmente operacional e perfeitamente utilizável como - qualquer outro sistema Linux disponível na época. Mas era minha própria - criação. Montar um sistema desses foi muito gratificante. A única coisa - que poderia ser melhor seria se eu mesmo tivesse escrito cada programa. - Essa foi a melhor coisa que se seguiu. - - Conforme eu compartilhei meus objetivos e minhas experiências com - outros membros da comunidade Linux, ficou aparente que havia um - interesse firme nessas ideias. Logo ficou claro que tal sistema Linux - customizado não serviria apenas para as necessidades específicas dos - usuários, mas também como uma oportunidade ideal para programadores e - administradores elevarem suas (existentes) habilidades com Linux. Como - resultado desse interesse amplo, o Projeto Linux From Scratch nasceu. - - Este livro Linux From Scratch é o núcleo do projeto. O livro provê a - base e as instruções necessárias para você modelar e construir seu - próprio sistema. Mesmo este livro disponibilizando instruções que - resultarão em um sistema que funciona corretamente, você é livre para - alterar as instruções para adaptá-las às suas necessidades, o que é, em - parte, uma importante parte deste projeto. Você permanece no controle; - nós só damos uma mão para ajudá-lo a começar sua própria jornada. - - Eu sinceramente espero que você se divirta trabalhando no seu próprio - Linux From Scratch e aproveite os benefícios de ter um sistema - verdadeiramente seu. - - -- - Gerard Beekmans - gerard AT linuxfromscratch D0T org - -Audiência - - Existem muitas razões pelas quais você desejaria ler este livro. Uma - das questões que muitas pessoas levantam é “por que ir ao longo de toda - a dificuldade de construir manualmente um sistema Linux desde o zero - quando você pode simplesmente baixar e instalar um existente?†- - Uma importante razão para a existência deste projeto é para te ajudar a - aprender como um sistema Linux funciona de dentro para fora. Construir - um sistema LFS ajuda a demonstrar o que torna o Linux de interesse, e - como as coisas funcionam juntas e dependem umas das outras. Uma das - melhores coisas que essa experiência de aprendizado pode prover é a - habilidade de personalizar um sistema Linux para se ajustar às suas [de - quem construir] próprias necessidades únicas. - - Outro benefício chave de LFS é que ele te permite ter mais controle - sobre o sistema sem confiar na implementação Linux de ninguém. Com LFS, - você está no banco do motorista e dita cada aspecto do sistema. - - LFS te permite criar sistemas muito compactos. Quando se instala - distribuições regulares, você frequentemente é forçado a instalar - muitos programas grandes os quais provavelmente nunca serão usados ou - entendidos. Esses programas desperdiçam recursos. Você talvez argumente - que, com os discos rígidos e CPUs de hoje, tais recursos não mais são - uma consideração. As vezes, entretanto, você ainda está restrito por - considerações de tamanho se nenhuma outra coisa. Pense acerca de CDs - inicializáveis, mídias USB e sistemas embarcados. Essas são áreas onde - LFS pode ser benéfico. - - Outra vantagem de um sistema personalizado Linux construído é - segurança. Ao compilar o sistema inteiro desde o zero, você está - empoderado para auditar tudo e aplicar todas as correções de segurança - desejadas. Não mais é necessário aguardar que outra pessoa compile os - pacotes binários para consertar uma brecha de segurança. A menos que - você examine a correção e a implemente você mesma(o), você não tem - garantias de que o novo pacote binário foi construído corretamente e - adequadamente conserta o problema. - - A finalidade do [projeto] Linux From Scratch é a de construir um - sistema em nível de fundação completo e utilizável. Se você não estiver - afim de construir seu próprio sistema Linux desde o zero, então você - talvez nunca se beneficie das informações neste livro. - - Existem muito mais boas razões para construir seu próprio sistema LFS - para listá-las todas aqui. No final, educação é, de longe, a mais - poderosa das razões. Conforme você continue em sua experiência LFS, - você descobrirá o poder que informação e conhecimento verdadeiramente - trazem. - -Arquiteturas Alvo do LFS - - A principal arquitetura alvo do LFS são os processadores AMD/Intel x86 - (32 bits) e x86_64 (64 bits). Por outro lado, as instruções neste livro - também são conhecidas por funcionar, com algumas modificações, com os - processadores Power PC e ARM. Para construir um sistema que utiliza uma - dessas CPUs, o principal pré-requisito, em adição àqueles que estão nas - próximas páginas, é uma distribuição Linux existente, como uma - instalação LFS prévia, Ubuntu, Red Hat/Fedora, SuSE, ou outra - distribuição que abranja a arquitetura que você tem. Note também que - uma distribuição de 32-bits pode ser instalada e usada como um sistema - hospedeiro em um computador AMD/Intel de 64-bits. - - Para construir LFS, o ganho de construção em um sistema 64-bits - comparado a um sistema 32-bits é mínimo. Por exemplo, em uma construção - de LFS-9.1 de teste em um sistema baseado em CPU Core i7-4790, usando - quatro núcleos, as seguintes estatísticas foram verificadas: -Arquitetura Tempo de Construção Tamanho de Construção -32-bit 239.9 minutos 3.6 GB -64-bit 233.2 minutos 4.4 GB - - Como você pode ver, no mesmo hardware, a construção de 64-bit é apenas - 3% mais rápida e é 22% maior que a construção de 32-bit. Se você - planeja usar LFS como um servidor LAMP, ou como um firewall, então uma - CPU de 32-bits talvez seja largamente suficiente. Por outro lado, - vários pacotes em BLFS atualmente precisam de mais que 4GB de RAM para - serem construídos e (ou) para executarem, de forma que se você planeja - usar LFS como um desktop, então os autores de LFS recomendam construir - em um sistema 64-bits. - - A construção de 64-bit padrão que é resultante do LFS é considerado um - sistema 64-bit “puroâ€. Ou seja, ele suporta apenas executáveis 64-bit. - Construir um sistema “multi-lib†[de múltiplas bibliotecas] exige a - compilação de muitos aplicativos duas vezes, uma vez para um sistema de - 32-bit e outra vez para um sistema de 64-bit. Isso não é diretamente - suportado em LFS, pois interferiria no objetivo educacional de prover - as instruções necessárias para um sistema Linux base estrito. Alguns - editores de LFS/BLFS mantém uma bifurcação de LFS para multilib, que é - acessível em - [179]https://www.linuxfromscratch.org/~thomas/multilib/index.html. - Porém, esse é um tópico avançado. - -Pré-requisitos - - Construir um sistema LFS não é uma tarefa simples. Essa tarefa exige um - certo nível de conhecimento de administração de sistemas Unix para - resolver problemas e corretamente executar os comandos listados. Em - particular, no mínimo, você já deveria ter a habilidade de usar linha - de comando (shell) para copiar ou mover arquivos e diretórios, listar - diretórios e conteúdos de arquivos, e navegar entre os diretórios. - Também é de se esperar que você tenha um conhecimento razoável sobre - como usar e instalar software [em um sistema] Linux. - - Devido ao fato do livro LFS assumir que você tem pelo menos esse nível - básico de habilidades, os vários fóruns de suporte do LFS não serão - adequados para ajudá-lo nessas áreas. Você vai perceber que suas - perguntas com relação a esse conhecimento básico não serão respondidas - ou serão remetidas à lista de itens essenciais de pré-leitura. - - Antes de construir um sistema LFS nós recomendamos a leitura do - seguinte: - * Software-Building-HOWTO - [180]http://www.tldp.org/HOWTO/Software-Building-HOWTO.html - Esse é um guia compreensivo de como construir e instalar pacotes de - software Unix “genéricos†no Linux. Embora tenha sido escrito há - algum tempo, esse guia ainda fornece um bom resumo das técnicas - básicas necessárias para construir e instalar programas. - * Beginner's Guide to Installing from Source - [181]http://moi.vonos.net/linux/beginners-installing-from-source/ - Esse guia fornece um bom sumário de habilidades básicas e de - técnicas necessárias para construir software a partir do código - fonte. - -LFS e Padrões - - A estrutura do LFS segue os padrões Linux tão rigorosamente quanto - possível. Os principais padrões são: - * [182]POSIX.1-2008. - * [183]Filesystem Hierarchy Standard (FHS) Version 3.0 - * [184]Linux Standard Base (LSB) Version 5.0 (2015) - O LSB tem quatro padrões separados: Core, Desktop, Runtime - Languages (linguagens em tempo de execução), e Imaging. Em adição - às exigências genéricas, há as exigências específicas de cada - arquitetura. Existem também duas áreas para uso experimental: Gtk3 - e Graphics. LFS tenta ficar de acordo com as arquiteturas - discutidas na sessão anterior. - -Nota - Muitas pessoas não concordam com os requisitos do LSB. O principal - propósito de definir tais requisitos é o de garantir que softwares - proprietários possam ser instalados e executados adequadamente em - um sistema que respeite o referido padrão. Sendo o LFS baseado em - código fonte, a(o) usuária(o) tem total controle sobre quais - pacotes quer e muitas(os) escolhem não instalar alguns dos pacotes - especificados pelo LSB. - - Criar um sistema LFS completo capaz de passar nos testes das - certificações do LSB é possível, mas não sem muitos pacotes adicionais - que estão além do escopo do LFS. Esses pacotes adicionais tem - instruções para instalação no BLFS. - -Pacotes disponibilizados pelo LFS que são necessários para satisfazer os -requisitos do LSB - - LSB Core: - - Bash, Bc, Binutils, Coreutils, Diffutils, File, Findutils, Gawk, Grep, - Gzip, M4, Man-DB, Ncurses, Procps, Psmisc, Sed, Shadow, Tar, - Util-linux, Zlib - - LSB Desktop: - - Nenhum - - LSB Runtime Languages: - - Perl, Python - - LSB Imaging: - - Nenhum - - LSB Gtk3 e Gráficos LSB (Uso Experimental): - - Nenhum - -Pacotes disponibilizados pelo BLFS necessários para satisfazer os requisitos -do LSB - - LSB Core: - - At, Batch (uma parte de At), Cpio, Ed, Fcrontab, LSB-Tools, NSPR, NSS, - PAM, Pax, Sendmail (ou Postfix ou Exim), time - - LSB Desktop: - - Alsa, ATK, Cairo, Desktop-file-utils, Freetype, Fontconfig, Gdk-pixbuf, - Glib2, GTK+2, Icon-naming-utils, Libjpeg-turbo, Libpng, Libtiff, - Libxml2, MesaLib, Pango, Xdg-utils, Xorg - - LSB Runtime Languages: - - Libxml2, Libxslt - - LSB Imaging: - - CUPS, Cups-filters, Ghostscript, SANE - - LSB Gtk3 e Gráficos LSB (Uso Experimental): - - GTK+3 - -Pacotes não suportados pelo LFS ou BLFS necessários para satisfazer os -requisitos do LSB - - LSB Core: - - Nenhum - - LSB Desktop: - - Qt4 (mas Qt5 é fornecido) - - LSB Runtime Languages: - - Nenhum - - LSB Imaging: - - Nenhum - - LSB Gtk3 e Gráficos LSB (Uso Experimental): - - Nenhum - -Justificativa para os pacotes no Livro - - Como declarado anteriormente, a finalidade do [projeto] LFS é a de - construir um sistema em nível de fundação completo e utilizável. Isso - inclui todos os pacotes necessários para replicá-lo ao tempo que - disponibiliza uma base relativamente pequena sobre a qual a(o) - usuária(o) pode personalizar um sistema mais completo baseado nas - escolhas da(o) usuária(o). Isso não significa que o LFS é o menor - sistema possível. Vários pacotes importantes estão inclusos que não são - estritamente necessários. As listas abaixo documentam a justificativa - para cada pacote no livro. - * Acl - Esse pacote contém utilitários para administrar Listas de Controle - de Acesso, as quais são usadas para definir direitos de acesso - discricionariamente mais finamente refinados para arquivos e para - diretórios. - * Attr - Esse pacote contém aplicativos para a administração de atributos - estendidos sobre objetos do sistema de arquivos. - * Autoconf - Esse pacote contém aplicativos para produzir shell scripts que - podem configurar automaticamente o código fonte a partir de um - modelo do desenvolvedor. É geralmente necessário para reconstruir - um pacote após atualizações para os procedimentos de construção. - * Automake - Esse pacote contém aplicativos para gerar arquivos Make a partir de - um modelo. É geralmente necessário para reconstruir um pacote após - atualizações para os procedimentos de construção. - * Bash - Esse pacote satisfaz um requisito central do LSB para - disponibilizar uma interface Bourne Shell para o sistema. Foi - escolhido em vez de outros pacotes de shell pelo seu uso comum e - extensas capacidades que transcendem as funções básicas do shell. - * Bc - Esse pacote disponibiliza uma linguagem de processamento numérico - com precisão arbitrária. Ele satisfaz requisitos necessários quando - da construção do Kernel do Linux. - * Binutils - Esse pacote contém um linker, um assembler e outras ferramentas - para manipular arquivos objeto. Os aplicativos nesse pacote são - necessários para compilar a maioria dos pacotes em um sistema LFS e - além. - * Bison - Esse pacote contém a versão GNU do yacc (Yet Another Compiler - Compiler) necessário para construir vários outros aplicativos no - LFS. - * Bzip2 - Esse pacote contém aplicativos para compressão e descompressão de - arquivos. É necessário para descomprimir muitos pacotes do LFS. - * Check - Esse pacote contém um conjunto de ferramentas de teste para outros - aplicativos. - * Coreutils - Esse pacote contém um número de aplicativos essenciais para - visualização e manipulação de arquivos e de diretórios. Esses - aplicativos são necessários para o gerenciamento de arquivos por - linha de comando, e são necessários para os procedimentos de - instalação de cada pacote em LFS. - * D-Bus - Esse pacote contém aplicativos para implementar um sistema de - barramento de mensagem, o qual é um caminho simples para aplicações - conversarem com outras. - * DejaGNU - Esse pacote contém um sistema para testar outros aplicativos. - * Diffutils - Esse pacote contém aplicativos que mostram as diferenças entre - arquivos ou diretórios. Esses aplicativos podem ser usados para - criar correções, e também são usados em muitos procedimentos de - construção dos pacotes. - * E2fsprogs - Esse pacote contém os utilitários para manipular os sistemas de - arquivos ext2, ext3 e ext4. Esses são os sistemas de arquivos mais - comuns e amplamente testados que o Linux suporta. - * Expat - Esse pacote contém uma biblioteca relativamente pequena de análise - de XML. Ela é exigida pelo módulo de Perl XML::Parser. - * Expect - Esse pacote contém um aplicativo para execução de scripts de - diálogos com outros aplicativos interativos. É comumente usado para - testar outros pacotes. - * File - Esse pacote contém um utilitário para determinar o tipo de um dado - arquivo ou arquivos. Uns poucos pacotes precisam dele em seus - scripts de construção. - * Findutils - Esse pacote contém aplicativos para encontrar arquivos em um - sistema de arquivos. É usado em muitos scripts de construção dos - pacotes. - * Flex - Esse pacote contém um utilitário para gerar aplicativos que - reconhecem padrões em textos. É a versão GNU do aplicativo lex - (lexical analyzer). É necessário para construir vários pacotes do - LFS. - * Gawk - Esse pacote contém aplicativos para manipular arquivos de texto. É - a versão GNU do awk (Aho-Weinberg-Kernighan). É usado em muitos - outros scripts de construção dos pacotes. - * GCC - Esse pacote é o Gnu Compiler Collection. Ele contém os compiladores - C e C++ assim como vários outros não construídos por LFS. - * GDBM - Esse pacote contém a biblioteca GNU Database Manager. É usado por - um outro pacote do LFS, Man-DB. - * Gettext - Esse pacote contém utilitários e bibliotecas para - internacionalização e localização de numerosos pacotes. - * Glibc - Esse pacote contém a biblioteca C principal. Aplicativos Linux não - funcionarão sem ela. - * GMP - Esse pacote contém bibliotecas matemáticas que fornecem funções - úteis para aritmética de precisão arbitrária. É necessário para - compilar GCC. - * Gperf - Esse pacote contém um aplicativo que gera uma função perfeita de - hash a partir de uma chave configurada. Ele é exigido por Eudev. - * Grep - Esse pacote contém aplicativos para procurar dentro de arquivos. - Esses aplicativos são usados pela maioria dos scripts de construção - dos pacotes. - * Groff - Esse pacote contém aplicativos para processamento e formatação de - texto. Uma função importante desses aplicativos é a de formatar - páginas de manual. - * GRUB - Esse pacote é o Grand Unified Boot Loader. Ele é um dos vários - gerenciadores de inicialização disponíveis, mas é o mais flexível. - * Gzip - Esse pacote contém aplicativos para compressão e descompressão de - arquivos. Ele é necessário para descomprimir muitos pacotes em LFS. - * Iana-etc - Esse pacote fornece dados para serviços e protocolos de rede. Ele é - necessário para habilitar suporte a rede adequado. - * Inetutils - Esse pacote contém aplicativos para administração básica de rede. - * Intltool - Esse pacote contém ferramentas para a extração de sequências de - caracteres traduzíveis a partir de arquivos fonte. - * IProute2 - Esse pacote contém aplicativos para redes IPv4 e IPv6 básicas e - avançadas. Ele foi escolhido em vez de outros pacotes comuns de - ferramentas de rede (net-tools) pelo seu suporte a IPv6. - * Jinja2 - Esse pacote é um módulo de Python para modelos de texto. Ele é - exigido para construir Systemd. - * Kbd - Esse pacote contém arquivos de tabelas chave, utilitários de - teclados que não são estadunidenses, e um número de fontes de - console. - * Kmod - Esse pacote contém aplicativos necessários para administrar os - módulos de kernel do Linux. - * Less - Esse pacote contém um visualizador de textos muito bom que permite - rolar para cima ou para baixo quando se visualiza um arquivo. Ele - também é usado pelo Man-DB para visualizar páginas de manual. - * Libcap - Esse pacote implementa as interfaces do espaço de usuário para as - capacidades POSIX 1003.1e disponíveis em kernels Linux. - * Libelf - O projeto elfutils fornece bibliotecas e ferramentas para dados de - arquivos ELF e DWARF. A maior parte dos utilitários nesse pacote - está disponível em outros pacotes, porém a biblioteca é necessária - para construir o kernel Linux usando a configuração padrão (e mais - eficiente). - * Libffi - Esse pacote implementa uma interface de programação portável, de - alto nível, para várias convenções de chamada. Alguns aplicativos - talvez não saibam, ao tempo da compilação, quais argumentos são - para serem passados para uma função. Por exemplo, um interpretador - talvez possa ser informado, ao tempo de execução, acerca do número - e dos tipos de argumentos usados para chamar uma dada função. - Libffi pode ser usada em tais aplicativos para fornecer uma ponte a - partir do aplicativo interpretador para o código compilado. - * Libpipeline - O pacote Libpipeline contém uma biblioteca para manipular pipelines - de subprocessos de uma maneira flexível e conveniente. Ele é - exigido pelo pacote Man-DB. - * Libtool - Esse pacote contém o script GNU de suporte a bibliotecas genéricas. - Ele esconde a complexidade do uso de bibliotecas compartilhadas em - uma interface consistente e portável. Ele é necessário para as - ferramentas de testes em outros pacotes do LFS. - * Linux Kernel - Esse pacote é o Sistema Operacional. Ele é o Linux no ambiente - GNU/Linux. - * M4 - Esse pacote contém um processador geral de macro de texto, útil - como uma ferramenta de construção para outros aplicativos. - * Make - Esse pacote contém um aplicativo para direcionar a construção de - pacotes. Ele é exigido por quase todos os pacotes em LFS. - * MarkupSafe - Esse pacote é um módulo Python para processamento de sequências de - caracteres em HTML/XHTML/XML com segurança. Jinja2 exige esse - pacote. - * Man-DB - Esse pacote contém aplicativos para encontrar e visualizar páginas - de manual. Ele foi escolhido em vez do pacote man devido a - capacidades superiores de internacionalização. Ele faz as vezes do - aplicativo man. - * Man-pages - Esse pacote contém o conteúdo atual das páginas de manual básicas - do Linux. - * Meson - Esse pacote fornece uma ferramenta de software para automatizar a - construção de software. A finalidade principal para Meson é a de - minimizar a quantidade de tempo que desenvolvedores de software - precisam investir configurando o sistema de construção deles. Ele é - exigido para construir Systemd, bem como muitos pacotes BLFS. - * MPC - Esse pacote contém funções para a aritmética de números complexos. - Ele é exigido por GCC. - * MPFR - Esse pacote contém funções para aritmética de precisão múltipla. - Ele é exigido por GCC. - * Ninja - Esse pacote contém um sistema pequeno de construção com um foco em - velocidade. Ele é desenhado para ter os arquivos de entrada dele - gerados por um sistema de construção de alto nível, e para executar - construções o mais rápido possível. Esse pacote é exigido por - Meson. - * Ncurses - Esse pacote contém bibliotecas para manipulação independente de - terminal de telas de carácter. Ele é frequentemente usado para - fornecer controle de cursor para um sistema com menus. Ele é - necessitado por um número de pacotes em LFS. - * Openssl - Esse pacote fornece ferramentas e bibliotecas de gerenciamento - relacionadas a criptografia. Essas são úteis para fornecer funções - criptográficas para outros pacotes, incluindo o kernel Linux. - * Patch - Esse pacote contém um aplicativo para modificar ou criar arquivos - aplicando um arquivo patch tipicamente criado pelo aplicativo diff. - Ele é necessitado pelo procedimento de construção para vários - pacotes LFS. - * Perl - Esse pacote é um interpretador para a linguagem de tempo de - execução PERL. Ele é necessário para a instalação e ferramentas de - teste de vários pacotes do LFS. - * Pkg-config - Esse pacote fornece um aplicativo que retorna metadados acerca de - uma biblioteca ou pacote instalado. - * Procps-NG - Esse pacote contém aplicativos para monitorar processos. Esses - aplicativos são úteis para administração de sistema, e são também - usados pelos scripts de inicialização do LFS. - * Psmisc - Esse pacote contém aplicativos para mostrar informações acerca de - processos em execução. Esses aplicativos são úteis para - administração de sistema. - * Python 3 - Esse pacote fornece uma linguagem interpretada que tem uma - filosofia de desenho que enfatiza a legibilidade de código. - * Readline - Esse pacote é um conjunto de bibliotecas que oferecem capacidades - de edição e de histórico de linha de comando. Ele é usado por Bash. - * Sed - Esse pacote permite a edição de texto sem abri-lo em um editor de - texto. Ele também é necessitado pela maioria dos scripts de - configuração dos pacotes do LFS. - * Shadow - Esse pacote contém aplicativos para manipulação de senhas de uma - maneira segura. - * Systemd - Esse pacote fornece um aplicativo init e várias capacidades - adicionais de inicialização e de controle de sistema como uma - alternativa ao Sysvinit. Ele é usado por muitas distribuições - comerciais. - * Tar - Esse pacote fornece capacidades de empacotamento e de extração de - virtualmente todos os pacotes usados em LFS. - * Tcl - Esse pacote contém a Tool Command Language usada em muitas - ferramentas de teste em pacotes do LFS. - * Texinfo - Esse pacote contém aplicativos para leitura, escrita e conversão de - páginas info. Ele é usado nos procedimentos de instalação de muitos - pacotes LFS. - * Util-linux - Esse pacote contém uma variedade de aplicativos utilitários. Entre - eles estão utilitários para manipulação de sistemas de arquivos, - consoles, partições e mensagens. - * Vim - Esse pacote contém um editor. Ele foi escolhido por causa da - compatibilidade com o clássico editor vi e o seu número gigante de - capacidades poderosas. Um editor é uma escolha muito pessoal para - muitas(os) usuárias(os) e qualquer outro editor poderia ser - substituído se assim desejar. - * XML::Parser - Esse pacote é um módulo Perl que interage com Expat. - * XZ Utils - Esse pacote contém aplicativos para compressão e descompressão de - arquivos. Ele fornece a maior compressão geralmente disponível e é - útil para descomprimir pacotes nos formatos XZ ou LZMA. - * Zlib - Esse pacote contém rotinas de compressão e descompressão usadas por - alguns aplicativos. - * Zstd - Esse pacote contém rotinas de compressão e descompressão usadas por - alguns aplicativos. Ele fornece taxas altas de compressão e um - intervalo muito amplo de intercâmbios entre compressão / - velocidade. - -Tipografia - - Para fazer as coisas mais fáceis de serem seguidas, existem algumas - convenções tipográficas usadas neste livro. Esta sessão contém alguns - exemplos da formatação tipográfica encontrada ao longo de Linux From - Scratch. -./configure --prefix=/usr - - Essa forma de texto é desenhada para ser digitada do jeito que está, a - menos que seja dito o contrário no texto que a envolve. É também usada - na sessão de explicação para identificar quais dos comandos estão sendo - referenciados. - - Em alguns casos, uma linha lógica é estendida em duas ou mais linhas - físicas com uma barra invertida no final da linha. -CC="gcc -B/usr/bin/" ../binutils-2.18/configure \ - --prefix=/tools --disable-nls --disable-werror - - Note que a barra invertida deve ser seguida imediatamente por uma - quebra de linha. Outros espaços em branco como tabulação criarão - resultados incorretos. -install-info: unknown option '--dir-file=/mnt/lfs/usr/info/dir' - - Essa forma de texto (largura fixa) mostra a saída em tela, geralmente - como resultado de um comando executado. Esse formato é também utilizado - para mostrar nomes de arquivos, como /etc/ld.so.conf. - - Emphasis - - Essa forma de texto é usada para vários propósitos neste livro. Seu - propósito principal é o de enfatizar pontos ou itens importantes. - - [185]https://www.linuxfromscratch.org/ - - Esse formato é usado para hiperlinks tanto dentro da comunidade LFS e - para páginas externas. Isso inclui HOWTOs, locais de downloads e - páginas da Internet. -cat > $LFS/etc/group << "EOF" -root:x:0: -bin:x:1: -...... -EOF - - Esse formato é usado quando da criação de arquivos de configuração. O - primeiro comando diz para o sistema criar o arquivo $LFS/etc/group a - partir do que seja digitado nas linhas seguintes até encontrar a - sequência “End Of File†(EOF). Portanto, toda essa sequência é - geralmente digitada da maneira como é vista. - - - - Esse formato é usado para encapsular texto que não deve ser digitado - como visto ou para operações de “copiar-colarâ€. - - [OPTIONAL TEXT] - - Esse formato é usado para encapsular texto que é opcional. - - passwd(5) - - Esse formato é usado para referir-se a uma página de manual específica - (man). O número entre parênteses indica uma seção específica dentro dos - manuais. Por exemplo, passwd tem duas páginas de manual. Conforme as - instruções de instalação do LFS, essas duas páginas de manual estarão - localizadas em /usr/share/man/man1/passwd.1 e - /usr/share/man/man5/passwd.5. Quando o livro usa passwd(5) ele está se - referindo especificamente a /usr/share/man/man5/passwd.5. man passwd - exibirá a primeira página de manual que corresponde a “passwdâ€, a qual - será /usr/share/man/man1/passwd.1. Para esse exemplo, você precisará - executar man 5 passwd para ler a página sendo especificada. Perceba que - a maioria das páginas de manual não tem nomes duplicados de páginas em - diferentes seções. Portanto, man geralmente é - suficiente. - -Estrutura - - Este livro é dividido nas seguintes partes. - -Parte I – Introdução - - A Parte I explica algumas notas importantes sobre como proceder com a - instalação do LFS. Essa seção também fornece metainformação sobre o - livro. - -Parte II – Preparando para a Construção - - A Parte II descreve como se preparar para o processo de construção - —criando uma partição, baixando os pacotes, e compilando as ferramentas - temporárias. - -Parte III – Construindo o Conjunto Cruzado de Ferramentas do LFS e -Ferramentas Temporárias - - A Parte III fornece instruções para a construção das ferramentas - necessárias para a construção do sistema LFS final. - -Parte IV - Construindo o Sistema LFS - - A Parte IV guia o leitor ao longo da construção do sistema LFS - —compilando e instalando todos os pacotes, um por um, configurando os - scripts de inicialização e instalando o kernel. O sistema Linux - resultante é a base sobre a qual outros aplicativos podem ser - construídos para expandir o sistema conforme desejado. No final deste - livro, há uma lista de referência de fácil uso listando todos os - aplicativos, bibliotecas e arquivos importantes que foram instalados. - -Parte V - Apêndices - - A Parte V fornece informação acerca do próprio livro incluindo - acrônimos e termos, reconhecimentos, dependências de pacotes, uma - listagem dos scripts de inicialização do LFS, licenças para a - distribuição do livro, e um índice compreensível de pacotes, - aplicativos, bibliotecas, e scripts. - -Errata e Avisos de Segurança - - Os aplicativos utilizados para criar um sistema LFS estão sendo - constantemente atualizados e melhorados. Alertas de segurança e - correções de defeitos talvez se tornem disponíveis após o livro LFS ter - sido lançado. Para checar se versões de pacotes ou instruções neste - lançamento de LFS necessitam de quaisquer modificações para acomodar - vulnerabilidades de segurança ou outras correções de defeitos, por - favor visite - [186]https://www.linuxfromscratch.org/lfs/errata/11.1-systemd/ antes de - continuar com a sua construção. Você deveria tomar nota de quaisquer - mudanças mostradas e aplicá-las às seções relevantes do livro conforme - você progride com a construção do sistema LFS. - - Adicionalmente, os editores de Linux From Scratch mantém uma lista de - vulnerabilidades de segurança descobertas depois que um livro foi - lançado. Para checar se existem quaisquer vulnerabilidades ativas de - segurança, por favor visite - [187]https://www.linuxfromscratch.org/lfs/advisories/ antes de proceder - com sua construção. Você deveria tomar nota de quaisquer conselhos e - executar os passos para corrigir quaisquer vulnerabilidades de - segurança conforme você progride com a construção do sistema LFS. - -Parte I. Introdução - -Capítulo 1. Introdução - -1.1. Como Construir um Sistema LFS - - O sistema LFS será construído usando uma distribuição Linux já - instalada (tal como Debian, OpenMandriva, Fedora, ou openSUSE). Esse - sistema Linux existente (o anfitrião) será usado como ponto de partida - para fornecer os aplicativos necessários, incluindo um compilador, um - vinculador, e um interpretador de comandos, para construir o novo - sistema. Selecione a opção “desenvolvimento†durante a instalação da - distribuição para estar apto a acessar essas ferramentas. - - Como uma alternativa a instalar uma distribuição separada em sua - máquina, você talvez deseje usar um LiveCD de uma distribuição - comercial. - - [188]Capítulo 2 deste livro descreve como criar uma nova partição Linux - nativa e sistema de arquivos. Esse é o local onde o novo sistema LFS - será compilado e instalado. [189]Capítulo 3 explica quais pacotes e - patches precisam ser baixados para construir um sistema LFS e como eles - devem ser armazenados no novo sistema de arquivos. [190]Capítulo 4 - discute a configuração de um ambiente de trabalho apropriado. Por - favor, leia o [191]Capítulo 4 cuidadosamente, uma vez que ele explica - vários assuntos importantes sobre os quais você deve estar ciente antes - de começar seu trabalho ao longo do [192]Capítulo 5 e além. - - [193]Capítulo 5, explica a instalação do conjunto inicial de - ferramentas, (binutils, gcc, e glibc) usando técnicas de compilação - cruzada para isolar as novas ferramentas das do sistema anfitrião. - - [194]Capítulo 6 te mostra como compilar cruzadamente utilitários - básicos usando o recém construído conjunto cruzado de ferramentas. - - [195]Capítulo 7 então entra em um ambiente "chroot" e usa as - ferramentas previamente construídas para construir as ferramentas - adicionais necessárias para construir e para testar o sistema final. - - Esse esforço para isolar o sistema novo do sistema anfitrião talvez - pareça excessivo. Uma explicação técnica completa sobre o porquê isso é - feito é fornecida em [196]Notas Técnicas do Conjunto de Ferramentas. - - Em [197]Capítulo 8, o sistema LFS completo é construído. Outra vantagem - fornecida pelo ambiente chroot é que ele te permite continuar usando o - sistema anfitrião enquanto que LFS está sendo construído. Enquanto - espera por compilações de pacotes completarem, você pode continuar - usando seu computador normalmente. - - Para finalizar a instalação, a configuração básica do sistema é - concluída em [198]Capítulo 9, e o kernel e carregador de inicialização - são configurados em [199]Capítulo 10. [200]Capítulo 11 contém - informação sobre como continuar a experiência LFS além deste livro. - Após os passos neste livro terem sido implementados, o computador - estará pronto para reiniciar no novo sistema LFS. - - Esse é o processo em poucas palavras. Informação detalhada sobre cada - passo é discutida nos capítulos seguintes e nas descrições dos pacotes. - Itens que talvez pareçam complicados serão esclarecidos, e tudo ficará - em seu devido lugar conforme você embarcar na aventura do LFS. - -1.2. O que há de novo desde o último lançamento - - Nesta versão de LFS, houve uma grande reorganização do livro usando - técnicas que evitam a modificação do sistema anfitrião e fornecem um - seguimento mais estrito do processo de construção. - - Abaixo está uma lista das atualizações de pacotes feitas desde o - lançamento anterior do livro. - - Atualizado para: - * Automake-1.16.5 - * Bash-5.1.16 - * Bc-5.2.2 - * Binutils-2.38 - * Bison-3.8.2 - * Coreutils-9.0 - * E2fsprogs-1.46.5 - * Expat-2.4.6 - * File-5.41 - * Findutils-4.9.0 - * Gawk-5.1.1 - * GDBM-1.23 - * Glibc-2.35 - * Gzip-1.11 - * IANA-Etc-20220207 - * Inetutils-2.2 - * IPRoute2-5.16.0 - * Jinja2-3.0.3 - * Libcap-2.63 - * Libelf-0.186 (de: elfutils) - * Libpipeline-1.5.5 - * Linux-5.16.9 - * Man-DB-2.10.1 - * Meson-0.61.1 - * Ncurses-6.3 - * Openssl-3.0.1 - * Python-3.10.2 - * Readline-8.1.2 - * Shadow-4.11.1 - * Systemd-250 - * Tcl-8.6.12 - * Tzdata-2021e - * Util-Linux-2.37.4 - * Vim-8.2.4383 - * Zstd-1.5.2 - - Adicionado: - * binutils-2.38-lto_fix-1.patch - * coreutils-9.0-chmod_fix-1.patch - * file-5.40-upstream_fixes-1.patch - * shadow-4.10-useradd_segfault-1.patch - * systemd-250-upstream_fixes-1.patch - -1.3. Registro de Mudanças - - Esta é a versão 11.1-systemd do livro Linux From Scratch, datada de 1º - de março de 2022. Se este livro estiver com mais de seis meses, então - uma versão nova e melhor provavelmente já está disponível. Para - descobrir, por favor verifique um dos sites via - [201]https://www.linuxfromscratch.org/mirrors.html. - - Abaixo está uma lista das mudanças feitas desde o lançamento anterior - do livro. - - Entradas de Registro de Mudanças: - * 2022-03-01 - + [bdubbs] - LFS-11.1 lançado. - * 2022-02-23 - + [bdubbs] - Atualização para expat-2.4.6 (correção de - segurança). Corrige [202]#5011. - * 2022-02-15 - + [bdubbs] - LFS-11.1-rc1 lançado. - + [bdubbs] - Adicionar binutils-2.38 LTO patch. Corrige - [203]#5011. - + [bdubbs] - Atualização para util-linux-2.37.4. Corrige - [204]#5010. - + [bdubbs] - Atualização para man-db-2.10.1. Corrige [205]#5009. - + [bdubbs] - Atualização para linux-5.16.9. Corrige [206]#5008. - + [bdubbs] - Atualização para vim-8.2.4383 (Atualização de - Segurança). Endereça [207]#4500. - + [bdubbs] - Atualização para iana-etc-20220207. Endereça - [208]#5006. - * 2022-02-10 - + [xry111] - Contorna um problema que causa os binários se - vincularem a bibliotecas da distribuição anfitriã para a - passagem dois de binutils. Agora é desnecessário construir - zlib em capítulo 6. - * 2022-02-09 - + [bdubbs] - Atualização para bc-5.2.2. Corrige [209]#5004. - + [bdubbs] - Atualização para linux-5.16.8. Corrige [210]#5005. - + [bdubbs] - Atualização para binutils-2.38. Exige a adição de - zlib para Capítulo 6. Corrige [211]#5007. - * 2022-02-04 - + [xry111] - Remove diretivas bash +h em chroot. Corrige - [212]#4998. - + [xry111] - Atualização para man-db-2.10.0. Corrige [213]#5002. - + [xry111] - Move OpenSSL para antes de Kmod e habilita OpenSSL - para construção de Kmod. - + [xry111] - Atualização para gdbm-1.23. Corrige [214]#5000. - + [xry111] - Atualização para tcl-8.6.12. Corrige [215]#5001. - + [thomas] - Remove sed das instruções glibc em capítulo 8. Foi - submetida ao desenvolvedor. - * 2022-02-03 - + [bdubbs] - Adicionado patch chmod do coreutils-9.0. Corrige - [216]#4992. - + [bdubbs] - Atualização para glibc-2.35. Corrige [217]#4999. - + [bdubbs] - Atualização para linux-5.16.5. Corrige [218]#4996. - + [bdubbs] - Atualização para findutils-4.9.0. Corrige - [219]#4995. - + [bdubbs] - Atualização para expat-2.4.4. Corrige [220]#4993. - + [bdubbs] - Atualização para iana-etc-20220128. Corrige - [221]#4994. - * 2022-01-29 - + [bdubbs] - Atualização para linux-5.16.4. Corrige [222]#4991. - * 2022-01-27 - + [bdubbs] - Atualização para vim-8.2.4236. Endereça [223]#4500. - + [bdubbs] - Atualização para zstd-1.5.2. Corrige [224]#4988. - + [bdubbs] - Atualização para util-linux-2.37.3 (correção de - segurança). Corrige [225]#4989. - + [bdubbs] - Atualização para Python-3.10.2. Corrige [226]#4987. - + [bdubbs] - Atualização para linux-5.16.2. Corrige [227]#4979. - + [bdubbs] - Atualização para libcap-2.63. Corrige [228]#4990. - + [bdubbs] - Atualização para iproute2-5.16.0. Corrige - [229]#4982. - + [bdubbs] - Atualização para iana-etc-20220120. Corrige - [230]#4975. - * 2022-01-20 - + [bdubbs] - Atualização para expat-2.4.3 (correções de - segurança). Corrige [231]#4984. - + [pierre] - Atualização para meson-0.61.1. Corrige [232]#4985. - * 2022-01-17 - + [thomas] - Adicionada uma correção de um erro de digitação - para o patch de meson-0.61.0. - * 2022-01-15 - + [bdubbs] - Atualização para shadow-4.11.1. Corrige [233]#4976. - + [bdubbs] - Atualização para readline-8.1.2. Corrige - [234]#4980. - + [bdubbs] - Atualização para meson-0.61.0. Corrige [235]#4983. - + [bdubbs] - Atualização para libpipeline-1.5.5. Corrige - [236]#4977. - + [bdubbs] - Atualização para bash-5.1.16. Corrige [237]#4978. - * 2021-01-13 - + [renodr] - Corrigido CVE-2021-3997 em systemd, bem como - correção de um problema com as Unidades padrão hostname e - idle. Corrige [238]#4981. - * 2021-01-03 - + [renodr] - Acrescenta configuração adicional de kernel para - permitir que 'systemd-oomd' funcione. - * 2022-01-01 - + [bdubbs] - Atualização para e2fsprogs-1.46.5. Corrige - [239]#4974. - + [bdubbs] - Atualização para zstd-1.5.1. Corrige [240]#4972. - + [bdubbs] - Atualização para expat-2.4.2. Corrige [241]#4970. - + [bdubbs] - Atualização para shadow-4.10. Corrige [242]#4969. - + [bdubbs] - Atualização para linux-5.15.12. Corrige [243]#4967. - + [bdubbs] - Atualização para iana-etc-20211224. Corrige - [244]#4962. - + [bdubbs] - Atualização para openssl-3.0.1. Corrige [245]#4922. - + [bdubbs] - Atualização para eudev-3.2.11. Corrige [246]#4914. - * 2021-12-30 - + [renodr] - Atualização para systemd-250. Corrige [247]#4971. - + [renodr] - Atualização para meson-0.60.3. Corrige [248]#4973. - * 2021-12-15 - + [bdubbs] - Atualização para python3-3.10.1. Corrige - [249]#4963. - + [bdubbs] - Atualização para openssl-1.1.1m. Corrige - [250]#4966. - + [bdubbs] - Atualização para linux-5.15.7. Corrige [251]#4964. - + [bdubbs] - Atualização para libcap-2.62. Corrige [252]#4965. - * 2021-12-14 - + [thomas] - Permite a construção de findutils em sistemas de 32 - bits. Commits aplicados a partir da branch multilib por - [pierre]. - * 2021-12-01 - + [bdubbs] - Atualização para vim-8.2.3704. Endereça [253]#4500. - + [bdubbs] - Atualização para iana-etc-20211124. Corrige - [254]#4957. - + [bdubbs] - Atualização para bc-5.2.1. Corrige [255]#4959. - + [bdubbs] - Atualização para meson-0.60.2. Corrige [256]#4960. - + [bdubbs] - Atualização para linux-5.15.5. Corrige [257]#4956. - * 2021-11-15 - + [bdubbs] - Atualização para iana-etc-20211112. Corrige - [258]#4955. - + [bdubbs] - Atualização para elfutils-0.186. Corrige - [259]#4954. - + [bdubbs] - Atualização para jinja2-3.0.3. Corrige [260]#4953. - + [bdubbs] - Atualização para bc-5.2.0. Corrige [261]#4952. - + [bdubbs] - Atualização para ncurses-6.3. Corrige [262]#4951. - + [bdubbs] - Atualização para libpipeline-1.5.4. Corrige - [263]#4950. - + [bdubbs] - Atualização para meson-0.60.1. Corrige [264]#4949. - + [bdubbs] - Atualização para iproute2-5.15.0. Corrige - [265]#4948. - + [bdubbs] - Atualização para linux-5.15.2. Corrige [266]#4947. - * 2021-11-01 - + [bdubbs] - Atualização para gawk-5.1.1. Corrige [267]#4946. - + [bdubbs] - Atualização para meson-0.60.0. Corrige [268]#4945. - + [bdubbs] - Atualização para libcap-2.60. Corrige [269]#4944. - + [bdubbs] - Atualização para gdbm-1.22. Corrige [270]#4943. - + [bdubbs] - Atualização para file-5.41. Corrige [271]#4942. - + [bdubbs] - Atualização para linux-5.14.15. Corrige [272]#4941. - + [bdubbs] - Atualização para iana-etc-20211025. Corrige - [273]#4940. - + [bdubbs] - Atualização para tzdata-2021e. Corrige [274]#4939. - * 2021-10-15 - + [bdubbs] - Atualização para vim-8.2.3508. Endereça [275]#4500. - + [bdubbs] - Atualização para tzdata-2021c. Corrige [276]#4934. - + [bdubbs] - Atualização para Python-3.10.0. Corrige [277]#4938. - + [bdubbs] - Atualização para Jinja2-3.0.2. Corrige [278]#4937. - + [bdubbs] - Atualização para linux-5.14.12. Corrige [279]#4932. - + [bdubbs] - Atualização para iana-etc-20211004. Corrige - [280]#4933. - + [bdubbs] - Atualização para bc-5.1.1. Corrige [281]#4936. - + [bdubbs] - Atualização para automake-1.16.5. Corrige - [282]#4935. - * 2021-10-01 - + [bdubbs] - Atualização para vim-8.2.3458. Endereça [283]#4500. - + [bdubbs] - Atualização para iana-etc-20210924. Endereça - [284]#4722. - + [bdubbs] - Atualização para tzdata-2021b. Corrige [285]#4929. - + [bdubbs] - Atualização para meson-0.59.2. Corrige [286]#4931. - + [bdubbs] - Atualização para linux-5.14.8. Corrige [287]#4925. - + [bdubbs] - Atualização para libcap-2.59. Corrige [288]#4926. - + [bdubbs] - Atualização para coreutils-9.0. Corrige [289]#4928. - + [bdubbs] - Atualização para bison-3.8.2. Corrige [290]#4930. - * 2021-09-15 - + [bdubbs] - Garante que as instruções de documentação de tcl - estão presentes. Corrige [291]#4923. - + [bdubbs] - Atualização para Python3-3.9.7. Corrige [292]#4916. - + [bdubbs] - Atualização para linux-5.14.3. Corrige [293]#4913. - + [bdubbs] - Atualização para libcap-2.57. Corrige [294]#4912. - + [bdubbs] - Atualização para iproute2-5.14.0. Corrige - [295]#4917. - + [bdubbs] - Atualização para inetutils-2.2. Corrige [296]#4918. - + [bdubbs] - Atualização para gzip-1.11. Corrige [297]#4920. - + [bdubbs] - Atualização para gdbm-1.21. Corrige [298]#4919. - + [bdubbs] - Atualização para bison-3.8.1. Corrige [299]#4921. - + [bdubbs] - Atualização para bc-5.0.2. Corrige [300]#4905. - * 2021-09-08 - + [renodr] - Corrige regressões em File que resultam em detecção - inapropriada de texto e arquivos XZ. - * 2021-09-06 - + [bdubbs] - Esclarecimentos de texto na seção cópia de - segurança/restauração de Capítulo 7. Grato a Kevin Buckley - pelo patch. - * 2021-09-01 - + [bdubbs] - LFS-11.0 lançado. - -1.4. Recursos - -1.4.1. Perguntas Frequentes - - Se durante a construção do sistema LFS você encontrar quaisquer erros, - tiver quaisquer perguntas, ou entender que há um erro de digitação no - livro, então, por favor, comece consultando as Perguntas Feitas - Frequentemente (FAQ) que estão localizadas em - [301]https://www.linuxfromscratch.org/faq/. - -1.4.2. Listas de Correio Eletrônico - - O servidor linuxfromscratch.org hospeda um número de listas de - discussão usadas para o desenvolvimento do projeto LFS. Essas listas - incluem as principais listas de desenvolvimento e suporte, dentre - outras. Se o FAQ não resolver o problema que você está tendo, então o - próximo passo seria procurar nas listas de discussão em - [302]https://www.linuxfromscratch.org/search.html. - - Para informação sobre as diversas listas, como se inscrever, - localização de arquivos e informações adicionais, visite - [303]https://www.linuxfromscratch.org/mail.html. - -1.4.3. IRC - - Vários membros da comunidade LFS oferecem assistência no Internet Relay - Chat (IRC). Antes de usar esse suporte, por favor certifique-se de que - sua pergunta já não foi respondida no FAQ do LFS ou nos arquivos das - listas de discussão. Você pode encontrar a rede IRC em irc.libera.chat. - O canal de suporte é chamado de #lfs-support. - -1.4.4. Sítios Espelho - - O projeto LFS tem um número de espelhos mundo afora para fazer com que - o acesso ao site do projeto e o download dos pacotes exigidos seja mais - conveniente. Por favor visite o site do LFS em - [304]https://www.linuxfromscratch.org/mirrors.html para uma lista dos - espelhos atuais. - -1.4.5. Informação de Contato - - Por favor, direcione todas as suas questões e comentários para uma das - listas de discussão (veja acima). - -1.5. Ajuda - - Se um problema ou uma pergunta for encontrado durante o trabalho com - este livro, então, por favor, verifique a página de Perguntas - Frequentes em [305]https://www.linuxfromscratch.org/faq/#generalfaq. - Perguntas frequentemente já estão respondidas lá. Se sua pergunta não - estiver respondida nessa página, então, por favor, tente encontrar a - origem do problema. A dica seguinte te dará alguma orientação com - relação à resolução de problemas: - [306]https://www.linuxfromscratch.org/hints/downloads/files/errors.txt. - - Se você não puder achar seu problema listado nas Perguntas Frequentes, - então procure nas listas de discussão em - [307]https://www.linuxfromscratch.org/search.html. - - Nós também temos uma comunidade LFS maravilhosa que está disposta a - oferecer assistência por meio das listas de discussão e IRC (veja a - seção [308]Seção 1.4, “Recursos†deste livro). Entretanto, nós temos - várias perguntas de suporte todos os dias e muitas delas podem ser - facilmente respondidas indo para as Perguntas Frequentes e procurando - nas listas de discussão primeiro. Então, para que nós possamos oferecer - a melhor assistência possível, você precisa fazer alguma pesquisa por - conta própria primeiro. Isso nos permite focar nas necessidades menos - usuais de suporte. Se suas buscas não produzirem uma solução, então, - por favor, inclua todas as informações relevantes (mencionadas abaixo) - no seu pedido de ajuda. - -1.5.1. Coisas a Mencionar - - Além de uma breve explanação do problema sendo vivenciado, as coisas - essenciais a incluir em qualquer pedido de ajuda são: - * A versão do livro sendo usado (neste caso 11.1-systemd) - * A distribuição anfitriã e versão sendo usada para criar LFS - * A saída do script [309]Exigências do Sistema Anfitrião - * O pacote ou seção onde o problema foi encontrado - * A mensagem de erro exata ou o sintoma sendo recebido - * Nota se você se desviou do livro afinal - -Nota - - Desviar-se deste livro não significa que nós não vamos te ajudar. - Afinal de contas, LFS é acerca de preferência pessoal. Ser sincero - sobre quaisquer mudanças nos procedimentos estabelecidos nos ajuda a - avaliar e determinar possíveis causas do seu problema. - -1.5.2. Problemas de Script de Configuração - - Se algo der errado quando executar o script configure, então revise o - arquivo config.log. Esse arquivo talvez contenha erros encontrados - durante [a execução de] configure os quais não foram exibidos na tela. - Inclua as linhas relevantes se você precisar pedir ajuda. - -1.5.3. Problemas de Compilação - - Tanto a saída da tela quando o conteúdo de vários arquivos são úteis - para determinar a causa de problemas de compilação. A saída da tela do - script configure e do make executado podem ser úteis. Não é necessário - incluir toda a saída, mas inclua informações relevantes suficientes. - Abaixo está um exemplo do tipo de informação a incluir a partir da - saída de tela do make: -gcc -DALIASPATH=\"/mnt/lfs/usr/share/locale:.\" --DLOCALEDIR=\"/mnt/lfs/usr/share/locale\" --DLIBDIR=\"/mnt/lfs/usr/lib\" --DINCLUDEDIR=\"/mnt/lfs/usr/include\" -DHAVE_CONFIG_H -I. -I. --g -O2 -c getopt1.c -gcc -g -O2 -static -o make ar.o arscan.o commands.o dir.o -expand.o file.o function.o getopt.o implicit.o job.o main.o -misc.o read.o remake.o rule.o signame.o variable.o vpath.o -default.o remote-stub.o version.o opt1.o --lutil job.o: In function `load_too_high': -/lfs/tmp/make-3.79.1/job.c:1565: undefined reference -to `getloadavg' -collect2: ld returned 1 exit status -make[2]: *** [make] Error 1 -make[2]: Leaving directory `/lfs/tmp/make-3.79.1' -make[1]: *** [all-recursive] Error 1 -make[1]: Leaving directory `/lfs/tmp/make-3.79.1' -make: *** [all-recursive-am] Error 2 - - Nesse caso, muitas pessoas incluiriam apenas a seção final: -make [2]: *** [make] Error 1 - - Essa não é informação suficiente para diagnosticar adequadamente o - problema, pois essa linha apenas mostra que algo deu errado, não o quê - deu errado. A seção inteira, como no exemplo acima, é o que deveria ser - salva, porque ela inclui o comando que foi executado e a(s) - mensagem(ns) de erro associada(s). - - Um artigo excelente sobre como pedir ajuda na Internet está disponível - em [310]http://catb.org/~esr/faqs/smart-questions.html. Leia e siga as - dicas nesse documento para aumentar a possibilidade receber a ajuda que - você precisa. - -Parte II. Preparando para a Construção - -Capítulo 2. Preparando o Sistema Anfitrião - -2.1. Introdução - - Neste capítulo, as ferramentas do anfitrião necessárias para construção - de LFS são verificadas e, se necessário, instaladas. Então uma partição - que hospedará o sistema LFS é preparada. Nós criaremos a própria - partição, criaremos um sistema de arquivos nela, e a montaremos. - -2.2. Exigências do Sistema Anfitrião - - Seu sistema anfitrião deveria ter o software seguinte com as versões - mínimas indicadas. Isso não deveria ser um problema para a maioria das - distribuições Linux modernas. Também, perceba que muitas distribuições - colocarão cabeçalhos de aplicativos dentro de pacotes separados, - frequentemente na forma de “-devel†ou - “-devâ€. Certifique-se de instalá-los se sua distribuição - os fornecer. - - Versões anteriores dos pacotes de software listados talvez funcionem, - porém não foram testados. - * Bash-3.2 (/bin/sh deveria ser um link simbólico ou real para bash) - * Binutils-2.13.1 (Versões maiores que 2.38 não são recomendadas dado - que elas não foram testadas) - * Bison-2.7 (/usr/bin/yacc deveria ser um link para bison ou script - pequeno que executa bison) - * Coreutils-6.9 - * Diffutils-2.8.1 - * Findutils-4.2.31 - * Gawk-4.0.1 (/usr/bin/awk deveria ser um link para gawk) - * GCC-4.8 incluindo o compilador C++, g++ (Versões maiores que 11.2.0 - não são recomendadas dado que elas não foram testadas). As - bibliotecas C e C++ padrão (com cabeçalhos) também devem estar - presentes, de forma que o compilador C++ possa construir - aplicativos hospedados - * Grep-2.5.1a - * Gzip-1.3.12 - * Linux Kernel-3.2 - A razão para a exigência da versão de kernel é que nós - especificamos essa versão quando da construção de glibc em - [311]Capítulo 5 e [312]Capítulo 8, por recomendação dos - desenvolvedores. Ela também é exigida por udev. - Se o kernel do anfitrião for anterior a 3.2, então você precisará - substituir o kernel com uma versão mais atualizada. Existem duas - maneiras de você fazer isso. Primeira, veja se seu fornecedor Linux - fornece um pacote de kernel 3.2 ou mais atual. Se sim, então você - talvez deseje instalá-lo. Se seu fornecedor não oferecer um pacote - de kernel aceitável, ou você preferisse não instalá-lo, então você - mesmo pode compilar um kernel. Instruções para a compilação de - kernel e configuração de carregador de inicialização (presumindo - que o anfitrião usa GRUB) estão localizadas em [313]Capítulo 10. - * M4-1.4.10 - * Make-4.0 - * Patch-2.5.4 - * Perl-5.8.8 - * Python-3.4 - * Sed-4.1.5 - * Tar-1.22 - * Texinfo-4.7 - * Xz-5.0.0 - -Importante - - Perceba que os links simbólicos mencionados acima são exigidos para - construir um sistema LFS usando as instruções contidas neste livro. - Links simbólicos que apontem para outro software (tais como dash, mawk, - etc.) talvez funcionem, porém não são testados ou suportados pela - equipe de desenvolvimento de LFS, e talvez exijam ou desvio das - instruções ou correções adicionais para alguns pacotes. - - Para ver se seu sistema anfitrião tem todas as versões apropriadas, e a - habilidade de compilar aplicativos, execute o seguinte: -cat > version-check.sh << "EOF" -#!/bin/bash -# Script simples para listar números de versão de ferramentas críticas de desenv -olvimento -export LC_ALL=C -bash --version | head -n1 | cut -d" " -f2-4 -MYSH=$(readlink -f /bin/sh) -echo "/bin/sh -> $MYSH" -echo $MYSH | grep -q bash || echo "ERRO: /bin/sh não aponta para bash" -unset MYSH - -echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3- -bison --version | head -n1 - -if [ -h /usr/bin/yacc ]; then - echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`"; -elif [ -x /usr/bin/yacc ]; then - echo yacc is `/usr/bin/yacc --version | head -n1` -else - echo "yacc não encontrado" -fi - -echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2 -diff --version | head -n1 -find --version | head -n1 -gawk --version | head -n1 - -if [ -h /usr/bin/awk ]; then - echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`"; -elif [ -x /usr/bin/awk ]; then - echo awk é `/usr/bin/awk --version | head -n1` -else - echo "awk não encontrado" -fi - -gcc --version | head -n1 -g++ --version | head -n1 -grep --version | head -n1 -gzip --version | head -n1 -cat /proc/version -m4 --version | head -n1 -make --version | head -n1 -patch --version | head -n1 -echo Perl `perl -V:version` -python3 --version -sed --version | head -n1 -tar --version | head -n1 -makeinfo --version | head -n1 # versão texinfo -xz --version | head -n1 - -echo 'int main(){}' > dummy.c && g++ -o dummy dummy.c -if [ -x dummy ] - then echo "g++ compilação OK"; - else echo "g++ compilação falhou"; fi -rm -f dummy.c dummy -EOF - -bash version-check.sh - -2.3. Construindo LFS em Estágios - - LFS está desenhado para ser construído em uma sessão. Isto é, as - instruções assumem que o sistema não será desligado durante o processo. - Isso não significa que o sistema tenha que estar pronto de uma só vez. - O problema é que certos procedimentos tem que ser realizados outra vez - após uma inicialização se retomando LFS em pontos diferentes. - -2.3.1. Capítulos 1–4 - - Esses capítulos são realizados no sistema anfitrião. Quando da - reinicialização, seja cuidadosa(o) com o seguinte: - * Procedimentos feitos como a(o) usuária(o) root após a Seção 2.4 - precisam ter a variável de ambiente LFS configurada PARA A(O) - USUÃRIA(O) ROOT. - -2.3.2. Capítulos 5–6 - - * A partição /mnt/lfs deve estar montada. - * Esses dois capítulos devem ser feitos como a(o) usuária(o) lfs. Um - su - lfs precisa ser feito antes de qualquer tarefa nesses - capítulos. Ao falhar em fazer isso, você está no risco de instalar - pacotes no sistema anfitrião, e potencialmente torná-lo - inutilizável. - * Os procedimentos em [314]Instruções Gerais de Compilação são - críticos. Se existir qualquer dúvida acerca da instalação de um - pacote, então certifique-se de que qualquer arquivo tar - descomprimido previamente foi removido, então extraia novamente os - arquivos do pacote, e complete todas as instruções nessa seção. - -2.3.3. Capítulos 7–10 - - * A partição /mnt/lfs deve estar montada. - * Umas poucas operações, de “Mudando Dono†até “Entrando no Ambiente - Chroot†devem ser feitas como a(o) usuária(o) root, com a variável - de ambiente LFS configurada para a(o) usuária(o) root. - * Quando entrar em chroot, a variável de ambiente LFS deve estar - configurada para root. A variável LFS não mais é usada - posteriormente. - * Os sistemas virtuais de arquivo devem estar montados. Isso pode ser - feito antes ou depois de entrar em chroot mudando para um terminal - virtual do anfitrião e, como root, executando os comandos em - [315]Seção 7.3.2, “Montando e Povoando /dev†e [316]Seção 7.3.3, - “Montando Sistemas de Arquivos Virtuais de Kernelâ€. - -2.4. Criando uma Nova Partição - - Como a maior parte dos outros sistemas operacionais, LFS geralmente é - instalado em uma partição dedicada. A abordagem recomendada para - construir um sistema LFS é a de usar uma partição disponível vazia ou, - se você tiver espaço suficiente não particionado, criar uma. - - Um sistema mínimo exige uma partição com cerca de dez (10) gigabytes - (GB). Isso é suficiente para armazenar todos os arquivos tar dos - códigos fontes e compilar os pacotes. Entretanto, se o sistema LFS for - concebido para ser o sistema Linux principal, então aplicativos - adicionais provavelmente serão instalados os quais exigirão espaço - adicional. Uma partição de trinta (30) GB é um tamanho razoável para - permitir o crescimento. O sistema LFS em si não ocupará esse espaço - todo. Uma boa parte dessa exigência é para fornecer espaço livre - suficiente de armazenamento temporário. Adicionalmente, a compilação de - pacotes pode exigir muito espaço de disco que será recuperado após o - pacote ser instalado. - - Como nem sempre existe Memória de Acesso Aleatório (RAM) suficiente - disponível para processos de compilação, é uma boa ideia usar uma - pequena partição de disco como espaço de swap. Ele é usado pelo kernel - para armazenar dados raramente usados e deixa mais memória disponível - para processos ativos. A partição de swap para um sistema LFS pode ser - a mesma que aquela usada pelo sistema anfitrião, caso no qual não é - necessário criar outra. - - Inicie um aplicativo de particionamento de disco como cfdisk ou fdisk - com uma opção de linha de comando indicando o disco rígido no qual a - nova partição será criada—por exemplo /dev/sda para o controlador - primário de disco. Crie uma partição nativa Linux e uma partição swap, - se necessária. Por favor, recorra a cfdisk(8) ou fdisk(8) se você ainda - não sabe como usar os aplicativos. - -Nota - - Para usuários experientes, outros esquemas de partição são possíveis. O - novo sistema LFS pode estar em um vetor de software [317]RAID ou um - volume lógico [318]LVM. Entretanto, algumas dessas opções exigem um - [319]initramfs, o que é um tópico avançado. Essas metodologias de - particionamento não são recomendadas para usuárias(os) de LFS pela - primeira vez. - - Lembre-se da designação da nova partição (por exemplo, sda5). Este - livro se referirá a essa como a partição LFS. Lembre-se também da - designação da partição swap. Esses nomes serão necessários - posteriormente para o arquivo /etc/fstab. - -2.4.1. Outros Problemas de Partição - - Pedidos de ajuda com relação a particionamento de disco frequentemente - são enviados à lista de discussão do LFS. Esse é um assunto altamente - subjetivo. O padrão para a maioria das distribuições é o de usar todo o - disco com a exceção de uma pequena partição swap. Isso não é ideal para - LFS por várias razões. Isso reduz flexibilidade; torna o - compartilhamento de dados entre múltiplas distribuições ou construções - LFS mais difícil; torna as cópias de segurança mais demoradas; e podem - desperdiçar espaço de disco devido à alocação ineficiente de estruturas - de sistema de arquivo. - -2.4.1.1. A Partição Raiz - - Uma partição raiz de LFS (não confundir com o diretório /root) de vinte - (20) gigabytes é uma boa escolha para a maior parte dos sistemas. Ela - fornece espaço suficiente para construir LFS e a maior parte de BLFS, - mas é pequena o suficiente de forma que múltiplas partições podem ser - criadas facilmente para experimentação. - -2.4.1.2. A Partição Swap - - A maioria das distribuições automaticamente cria uma partição swap. - Geralmente o tamanho recomendado da partição swap é o de cerca de o - dobro da quantidade de RAM física, entretanto isso raramente é - necessário. Se espaço de disco for limitado, então mantenha a partição - swap com dois (2) gigabytes e monitore a quantidade de troca de disco. - - Se você quer usar a característica de hibernação do Linux - (suspend-to-disk), copia o conteúdo da RAM para a partição swap antes - de desligar a máquina. Nesse caso o tamanho da partição swap deveria - ser pelo menos tão grande quanto a RAM instalada do sistema. - - O uso de swap nunca é bom. Para discos rígidos mecânicos você - geralmente pode dizer se um sistema está usando swap simplesmente - monitorando a atividade de disco e observando como o sistema reage a - comandos. Para um drive SSD você não estará apta(o) a monitorar swap, - porém você pode dizer quanto espaço de swap está sendo usado via - aplicativos top ou free. O uso de um drive SSD para uma partição swap - deveria ser evitado se possível. A primeira reação em caso de uso de - swap deveria ser verificar se existe um comando irracional como tentar - editar um arquivo de cinco gigabytes. Se o uso de swap se tornar uma - ocorrência recorrente, então a melhor solução é a de comprar mais RAM - para seu sistema. - -2.4.1.3. A Partição de Bios Grub - - Se o disco de inicialização tiver sido particionado com a Tabela de - Partição GUID (GPT), então uma partição pequena, tipicamente um (1) MB, - deve ser criada se ela já não existir. Essa partição não é formatada, - porém deve estar disponível para GRUB usar durante a instalação do - carregador de inicialização. Essa partição normalmente será rotulada - 'BIOS Boot' se usar fdisk ou terá um código de EF02 se usar gdisk. - -Nota - - A Partição de Bios Grub deve estar no drive que o BIOS usa para - inicializar o sistema. Esse não é necessariamente o mesmo drive onde a - partição raiz de LFS está localizada. Discos em um sistema talvez usem - tipos diferentes de tabela de partição. A exigência para essa partição - depende apenas do tipo de tabela de partição do disco de inicialização. - -2.4.1.4. Partições de Conveniência - - Existem várias outras partições que não são exigidas, porém deveriam - ser consideradas ao se projetar um layout de disco. A lista seguinte - não é abrangente, mas é entendida como um guia. - * /boot – Altamente recomendada. Use essa partição para armazenar - kernels e outras informações de inicialização. Para minimizar - potenciais problemas de inicialização com discos maiores, torne - essa a primeira partição física no seu primeiro controlador de - disco. Um tamanho de partição de duzentos (200) megabytes é - bastante adequado. - * /home – Altamente recomendada. Compartilhe seu diretório home e - personalizações de usuário entre múltiplas distribuições ou - construções LFS. O tamanho geralmente é bastante grande e depende - do espaço de disco disponível. - * /usr – Em LFS, /bin, /lib, e /sbin são links simbólicos para seus - homólogos em /usr. Assim /usr contém todos os binários necessários - para o sistema executar. Para LFS, uma partição separada para /usr - normalmente não é necessária. Se você precisar dela de qualquer - maneira, então você deveria tornar uma partição grande o suficiente - para acomodar todos os aplicativos e bibliotecas no sistema. A - partição raiz pode ser bem pequena (talvez apenas um gigabyte) - nessa configuração, de forma que ela seja adequada para um "thin - client" ou estação de trabalho sem disco (onde /usr é montado a - partir de um servidor remoto). Entretanto, você deveria tomar - cuidado que um initramfs (não coberto por LFS) será necessário para - inicializar um sistema com partição /usr separada. - * /opt – Esse diretório é mais útil para BLFS onde múltiplas - instalações de pacotes grandes como Gnome ou KDE podem ser - instalados sem embutir os arquivos na hierarquia /usr. Se usado, 5 - a 10 gigabytes geralmente é adequado. - * /tmp – Um diretório /tmp separado é raro, mas útil ao se configurar - um "thin client". Essa partição, se usada, geralmente não precisará - exceder alguns gigabytes. - * /usr/src – Essa partição é muito útil para disponibilizar uma - localização para armazenar os arquivos fontes de BLFS e - compartilhá-los entre construções LFS. Ela também pode ser usada - como uma localização para construir pacotes BLFS. Uma partição - razoavelmente grande de 30 a 50 gigabytes permite muito espaço. - - Qualquer partição separada que você queira que seja montada - automaticamente durante a inicialização precisa ser especificada no - /etc/fstab. Detalhes sobre como especificar partições serão discutidos - em [320]Seção 10.2, “Criando o Arquivo /etc/fstabâ€. - -2.5. Criando um Sistema de Arquivos na Partição - - Agora que uma partição em branco foi configurada, o sistema de arquivos - pode ser criado. LFS pode usar qualquer sistema de arquivos reconhecido - pelo kernel Linux, mas os tipos mais comuns são ext3 e ext4. A escolha - do sistema de arquivos pode ser complexa e depende das características - dos arquivos e o tamanho da partição. Por exemplo: - - ext2 - é adequado para partições pequenas que são atualizadas com pouca - frequência tais como /boot. - - ext3 - é uma atualização do ext2 que inclui journal para ajudar a - recuperar o status da partição no caso de desligamento - inadequado. É comumente usada como sistema de arquivos de - propósito geral. - - ext4 - é a versão mais nova da família de sistema de arquivos ext de - tipos de partição. Ela fornece várias capacidades novas - incluindo marcas temporais em nano segundos, criação e uso de - arquivos muito grandes (16 TB), e melhoramentos de velocidade. - - Outros sistemas de arquivos, incluindo FAT32, NTFS, ReiserFS, JFS, e - XFS são úteis para propósitos especializados. Mais informação sobre - esses sistemas de arquivos pode ser encontrada em - [321]http://en.wikipedia.org/wiki/Comparison_of_file_systems. - - LFS assume que o sistema de arquivos raiz (/) é do tipo ext4. Para - criar um sistema de arquivos ext4 na partição LFS, execute o seguinte: -mkfs -v -t ext4 /dev/ - - Substitua com o nome da partição LFS. - - Se você está usando uma partição swap existente, então não há - necessidade de formatá-la. Se uma nova partição swap foi criada, então - ela precisará ser inicializada com este comando: -mkswap /dev/ - - Substitua com o nome da partição swap. - -2.6. Configurando a Variável $LFS - - Ao longo deste livro, a variável de ambiente LFS será usada muitas - vezes. Você deveria se assegurar de que essa variável sempre está - definida no decorrer do processo de construção de LFS. Ela deveria ser - configurada para o nome do diretório onde você estará construindo seu - sistema LFS - nós usaremos /mnt/lfs como um exemplo, porém a escolha do - diretório cabe totalmente a você. Se você está construindo LFS em uma - partição separada, então esse diretório será o ponto de montagem para a - partição. Escolha uma localização de diretório e configure a variável - com o seguinte comando: -export LFS=/mnt/lfs - - Ter essa variável configurada é benéfico naqueles comandos tais como - mkdir -v $LFS/tools os quais podem ser digitados literalmente. O - interpretador de comandos automaticamente substituirá “$LFS†com - “/mnt/lfs†(ou para o que a variável foi configurada) quando ele - processar a linha de comando. - -Cuidado - - Não se esqueça de verificar se LFS está configurada quando você deixar - e entrar novamente no ambiente atual de trabalho (como quando fizer um - su para root ou outra(o) usuária(o)). Verifique se a variável LFS está - configurada apropriadamente com: -echo $LFS - - Tenha certeza de que a saída mostra o caminho para sua localização de - construção do sistema LFS, a qual é /mnt/lfs se o exemplo fornecido foi - seguido. Se a saída estiver incorreta, então use o comando dado - anteriormente nesta página para configurar $LFS para o nome correto de - diretório. - -Nota - - Uma maneira de assegurar que a variável LFS sempre está configurada é - editar o arquivo .bash_profile tanto em seu diretório home pessoal - quanto em /root/.bash_profile e inserir o comando export acima. - Adicionalmente, o interpretador de comandos especificado no arquivo - /etc/passwd para todas(os) as(os) usuárias(os) que precisam da variável - LFS precisa ser bash para assegurar que o arquivo /root/.bash_profile é - incorporado como parte do processo de login. - - Outra consideração é o método que é usado para logar no sistema - anfitrião. Se logando por intermédio de um gerenciador gráfico de tela, - então o .bash_profile da(o) usuária(o) normalmente não é usado quando - um terminal virtual é iniciado. Nesse caso, adicione o comando export - ao arquivo .bashrc para a(o) usuária(o) e root. Adicionalmente, algumas - distribuições tem instruções para não executar as instruções de .bashrc - em uma invocação não interativa de bash. Certifique-se de adicionar o - comando export antes do teste para uso não interativo. - -2.7. Montando a Nova Partição - - Agora que um sistema de arquivos foi criado, a partição precisa se - tornar acessível. Para fazer isso, a partição precisa ser montada em um - ponto de montagem escolhido. Para os propósitos deste livro, assume-se - que o sistema de arquivos está montado sob o diretório especificado - pela variável de ambiente LFS conforme descrito na seção anterior. - - Crie o ponto de montagem e monte o sistema de arquivos de LFS - executando: -mkdir -pv $LFS -mount -v -t ext4 /dev/ $LFS - - Substitua com a designação da partição LFS. - - Se estiver usando múltiplas partições para LFS (por exemplo, uma para / - e outra para /home), então monte-as usando: -mkdir -pv $LFS -mount -v -t ext4 /dev/ $LFS -mkdir -v $LFS/home -mount -v -t ext4 /dev/ $LFS/home - - Substitua e com os nomes apropriados das partições. - - Assegure-se de que essa nova partição não está montada com permissões - que são muito restritivas (tais como as opções nosuid ou nodev). - Execute o comando mount sem quaisquer parâmetros para ver quais opções - estão configuradas para a partição LFS montada. Se nosuid e (ou) nodev - estiverem configuradas, então a partição precisará ser remontada. - -Atenção - - As instruções acima assumem que você não estará reiniciando seu - computador no decorrer do processo LFS. Se você desligar seu sistema, - então você precisará remontar a partição LFS a cada vez que você - reiniciar o processo de construção ou modificar seu arquivo /etc/fstab - do sistema anfitrião para remontá-la automaticamente após - inicialização. Por exemplo: -/dev/ /mnt/lfs ext4 defaults 1 1 - - Se você usa partições adicionais opcionais, então certifique-se de - adicioná-las também. - - Se você estiver usando uma partição swap, então assegure-se de que ela - está habilitada usando o comando swapon: -/sbin/swapon -v /dev/ - - Substitua com o nome da partição swap. - - Agora que existe um lugar estabelecido para trabalhar, é tempo de - baixar os pacotes. - -Capítulo 3. Pacotes e Patches - -3.1. Introdução - - Este capítulo inclui uma lista de pacotes que precisam ser baixados - para construir um sistema Linux básico. Os números de versão listados - correspondem a versões dos aplicativos que são conhecidos por - funcionar, e este livro é baseado no uso deles. Nós recomendamos - veementemente contra o uso de versões diferentes, pois os comandos de - construção para uma versão talvez não funcionem com uma versão - diferente, a menos que a versão diferente seja especificada por uma - errata de LFS ou conselho de segurança. As versões mais novas de pacote - talvez também tenham problemas que exigem contornos. Essas correções - serão desenvolvidas e estabilizadas na versão de desenvolvimento do - livro. - - Para alguns pacotes, o tarball de lançamento e o tarball instantâneo de - repositório (Git ou SVN) para este lançamento talvez seja publicado com - nome semelhante de arquivo. Um tarball de lançamento contém arquivos - generalizados (por exemplo, o script configure gerado por autoconf), em - adição aos conteúdos do correspondente instantâneo de repositório. O - livro usa tarballs de lançamento quando possível. Usar um instantâneo - de repositório em vez de um tarball de lançamento especificado pelo - livro causará problemas. - - Localizações de downloads nem sempre podem estar acessíveis. Se uma - localização de download mudou desde que este livro foi publicado, então - o Google ([322]http://www.google.com/) fornece um motor de busca útil - para a maioria dos pacotes. Se essa busca for mal sucedida, então tente - um dos meios alternativos de download em - [323]https://www.linuxfromscratch.org/lfs/mirrors.html#files. - - Pacotes e patches baixados precisarão ser armazenados em algum lugar - que esteja convenientemente disponível durante a construção inteira. Um - diretório de trabalho também é exigido para desempacotar os fontes e - construí-los. $LFS/sources pode ser usado tanto como o lugar para - armazenar os tarballs e patches quanto como diretório de trabalho. - Usando esse diretório, os elementos exigidos estarão localizados na - partição LFS e estarão disponíveis durante todos os estágios do - processo de construção. - - Para criar esse diretório, execute o seguinte comando, como usuária(o) - root, antes de começar a sessão de download: -mkdir -v $LFS/sources - - Torne esse diretório gravável e "sticky". “Sticky†significa que mesmo - se múltiplas(os) usuárias(os) tenham permissão de escrita, só a(o) - dona(o) de um arquivo pode deletar o arquivo dentro de um diretório - sticky. O seguinte comando habilitará os modos escrita e sticky: -chmod -v a+wt $LFS/sources - - Existem muitas maneiras para obter todos os pacotes e patches - necessários para construir LFS: - * Os arquivos podem ser baixados individualmente conforme descrito - nas próximas duas seções. - * Para versões estáveis do livro, um tarball de todos os arquivos - necessários pode ser baixado a partir de um dos espelhos de - arquivos de LFS listados em - [324]https://www.linuxfromscratch.org/mirrors.html#files. - * Os arquivos podem ser baixados usando wget e uma lista wget - conforme descrito abaixo. - - Para baixar todos os pacotes e patches usando [325]lista-wget como uma - entrada para o comando wget, use: -wget --input-file=lista-wget --continue --directory-prefix=$LFS/sources - -Nota - - O arquivo lista-wget mencionado acima recupera todos os pacotes para as - versões sysV e systemd de LFS. Existe um total de cinco pacotes - pequenos adicionais não necessários para o livro atual. O arquivo - md5sums mencionado abaixo é específico para o livro atual. - - Adicionalmente, começando com LFS-7.0, existe um arquivo separado, - [326]md5sums, que pode ser usado para verificar se todos os pacotes - corretos estão disponíveis antes de prosseguir. Coloque esse arquivo em - $LFS/sources e execute: -pushd $LFS/sources - md5sum -c md5sums -popd - - Essa verificação pode ser usada após recuperar os arquivos necessários - com qualquer dos métodos listados acima. - -3.2. Todos os Pacotes - - Baixe ou de outra forma obtenha os seguintes pacotes: - - Acl (2.3.1) - 348 KB: - Home page: [327]https://savannah.nongnu.org/projects/acl - - Download: - [328]https://download.savannah.gnu.org/releases/acl/acl-2.3.1.ta - r.xz - - MD5 sum: 95ce715fe09acca7c12d3306d0f076b2 - - Attr (2.5.1) - 456 KB: - Home page: [329]https://savannah.nongnu.org/projects/attr - - Download: - [330]https://download.savannah.gnu.org/releases/attr/attr-2.5.1. - tar.gz - - MD5 sum: ac1c5a7a084f0f83b8cace34211f64d8 - - Autoconf (2.71) - 1,263 KB: - Home page: [331]https://www.gnu.org/software/autoconf/ - - Download: - [332]https://ftp.gnu.org/gnu/autoconf/autoconf-2.71.tar.xz - - MD5 sum: 12cfa1687ffa2606337efe1a64416106 - - Automake (1.16.5) - 1,565 KB: - Home page: [333]https://www.gnu.org/software/automake/ - - Download: - [334]https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.xz - - MD5 sum: 4017e96f89fca45ca946f1c5db6be714 - - SHA256 sum: - 80facc09885a57e6d49d06972c0ae1089c5fa8f4d4c7cfe5baea58e5085f136d - - Bash (5.1.16) - 10,277 KB: - Home page: [335]https://www.gnu.org/software/bash/ - - Download: [336]https://ftp.gnu.org/gnu/bash/bash-5.1.16.tar.gz - - MD5 sum: c17b20a09fc38d67fb303aeb6c130b4e - - Bc (5.2.2) - 428 KB: - Home page: [337]https://git.yzena.com/gavin/bc - - Download: - [338]https://github.com/gavinhoward/bc/releases/download/5.2.2/b - c-5.2.2.tar.xz - - MD5 sum: 632344cdb052af0e06087bd3b0034126 - - Binutils (2.38) - 23,098 KB: - Home page: [339]https://www.gnu.org/software/binutils/ - - Download: - [340]https://ftp.gnu.org/gnu/binutils/binutils-2.38.tar.xz - - MD5 sum: 6e39cad1bb414add02b5b1169c18fdc5 - - Bison (3.8.2) - 2,752 KB: - Home page: [341]https://www.gnu.org/software/bison/ - - Download: [342]https://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.xz - - MD5 sum: c28f119f405a2304ff0a7ccdcc629713 - - Bzip2 (1.0.8) - 792 KB: - Download: - [343]https://www.sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz - - MD5 sum: 67e051268d0c475ea773822f7500d0e5 - - Check (0.15.2) - 760 KB: - Home page: [344]https://libcheck.github.io/check - - Download: - [345]https://github.com/libcheck/check/releases/download/0.15.2/ - check-0.15.2.tar.gz - - MD5 sum: 50fcafcecde5a380415b12e9c574e0b2 - - Coreutils (9.0) - 5,482 KB: - Home page: [346]https://www.gnu.org/software/coreutils/ - - Download: - [347]https://ftp.gnu.org/gnu/coreutils/coreutils-9.0.tar.xz - - MD5 sum: 0d79ae8a6124546e3b94171375e5e5d0 - - D-Bus (1.12.20) - 2,048 KB: - Home page: [348]https://www.freedesktop.org/wiki/Software/dbus - - Download: - [349]https://dbus.freedesktop.org/releases/dbus/dbus-1.12.20.tar - .gz - - MD5 sum: dfe8a71f412e0b53be26ed4fbfdc91c4 - - DejaGNU (1.6.3) - 608 KB: - Home page: [350]https://www.gnu.org/software/dejagnu/ - - Download: - [351]https://ftp.gnu.org/gnu/dejagnu/dejagnu-1.6.3.tar.gz - - MD5 sum: 68c5208c58236eba447d7d6d1326b821 - - Diffutils (3.8) - 1,548 KB: - Home page: [352]https://www.gnu.org/software/diffutils/ - - Download: - [353]https://ftp.gnu.org/gnu/diffutils/diffutils-3.8.tar.xz - - MD5 sum: 6a6b0fdc72acfe3f2829aab477876fbc - - E2fsprogs (1.46.5) - 9,307 KB: - Home page: [354]http://e2fsprogs.sourceforge.net/ - - Download: - [355]https://downloads.sourceforge.net/project/e2fsprogs/e2fspro - gs/v1.46.5/e2fsprogs-1.46.5.tar.gz - - MD5 sum: 3da91854c960ad8a819b48b2a404eb43 - - Elfutils (0.186) - 9,015 KB: - Home page: [356]https://sourceware.org/elfutils/ - - Download: - [357]https://sourceware.org/ftp/elfutils/0.186/elfutils-0.186.ta - r.bz2 - - MD5 sum: 2c095e31e35d6be7b3718477b6d52702 - - Expat (2.4.6) - 444 KB: - Home page: [358]https://libexpat.github.io/ - - Download: - [359]https://prdownloads.sourceforge.net/expat/expat-2.4.6.tar.x - z - - MD5 sum: 22a30c888752fdda9f8dd1b7281c54b0 - -Nota - - A(O) Desenvolvedora(or) talvez remova tarballs dos lançamentos - específicos de Expat quando esses lançamentos contenham uma - vulnerabilidade de segurança. Você deveria se referir a - [360]Avisos de Segurança de LFS para saber qual versão (com a - vulnerabilidade corrigida) deveria ser usada. Você talvez baixe - a versão vulnerável a partir de um espelho, porém isso não é - recomendado. - - Expect (5.45.4) - 618 KB: - Home page: [361]https://core.tcl.tk/expect/ - - Download: - [362]https://prdownloads.sourceforge.net/expect/expect5.45.4.tar - .gz - - MD5 sum: 00fce8de158422f5ccd2666512329bd2 - - File (5.41) - 1040 KB: - Home page: [363]https://www.darwinsys.com/file/ - - Download: [364]https://astron.com/pub/file/file-5.41.tar.gz - - MD5 sum: 18233bb0a0089dfdc7dfbc93b96f231b - - Findutils (4.9.0) - 1,999 KB: - Home page: [365]https://www.gnu.org/software/findutils/ - - Download: - [366]https://ftp.gnu.org/gnu/findutils/findutils-4.9.0.tar.xz - - MD5 sum: 4a4a547e888a944b2f3af31d789a1137 - - Flex (2.6.4) - 1,386 KB: - Home page: [367]https://github.com/westes/flex - - Download: - [368]https://github.com/westes/flex/releases/download/v2.6.4/fle - x-2.6.4.tar.gz - - MD5 sum: 2882e3179748cc9f9c23ec593d6adc8d - - Gawk (5.1.1) - 3,075 KB: - Home page: [369]https://www.gnu.org/software/gawk/ - - Download: [370]https://ftp.gnu.org/gnu/gawk/gawk-5.1.1.tar.xz - - MD5 sum: 83650aa943ff2fd519b2abedf8506ace - - GCC (11.2.0) - 78,996 KB: - Home page: [371]https://gcc.gnu.org/ - - Download: - [372]https://ftp.gnu.org/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.xz - - MD5 sum: 31c86f2ced76acac66992eeedce2fce2 - - SHA256 sum: - d08edc536b54c372a1010ff6619dd274c0f1603aa49212ba20f7aa2cda36fa8b - - GDBM (1.23) - 1,092 KB: - Home page: [373]https://www.gnu.org/software/gdbm/ - - Download: [374]https://ftp.gnu.org/gnu/gdbm/gdbm-1.23.tar.gz - - MD5 sum: 8551961e36bf8c70b7500d255d3658ec - - Gettext (0.21) - 9,487 KB: - Home page: [375]https://www.gnu.org/software/gettext/ - - Download: - [376]https://ftp.gnu.org/gnu/gettext/gettext-0.21.tar.xz - - MD5 sum: 40996bbaf7d1356d3c22e33a8b255b31 - - Glibc (2.35) - 17,741 KB: - Home page: [377]https://www.gnu.org/software/libc/ - - Download: [378]https://ftp.gnu.org/gnu/glibc/glibc-2.35.tar.xz - - MD5 sum: dd571c67d85d89d7f60b854a4e207423 - - GMP (6.2.1) - 1,980 KB: - Home page: [379]https://www.gnu.org/software/gmp/ - - Download: [380]https://ftp.gnu.org/gnu/gmp/gmp-6.2.1.tar.xz - - MD5 sum: 0b82665c4a92fd2ade7440c13fcaa42b - - Gperf (3.1) - 1,188 KB: - Home page: [381]https://www.gnu.org/software/gperf/ - - Download: [382]https://ftp.gnu.org/gnu/gperf/gperf-3.1.tar.gz - - MD5 sum: 9e251c0a618ad0824b51117d5d9db87e - - Grep (3.7) - 1,603 KB: - Home page: [383]https://www.gnu.org/software/grep/ - - Download: [384]https://ftp.gnu.org/gnu/grep/grep-3.7.tar.xz - - MD5 sum: 7c9cca97fa18670a21e72638c3e1dabf - - Groff (1.22.4) - 4,044 KB: - Home page: [385]https://www.gnu.org/software/groff/ - - Download: [386]https://ftp.gnu.org/gnu/groff/groff-1.22.4.tar.gz - - MD5 sum: 08fb04335e2f5e73f23ea4c3adbf0c5f - - GRUB (2.06) - 6,428 KB: - Home page: [387]https://www.gnu.org/software/grub/ - - Download: [388]https://ftp.gnu.org/gnu/grub/grub-2.06.tar.xz - - MD5 sum: cf0fd928b1e5479c8108ee52cb114363 - - Gzip (1.11) - 786 KB: - Home page: [389]https://www.gnu.org/software/gzip/ - - Download: [390]https://ftp.gnu.org/gnu/gzip/gzip-1.11.tar.xz - - MD5 sum: d1e93996dba00cab0caa7903cd01d454 - - Iana-Etc (20220207) - 580 KB: - Home page: [391]https://www.iana.org/protocols - - Download: - [392]https://github.com/Mic92/iana-etc/releases/download/2022020 - 7/iana-etc-20220207.tar.gz - - MD5 sum: 81d865ce7fe4240d5abed48c3ca5fa9f - - Inetutils (2.2) - 1,494 KB: - Home page: [393]https://www.gnu.org/software/inetutils/ - - Download: - [394]https://ftp.gnu.org/gnu/inetutils/inetutils-2.2.tar.xz - - MD5 sum: de8c1b49cbde2b30e481c61c65357ad4 - - SHA256 sum: - 01b9a4bc73a47e63f6e8a07b76122d9ad2a2e46ebf14870e9c91d660b5647a22 - - Intltool (0.51.0) - 159 KB: - Home page: [395]https://freedesktop.org/wiki/Software/intltool - - Download: - [396]https://launchpad.net/intltool/trunk/0.51.0/+download/intlt - ool-0.51.0.tar.gz - - MD5 sum: 12e517cac2b57a0121cda351570f1e63 - - IPRoute2 (5.16.0) - 843 KB: - Home page: - [397]https://www.kernel.org/pub/linux/utils/net/iproute2/ - - Download: - [398]https://www.kernel.org/pub/linux/utils/net/iproute2/iproute - 2-5.16.0.tar.xz - - MD5 sum: 994c1bad2a24aa9d70e89670c5b5dfcb - - Jinja2 (3.0.3) - 263 KB: - Home page: [399]https://jinja.palletsprojects.com/en/3.0.x/ - - Download: - [400]https://files.pythonhosted.org/packages/source/J/Jinja2/Jin - ja2-3.0.3.tar.gz - - MD5 sum: b76ae2f0647abebc81e7c03f5fb7b00f - - Kbd (2.4.0) - 1,095 KB: - Home page: [401]https://kbd-project.org/ - - Download: - [402]https://www.kernel.org/pub/linux/utils/kbd/kbd-2.4.0.tar.xz - - MD5 sum: 3cac5be0096fcf7b32dcbd3c53831380 - - Kmod (29) - 548 KB: - Download: - [403]https://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-29. - tar.xz - - MD5 sum: e81e63acd80697d001c8d85c1acb38a0 - - Less (590) - 348 KB: - Home page: [404]https://www.greenwoodsoftware.com/less/ - - Download: - [405]https://www.greenwoodsoftware.com/less/less-590.tar.gz - - MD5 sum: f029087448357812fba450091a1172ab - - Libcap (2.63) - 171 KB: - Home page: [406]https://sites.google.com/site/fullycapable/ - - Download: - [407]https://www.kernel.org/pub/linux/libs/security/linux-privs/ - libcap2/libcap-2.63.tar.xz - - MD5 sum: 18410cec436f827e698ee9ea16ada9b7 - - Libffi (3.4.2) - 1,320 KB: - Home page: [408]https://sourceware.org/libffi/ - - Download: - [409]https://github.com/libffi/libffi/releases/download/v3.4.2/l - ibffi-3.4.2.tar.gz - - MD5 sum: 294b921e6cf9ab0fbaea4b639f8fdbe8 - - Libpipeline (1.5.5) - 934 KB: - Home page: [410]http://libpipeline.nongnu.org/ - - Download: - [411]https://download.savannah.gnu.org/releases/libpipeline/libp - ipeline-1.5.5.tar.gz - - MD5 sum: 3e725c76bfea1985e87e851ee50c2e29 - - Libtool (2.4.6) - 951 KB: - Home page: [412]https://www.gnu.org/software/libtool/ - - Download: - [413]https://ftp.gnu.org/gnu/libtool/libtool-2.4.6.tar.xz - - MD5 sum: 1bfb9b923f2c1339b4d2ce1807064aa5 - - Linux (5.16.9) - 124,577 KB: - Home page: [414]https://www.kernel.org/ - - Download: - [415]https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.16.9.t - ar.xz - - MD5 sum: 4d6a704bf3e249ef6189b6f17457084b - -Nota - - O kernel Linux é atualizado com relativa frequência, muitas - vezes devido às descobertas de vulnerabilidades de segurança. A - versão estável de kernel mais atual disponível pode ser usada, a - menos que a página de errata diga o contrário. - - Para usuárias(os) com largura de banda de velocidade limitada ou - cara que desejem atualizar o kernel Linux, uma versão básica do - pacote e patches pode ser baixada separadamente. Isso talvez - economize algum tempo ou custo para uma posterior atualização de - nível de patch contendo um lançamento menor. - - M4 (1.4.19) - 1,617 KB: - Home page: [416]https://www.gnu.org/software/m4/ - - Download: [417]https://ftp.gnu.org/gnu/m4/m4-1.4.19.tar.xz - - MD5 sum: 0d90823e1426f1da2fd872df0311298d - - Make (4.3) - 2,263 KB: - Home page: [418]https://www.gnu.org/software/make/ - - Download: [419]https://ftp.gnu.org/gnu/make/make-4.3.tar.gz - - MD5 sum: fc7a67ea86ace13195b0bce683fd4469 - - Man-DB (2.10.1) - 1,847 KB: - Home page: [420]https://www.nongnu.org/man-db/ - - Download: - [421]https://download.savannah.gnu.org/releases/man-db/man-db-2. - 10.1.tar.xz - - MD5 sum: b03b76a9a00d0d6b2299b823fba4f579 - - Man-pages (5.13) - 1,752 KB: - Home page: [422]https://www.kernel.org/doc/man-pages/ - - Download: - [423]https://www.kernel.org/pub/linux/docs/man-pages/man-pages-5 - .13.tar.xz - - MD5 sum: 3ac24e8c6fae26b801cb87ceb63c0a30 - - MarkupSafe (2.0.1) - 20 KB: - Home page: [424]https://markupsafe.palletsprojects.com/en/2.0.x/ - - Download: - [425]https://files.pythonhosted.org/packages/source/M/MarkupSafe - /MarkupSafe-2.0.1.tar.gz - - MD5 sum: 892e0fefa3c488387e5cc0cad2daa523 - - Meson (0.61.1) - 1,963 KB: - Home page: [426]https://mesonbuild.com - - Download: - [427]https://github.com/mesonbuild/meson/releases/download/0.61. - 1/meson-0.61.1.tar.gz - - MD5 sum: 8ed66d5537275df3defffb66d1fb897f - - MPC (1.2.1) - 820 KB: - Home page: [428]http://www.multiprecision.org/ - - Download: [429]https://ftp.gnu.org/gnu/mpc/mpc-1.2.1.tar.gz - - MD5 sum: 9f16c976c25bb0f76b50be749cd7a3a8 - - MPFR (4.1.0) - 1,490 KB: - Home page: [430]https://www.mpfr.org/ - - Download: [431]https://www.mpfr.org/mpfr-4.1.0/mpfr-4.1.0.tar.xz - - MD5 sum: bdd3d5efba9c17da8d83a35ec552baef - - Ncurses (6.3) - 3,500 KB: - Home page: [432]https://www.gnu.org/software/ncurses/ - - Download: - [433]https://invisible-mirror.net/archives/ncurses/ncurses-6.3.t - ar.gz - - MD5 sum: a2736befde5fee7d2b7eb45eb281cdbe - - Ninja (1.10.2) - 209 KB: - Home page: [434]https://ninja-build.org/ - - Download: - [435]https://github.com/ninja-build/ninja/archive/v1.10.2/ninja- - 1.10.2.tar.gz - - MD5 sum: 639f75bc2e3b19ab893eaf2c810d4eb4 - - OpenSSL (3.0.1) - 14,660 KB: - Home page: [436]https://www.openssl.org/ - - Download: - [437]https://www.openssl.org/source/openssl-3.0.1.tar.gz - - MD5 sum: 7d07e849d77d276891edd579a8832bb3 - - Patch (2.7.6) - 766 KB: - Home page: [438]https://savannah.gnu.org/projects/patch/ - - Download: [439]https://ftp.gnu.org/gnu/patch/patch-2.7.6.tar.xz - - MD5 sum: 78ad9937e4caadcba1526ef1853730d5 - - Perl (5.34.0) - 12,580 KB: - Home page: [440]https://www.perl.org/ - - Download: [441]https://www.cpan.org/src/5.0/perl-5.34.0.tar.xz - - MD5 sum: df7ecb0653440b26dc951ad9dbfab517 - - Pkg-config (0.29.2) - 1,970 KB: - Home page: - [442]https://www.freedesktop.org/wiki/Software/pkg-config - - Download: - [443]https://pkg-config.freedesktop.org/releases/pkg-config-0.29 - .2.tar.gz - - MD5 sum: f6e931e319531b736fadc017f470e68a - - Procps (3.3.17) - 985 KB: - Home page: [444]https://sourceforge.net/projects/procps-ng - - Download: - [445]https://sourceforge.net/projects/procps-ng/files/Production - /procps-ng-3.3.17.tar.xz - - MD5 sum: d60613e88c2f442ebd462b5a75313d56 - - Psmisc (23.4) - 362 KB: - Home page: [446]https://gitlab.com/psmisc/psmisc - - Download: - [447]https://sourceforge.net/projects/psmisc/files/psmisc/psmisc - -23.4.tar.xz - - MD5 sum: 8114cd4489b95308efe2509c3a406bbf - - Python (3.10.2) - 18,341 KB: - Home page: [448]https://www.python.org/ - - Download: - [449]https://www.python.org/ftp/python/3.10.2/Python-3.10.2.tar. - xz - - MD5 sum: 14e8c22458ed7779a1957b26cde01db9 - - Documentação de Python (3.10.2) - 7,102 KB: - Download: - [450]https://www.python.org/ftp/python/doc/3.10.2/python-3.10.2- - docs-html.tar.bz2 - - MD5 sum: ffa52f0017baf72df9d32dec785fd6ab - - Readline (8.1.2) - 2,923 KB: - Home page: - [451]https://tiswww.case.edu/php/chet/readline/rltop.html - - Download: - [452]https://ftp.gnu.org/gnu/readline/readline-8.1.2.tar.gz - - MD5 sum: 12819fa739a78a6172400f399ab34f81 - - Sed (4.8) - 1,317 KB: - Home page: [453]https://www.gnu.org/software/sed/ - - Download: [454]https://ftp.gnu.org/gnu/sed/sed-4.8.tar.xz - - MD5 sum: 6d906edfdb3202304059233f51f9a71d - - Shadow (4.11.1) - 1,618 KB: - Home page: [455]https://shadow-maint.github.io/shadow/ - - Download: - [456]https://github.com/shadow-maint/shadow/releases/download/v4 - .11.1/shadow-4.11.1.tar.xz - - MD5 sum: 5a95ec069aa91508167d02fecafaa912 - - Systemd (250) - 10,856 KB: - Home page: - [457]https://www.freedesktop.org/wiki/Software/systemd/ - - Download: - [458]https://github.com/systemd/systemd/archive/v250/systemd-250 - .tar.gz - - MD5 sum: 8929beb037c587ada4ed201f19756fe2 - - Systemd Man Pages(250) - 596 KB: - Home page: - [459]https://www.freedesktop.org/wiki/Software/systemd/ - - Download: - [460]https://anduin.linuxfromscratch.org/LFS/systemd-man-pages-2 - 50.tar.xz - - MD5 sum: af3aca39abe4e990cb2a9ac63dcdf506 - -Nota - - A equipe de Linux From Scratch gera seu próprio tarball das - páginas de manual usando o fonte systemd. Isso é feito com a - finalidade de evitar dependências desnecessárias. - - Tar (1.34) - 2,174 KB: - Home page: [461]https://www.gnu.org/software/tar/ - - Download: [462]https://ftp.gnu.org/gnu/tar/tar-1.34.tar.xz - - MD5 sum: 9a08d29a9ac4727130b5708347c0f5cf - - Tcl (8.6.12) - 10,112 KB: - Home page: [463]http://tcl.sourceforge.net/ - - Download: - [464]https://downloads.sourceforge.net/tcl/tcl8.6.12-src.tar.gz - - MD5 sum: 87ea890821d2221f2ab5157bc5eb885f - - Documentação de Tcl (8.6.12) - 1,176 KB: - Download: - [465]https://downloads.sourceforge.net/tcl/tcl8.6.12-html.tar.gz - - MD5 sum: a0d1a5b60bbb68f2f0bd3066a19c527a - - Texinfo (6.8) - 4,848 KB: - Home page: [466]https://www.gnu.org/software/texinfo/ - - Download: - [467]https://ftp.gnu.org/gnu/texinfo/texinfo-6.8.tar.xz - - MD5 sum: a91b404e30561a5df803e6eb3a53be71 - - Dados de Zona de Tempo (2021e) - 413 KB: - Home page: [468]https://www.iana.org/time-zones - - Download: - [469]https://www.iana.org/time-zones/repository/releases/tzdata2 - 021e.tar.gz - - MD5 sum: 4fdfad906ebc85fef30221c10964cce9 - - Util-linux (2.37.4) - 5,971 KB: - Home page: - [470]https://git.kernel.org/pub/scm/utils/util-linux/util-linux. - git/ - - Download: - [471]https://www.kernel.org/pub/linux/utils/util-linux/v2.37/uti - l-linux-2.37.4.tar.xz - - MD5 sum: 755919e658c349cad9e1c7c771742d48 - - Vim (8.2.4383) - 15,622 KB: - Home page: [472]https://www.vim.org - - Download: - [473]https://anduin.linuxfromscratch.org/LFS/vim-8.2.4383.tar.gz - - MD5 sum: 3168ff48e382a1201bd0cbd0209bd3e0 - -Nota - - A versão de vim muda diariamente. Para conseguir a versão mais - atual, vá para [474]https://github.com/vim/vim/tags. - - XML::Parser (2.46) - 249 KB: - Home page: [475]https://github.com/chorny/XML-Parser - - Download: - [476]https://cpan.metacpan.org/authors/id/T/TO/TODDR/XML-Parser- - 2.46.tar.gz - - MD5 sum: 80bb18a8e6240fcf7ec2f7b57601c170 - - Xz Utils (5.2.5) - 1,122 KB: - Home page: [477]https://tukaani.org/xz - - Download: [478]https://tukaani.org/xz/xz-5.2.5.tar.xz - - MD5 sum: aa1621ec7013a19abab52a8aff04fe5b - - Zlib (1.2.11) - 457 KB: - Home page: [479]https://www.zlib.net/ - - Download: [480]https://zlib.net/zlib-1.2.11.tar.xz - - MD5 sum: 85adef240c5f370b308da8c938951a68 - - Zstd (1.5.2) - 1,892 KB: - Home page: [481]https://facebook.github.io/zstd/ - - Download: - [482]https://github.com/facebook/zstd/releases/download/v1.5.2/z - std-1.5.2.tar.gz - - MD5 sum: 072b10f71f5820c24761a65f31f43e73 - - Tamanho total desses pacotes: cerca de 458 MB - -3.3. Patches Necessários - - Em adição aos pacotes, vários patches também são exigidos. Esses - patches corrigem quaisquer erros nos pacotes que deveriam ser - consertados pela(o) Mantenedora(or). Os patches também fazem pequenas - modificações para tornar os pacotes mais fáceis de se trabalhar. Os - seguintes patches serão necessários para construir um sistema LFS: - - Binutils LTO Fix Patch - 3.5 KB: - Download: - [483]https://www.linuxfromscratch.org/patches/lfs/11.1/binutils- - 2.38-lto_fix-1.patch - - MD5 sum: 3df11b6123d5bbdb0fc83862a003827a - - Patch de Documentação de Bzip2 - 1.6 KB: - Download: - [484]https://www.linuxfromscratch.org/patches/lfs/11.1/bzip2-1.0 - .8-install_docs-1.patch - - MD5 sum: 6a5ac7e89b791aae556de0f745916f7f - - Patch de Correções de Internacionalização de Coreutils - 166 KB: - Download: - [485]https://www.linuxfromscratch.org/patches/lfs/11.1/coreutils - -9.0-i18n-1.patch - - MD5 sum: 1eeba2736dfea013509f9975365e4e32 - - Patch de Correção de Chmod de Coreutils - 3.8 KB: - Download: - [486]https://www.linuxfromscratch.org/patches/lfs/11.1/coreutils - -9.0-chmod_fix-1.patch - - MD5 sum: 4709df88e68279e6ef357aa819ba5b1a - - Glibc FHS Patch - 2.8 KB: - Download: - [487]https://www.linuxfromscratch.org/patches/lfs/11.1/glibc-2.3 - 5-fhs-1.patch - - MD5 sum: 9a5997c3452909b1769918c759eff8a2 - - Patch de Correção de Backspace/Delete de Kbd - 12 KB: - Download: - [488]https://www.linuxfromscratch.org/patches/lfs/11.1/kbd-2.4.0 - -backspace-1.patch - - MD5 sum: f75cca16a38da6caa7d52151f7136895 - - Patch de Correção de Desenvolvedora(or) de Perl - 1.6 KB: - Download: - [489]https://www.linuxfromscratch.org/patches/lfs/11.1/perl-5.34 - .0-upstream_fixes-1.patch - - MD5 sum: fb42558b59ed95ee00eb9f1c1c9b8056 - - Patch de Correção de Desenvolvedora(or) de Systemd - 20 KB: - Download: - [490]https://www.linuxfromscratch.org/patches/lfs/11.1/systemd-2 - 50-upstream_fixes-1.patch - - MD5 sum: 71eac6abdad5fba2039dcd011a9ae5b3 - - Tamanho total desses patches: cerca de 211.3 KB - - Em adição aos patches exigidos acima, existe um número de patches - opcionais criados pela comunidade LFS. Esses patches opcionais - solucionam problemas menores ou habilitam funcionalidade que não está - habilitada por padrão. Sinta-se à vontade para examinar o banco de - dados de patches localizado em - [491]https://www.linuxfromscratch.org/patches/downloads/ e adquirir - quaisquer patches adicionais para atender às necessidades do seu - sistema. - -Capítulo 4. Preparações Finais - -4.1. Introdução - - Neste capítulo, nós realizaremos umas poucas tarefas adicionais para - preparar para construção o sistema temporário. Nós criaremos um - conjunto de diretórios em $LFS para a instalação das ferramentas - temporárias; adicionaremos uma(m) usuária(o) desprivilegiada(o) para - reduzir risco; e criaremos um ambiente apropriado de construção para - aquela(e) usuária(o). Nós também explicaremos a unidade de tempo que - usamos para medir quanto tempo pacotes de LFS levam para construir, ou - “SBUsâ€, e daremos alguma informação acerca de suítes de teste de - pacote. - -4.2. Criando um layout limitado de diretório em sistema de arquivos de LFS - - A primeira tarefa realizada na partição LFS é a de criar uma hierarquia - limitada de diretório de forma que aplicativos compilados em - [492]Capítulo 6 (bem como glibc e libstdc++ em [493]Capítulo 5) possam - ser instalados no local final deles. Isso é necessário de maneira que - aqueles aplicativos temporários sejam sobrescritos quando - reconstruí-los em [494]Capítulo 8. - - Crie o layout exigido de diretório executando o seguinte como root: -mkdir -pv $LFS/{etc,var} $LFS/usr/{bin,lib,sbin} - -for i in bin lib sbin; do - ln -sv usr/$i $LFS/$i -done - -case $(uname -m) in - x86_64) mkdir -pv $LFS/lib64 ;; -esac - - Aplicativos em [495]Capítulo 6 serão compilados com um compilador - cruzado (mais detalhes na seção [496]Notas Técnicas do Conjunto de - Ferramentas). Com a finalidade de separar esse compilador cruzado de - outros aplicativos, ele será instalado em um diretório especial. Crie - esse diretório com: -mkdir -pv $LFS/tools - -4.3. Adicionando a(o) Usuária(o) LFS - - Enquanto logada(o) como usuária(o) root, cometer um simples erro pode - danificar ou destruir um sistema. Portanto, os pacotes nos próximos - dois capítulos são construídos como uma(m) usuária(o) sem privilégios. - Você poderia usar seu próprio nome de usuária(o), mas para facilitar a - configuração de um ambiente de trabalho limpo, crie uma(m) nova(o) - usuária(o) chamada(o) lfs como um membro de um novo grupo (também - chamado lfs) e use essa(e) usuária(o) durante o processo de instalação. - Como root, emita os seguintes comandos para adicionar a(o) nova(o) - usuária(o): -groupadd lfs -useradd -s /bin/bash -g lfs -m -k /dev/null lfs - - O significado das opções de linha de comando: - - -s /bin/bash - Isso torna bash o interpretador de comandos padrão para a(o) - usuária(o) lfs. - - -g lfs - Essa opção adiciona usuária(o) lfs ao grupo lfs. - - -m - Isso cria um diretório home para lfs. - - -k /dev/null - Esse parâmetro previne possível cópia de arquivos a partir de um - diretório esqueleto (padrão é /etc/skel) mudando a localização - de entrada para o dispositivo especial null. - - lfs - Esse é o nome atual para a(o) usuária(o) criada(o). - - Para se logar como lfs (em oposição a mudar para a(o) usuária(o) lfs - quando logada(o) como root, que não exige que a(o) usuária(o) lfs tenha - uma senha), dê a lfs uma senha: -passwd lfs - - Conceda a lfs acesso total a todos os diretórios sob $LFS tornando lfs - a(o) dona(o) do diretório: -chown -v lfs $LFS/{usr{,/*},lib,var,etc,bin,sbin,tools} -case $(uname -m) in - x86_64) chown -v lfs $LFS/lib64 ;; -esac - - Se um diretório de trabalho separado foi criado como sugerido, então dê - à(ao) usuária(o) lfs a propriedade desse diretório: -chown -v lfs $LFS/sources - -Nota - - Em alguns sistemas anfitrião, o seguinte comando não completa - adequadamente e suspende o login para a(o) usuária(o) lfs para o - segundo plano. Se o prompt "lfs:~$" não aparecer imediatamente, então - emitir o comando fg corrigirá o problema. - - Em seguida, logue-se como usuária(o) lfs. Isso pode ser feito via um - console virtual; por intermédio de um gerenciador de tela; ou com o - seguinte comando de substituir/comutar usuária(o): -su - lfs - - O “-†instrui su a iniciar um shell de login em vez de um shell de - não-login. A diferença entre esses dois tipos de shells pode ser - encontrada em detalhes em bash(1) e info bash. - -4.4. Configurando o Ambiente - - Configure um bom ambiente de trabalho criando dois novos arquivos de - inicialização para o shell bash. Enquanto logada(o) como usuária(o) - lfs, emita o seguinte comando para criar um novo .bash_profile: -cat > ~/.bash_profile << "EOF" -exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash -EOF - - Enquanto logada(o) como usuária(o) lfs, o shell inicial é geralmente um - shell de login que lê o /etc/profile do anfitrião (provavelmente - contendo algumas configurações e variáveis de ambiente) e então - .bash_profile. O comando exec env -i.../bin/bash no arquivo - .bash_profile substitui o shell em execução por um novo com um ambiente - completamente vazio, exceto pelas variáveis HOME, TERM, e PS1. Isso - garante que nenhuma variável de ambiente indesejada e potencialmente - danosa oriunda do sistema anfitrião vaze para o ambiente de construção. - A técnica usada aqui alcança o objetivo de assegurar um ambiente limpo. - - A nova instância do shell é um shell de não-login, que não lê, e - executa, o conteúdo dos arquivos /etc/profile ou .bash_profile, porém, - ao invés, lê, e executa, o arquivo .bashrc. Crie o arquivo .bashrc - agora: -cat > ~/.bashrc << "EOF" -set +h -umask 022 -LFS=/mnt/lfs -LC_ALL=POSIX -LFS_TGT=$(uname -m)-lfs-linux-gnu -PATH=/usr/bin -if [ ! -L /bin ]; then PATH=/bin:$PATH; fi -PATH=$LFS/tools/bin:$PATH -CONFIG_SITE=$LFS/usr/share/config.site -export LFS LC_ALL LFS_TGT PATH CONFIG_SITE -EOF - - O significado das configurações em .bashrc - - set +h - O comando set +h desliga a função hash do bash. “Hashing†- geralmente é uma característica útil—bash usa uma tabela hash - para lembrar o caminho completo de arquivos executáveis para - evitar procurar o PATH várias vezes para encontrar o mesmo - executável. Entretanto, as novas ferramentas deveriam ser usadas - tão logo sejam instaladas. Desativando a função hash, o shell - sempre vai procurar no PATH quando um aplicativo estiver para - ser executado. Dessa forma, o shell encontrará as ferramentas - recém compiladas em $LFS/tools/bin tão logo elas estejam - disponíveis sem lembrar da versão anterior do mesmo aplicativo - fornecida pela distribuição anfitriã, em /usr/bin ou /bin. - - umask 022 - Configurar a máscara de criação de arquivos da(o) usuária(o) - (umask) para 022 garante que recém criados arquivos e diretórios - são graváveis somente por suas(eus) donas(os), mas são legíveis - e executáveis por qualquer pessoa (assumindo que os modos padrão - são usados pelas chamadas de sistema open(2), novos arquivos - terminarão com modo de permissão 644 e diretórios com modo 755). - - LFS=/mnt/lfs - A variável LFS deveria ser configurada para o ponto de montagem - escolhido. - - LC_ALL=POSIX - A variável LC_ALL controla a localização de certos aplicativos, - fazendo suas mensagens seguirem as convenções de um país - especificado. Configurar LC_ALL para “POSIX†ou “C†(as duas são - equivalentes) garante que tudo vai funcionar como esperado - dentro do ambiente chroot. - - LFS_TGT=(uname -m)-lfs-linux-gnu - A variável LFS_TGT configura uma não padrão, porém compatível - descrição de máquina para uso quando da construção do nosso - compilador cruzado e vinculador e quando da compilação cruzada - do nosso conjunto de ferramentas temporárias. Mais informação - está contida em [497]Notas Técnicas do Conjunto de Ferramentas. - - PATH=/usr/bin - Muitas distribuições modernas de Linux mesclaram /bin e - /usr/bin. Quando esse for o caso, a variável PATH padrão apenas - precisa ser configurada para /usr/bin/ para o ambiente de - [498]Capítulo 6. Quando esse não for o caso, a seguinte linha - adiciona /bin ao caminho. - - if [ ! -L /bin ]; then PATH=/bin:$PATH; fi - Se /bin não for um link simbólico, então ele tem de ser - adicionado à variável PATH. - - PATH=$LFS/tools/bin:$PATH - Ao se colocar $LFS/tools/bin a frente do PATH padrão, o - compilador cruzado instalado no início de [499]Capítulo 5 é - imediatamente pego pelo shell após sua instalação. Isso, - combinado com a desativação do hashing, limita o risco de que o - compilador originário do anfitrião seja usado em vez do - compilador cruzado. - - CONFIG_SITE=$LFS/usr/share/config.site - Em [500]Capítulo 5 e [501]Capítulo 6, se essa variável não - estiver configurada, então os scripts configure talvez tentem - carregar itens de configuração específicos para algumas - distribuições a partir de /usr/share/config.site no sistema - anfitrião. Substitua-o para prevenir uma potencial contaminação - oriunda do anfitrião. - - export ... - Ao tempo que os comandos acima configuraram algumas variáveis, - com a finalidade de torná-las visíveis dentro de quaisquer - sub-shells, nós as exportamos. - -Importante - - Muitas distribuições comerciais adicionam uma instância não documentada - de /etc/bash.bashrc à inicialização de bash. Esse arquivo tem o - potencial de modificar o ambiente da(o) usuária(o) lfs de formas que - podem afetar a construção de pacotes LFS críticos. Para assegurar que o - ambiente da(o) usuária(o) lfs esteja limpo, verifique a presença de - /etc/bash.bashrc e, se presente, mova-o para fora do caminho. Como a(o) - usuária(o) root, execute: -[ ! -e /etc/bash.bashrc ] || mv -v /etc/bash.bashrc /etc/bash.bashrc.NOUSE - - Após o uso da(o) usuária(o) lfs for finalizado no início de - [502]Capítulo 7, você pode restaurar /etc/bash.bashrc (se desejado). - - Perceba que o pacote Bash de LFS que nós construiremos em - [503]Seção 8.34, “Bash-5.1.16†não é configurado para carregar ou - executar /etc/bash.bashrc, de modo que esse arquivo é inútil em um - sistema LFS completo. - - Finalmente, para ter o ambiente totalmente preparado para construção - das ferramentas temporárias, carregue o recém criado perfil de - usuária(o): -source ~/.bash_profile - -4.5. Sobre UPCs - - Muitas pessoas gostariam de saber de antemão aproximadamente quanto - tempo leva para compilar e instalar cada pacote. Devido a Linux From - Scratch poder ser construído em muitos sistemas, é impossível fornecer - estimativas de tempo precisas. O maior pacote (Glibc) levará - aproximadamente vinte (20) minutos em sistemas mais rápidos, mas - poderia levar até três (03) dias em sistemas mais lentos! Em vez de - fornecer tempos atuais, a medida Unidade Padrão de Construção (UPC) - será usada. - - A medida UPC funciona como segue. O primeiro pacote a ser compilado - neste livro é binutils em [504]Capítulo 5. O tempo necessário para - compilar esse pacote é que será referenciado como a Unidade Padrão de - Construção ou UPC. Todos os outros tempos de compilação serão expressos - relativamente a esse tempo. - - Por exemplo, considere um pacote cujo tempo de compilação é quatro e - meio (4,5) UPCs. Isso significa que, se um sistema precisou de dez (10) - minutos para compilar e instalar a primeira passagem de binutils, então - será necessário aproximadamente quarenta e cinco (45) minutos para - construir esse pacote de exemplo. Felizmente, a maioria dos tempos de - construção é menor que o tempo para binutils. - - Em geral, UPCs não são totalmente precisas, pois dependem de muitos - fatores, incluindo a versão de GCC do sistema anfitrião. Elas são - fornecidas aqui para dar uma estimativa de quanto tempo pode levar para - instalar um pacote, mas os números podem variar tanto quanto dúzias de - minutos em alguns casos. - -Nota - - Para muitos sistemas modernos com múltiplos processadores (ou cores) o - tempo de compilação para um pacote pode ser reduzido realizando um - “parallel makeâ€, seja configurando uma variável de ambiente; ou dizendo - para o aplicativo make quantos processadores estão disponíveis. Por - exemplo, uma CPU Intel i5-6500 pode suportar quatro processos - simultâneos com: -export MAKEFLAGS='-j4' - - ou somente construindo com: -make -j4 - - Quando múltiplos processadores são usados dessa maneira, as unidades - UPC no livro irão variar ainda mais do que normalmente aconteceria. Em - alguns casos, o passo make simplesmente falhará. Analisar a saída dos - processos de construção também será mais difícil, pois as linhas de - diferentes processos estarão intercaladas. Se você tiver um problema - com um passo de construção, então retorne para uma construção de - processador único para analisar adequadamente as mensagens de erro. - -4.6. Sobre as Suítes de Teste - - A maioria dos pacotes fornece uma suíte de teste. Rodar a suíte de - teste para um pacote recém construído é uma boa ideia, pois pode - fornecer uma “verificação de sanidade†indicando que tudo compilou - corretamente. Uma suíte de teste que executa seu conjunto de - verificações geralmente prova que o pacote está funcionando como a(o) - desenvolvedora(r) pretendia. Entretanto isso não garante que o pacote - está totalmente livre de defeitos. - - Algumas suítes de teste são mais importantes que outras. Por exemplo, - as suítes de teste para o conjunto de ferramentas central—GCC, - binutils, e glibc—são de máxima importância devido a seu papel central - em um sistema que funcione adequadamente. As suítes de teste para GCC e - glibc podem levar bastante tempo para completarem, especialmente em uma - máquina lenta, mas são fortemente recomendadas. - -Nota - - Executar as suítes de teste em [505]Capítulo 5 e [506]Capítulo 6 é - impossível, dado que os aplicativos são compilados com um compilador - cruzado, de forma que não se supõe que sejam aptos a executar no - anfitrião de construção. - - Um problema comum com a execução de suítes de teste para binutils e GCC - é ficar sem pseudo terminais (PTYs). Isso pode resultar em um alto - número de testes com falhas. Isso pode acontecer por muitas razões, mas - a causa mais provável é que o sistema anfitrião não tem o sistema de - arquivos devpts configurado corretamente. Esse problema é discutido em - maiores detalhes em - [507]https://www.linuxfromscratch.org/lfs/faq.html#no-ptys. - - Algumas vezes suítes de testes de pacotes falharão, mas por razões as - quais as(os) desenvolvedoras(es) estão cientes e consideraram - não-críticas. Consulte os registros localizados em - [508]https://www.linuxfromscratch.org/lfs/build-logs/11.1/ para - verificar quando essas falhas são esperadas ou não. Esse site é válido - para todos os testes ao longo deste livro. - -Parte III. Construindo o Conjunto de Ferramentas Cruzadas de LFS e -Ferramentas Temporárias - -Material Preliminar Importante - -Introdução - - Esta parte é dividida em três estágios: primeiro construindo um - compilador cruzado e suas bibliotecas associadas; segundo, usar esse - conjunto de ferramentas cruzado para construir vários utilitários de - uma forma que os isola da distribuição anfitriã; terceiro, entrar no - ambiente chroot, o qual melhora ainda mais o isolamento do anfitrião, e - construir as ferramentas restantes necessárias para construir o sistema - final. - -Importante - - Com esta parte inicia o trabalho real de construir um novo sistema. - Exige muito cuidado em assegurar que as instruções sejam seguidas - exatamente conforme o livro as mostra. Você deveria tentar entender o - que elas fazem, e qualquer que seja sua ânsia para finalizar sua - construção, você deveria evitar digitá-las cegamente como mostrado, mas - ler documentação quando houver algo que você não entenda. Além disso, - acompanhe sua digitação e da saída de comandos, enviando-as para um - arquivo, usando o utilitário tee. Isso permite um melhor diagnóstico se - algo der errado. - - A próxima seção dá uma introdução técnica ao processo de construção, - enquanto que a seguinte contém instruções gerais muito importantes. - -Notas Técnicas do Conjunto de Ferramentas - - Esta seção explana algumas das razões e detalhes técnicos por trás do - método completo de construção. Não é essencial entender imediatamente - tudo nesta seção. A maior parte desta informação ficará mais clara após - executar uma construção atual. Esta seção pode e deve ser consultada a - qualquer momento durante o processo. - - O objetivo geral do [509]Capítulo 5 e do [510]Capítulo 6 é o de - produzir uma área temporária que contém um conjunto reconhecidamente - bom de ferramentas que pode ser isolado do sistema anfitrião. Usando-se - chroot, os comandos nos capítulos subsequentes estarão confinados - naquele ambiente, assegurando uma construção limpa e livre de problemas - do sistema LFS alvo. O processo de construção foi desenhado para - minimizar os riscos para leitores novatos e para prover o maior valor - educacional ao mesmo tempo. - - O processo de construção é baseado no processo de compilação cruzada. A - compilação cruzada normalmente é usada para construir um compilador e o - conjunto de ferramentas dele para uma máquina diferente daquela que é - usada para a construção. Isso não é estritamente necessário para LFS, - dado que a máquina onde o novo sistema executará é a mesma usada para a - construção. Porém, a compilação cruzada tem a grande vantagem de que - tudo o que é compilado cruzadamente não pode depender do ambiente do - anfitrião. - -Acerca da Compilação Cruzada - -Nota - - O livro LFS não é, e não contém, um tutorial geral para construir um - conjunto de ferramentas cruzado (ou nativo). Não use os comandos no - livro para um conjunto de ferramentas cruzado o qual será usado para - algum outro propósito que não construir LFS, a menos que você realmente - entenda o que está fazendo. - - Compilação cruzada envolve alguns conceitos que merecem uma seção por - si próprios. Apesar que esta seção pode ser omitida em uma primeira - leitura, retornar até ela mais tarde será benéfico para o seu completo - entendimento do processo. - - Permita-nos primeiro definir alguns termos usados nesse contexto - - build - é a máquina onde nós construímos aplicativos. Note que essa - máquina é referenciada como sendo a “anfitriã†em outras seções. - - host - é a máquina/sistema onde os aplicativos construídos executarão. - Note que esse uso de “host†não é o mesmo que o uso em outras - seções. - - target - é usado apenas para compiladores. Ele é a máquina para a qual o - compilador produz código. Ele pode ser diferente de ambos build - e host. - - Como um exemplo, permita-nos imaginar o seguinte cenário (as vezes - rotulado de “Cruzado Canadenseâ€): nós podemos ter um compilador somente - em uma máquina lenta, vamos rotulá-la de “máquina Aâ€, e o compilador de - “ccAâ€. Nós também podemos ter uma máquina rápida (B), porém sem - compilador, e nós eventualmente desejamos produzir código para outra - máquina lenta (C). Para construir um compilador para a máquina “Câ€, nós - teríamos três estágios: - Estágio Build Host Target Ação - 1 A A B construir compilador cruzado cc1 usando ccA na máquina A - 2 A B C construir compilador cruzado cc2 usando cc1 na máquina A - 3 B C C construir compilador ccC usando cc2 na máquina B - - Então, todos os outros programas necessários para a máquina C podem ser - compilados usando cc2 na rápida máquina B. Note que a menos que B possa - executar aplicativos produzidos por C, não existe maneira de testar os - aplicativos construídos até que a própria máquina C esteja em execução. - Por exemplo, para testar ccC, nós eventualmente desejamos adicionar um - quarto estágio: - Estágio Build Host Target Ação - 4 C C C reconstruir e testar ccC usando o próprio na máquina C - - No exemplo acima, somente cc1 e cc2 são compiladores cruzados, isto é, - eles produzem código para uma máquina diferente daquela na qual estão - sendo executados. Tais compiladores são rotulados de compiladores - nativos. - -Implementação de Compilação Cruzada para LFS - -Nota - - Quase todos os sistemas de construção usam nomes da forma - cpu-vendor-kernel-os rotulados como o trio de máquina. Um leitor atento - eventualmente questionará porque um “trio†rotula um nome de quatro - componentes. A razão é histórica: inicialmente, três nomes de - componente eram suficientes para designar uma máquina inequivocamente, - porém com novas máquinas e sistemas aparecendo, isso se provou - insuficiente. A palavra “trio†subsistiu. Uma maneira simples de - determinar seu trio de máquina é executar o script config.guess que vem - com o fonte para muitos pacotes. Desempacote os fontes do pacote - “binutils†e execute o script: ./config.guess e observe a saída. Por - exemplo, para um processador Intel de 32-bits, a saída será - i686-pc-linux-gnu. Em um sistema de 64-bits, a saída será - x86_64-pc-linux-gnu. - - Esteja também ciente do nome do vinculador dinâmico da plataforma, - frequentemente rotulado de carregador dinâmico (não confundir com o - vinculador padrão ld o qual é parte do pacote “binutilsâ€). O vinculador - dinâmico provido por Glibc encontra e carrega as bibliotecas - compartilhadas necessárias para um aplicativo, prepara o aplicativo - para execução, e então o executa. O nome do vinculador dinâmico para - uma máquina Intel de 32-bits é ld-linux.so.2 e é ld-linux-x86-64.so.2 - para sistemas 64-bits. Uma maneira infalível de determinar o nome do - vinculador dinâmico é inspecionar uma biblioteca aleatória do sistema - anfitrião executando: readelf -l | grep interpreter e - observando a saída. A referência oficial cobrindo todas as plataformas - está no arquivo shlib-versions na raiz da árvore do fonte do Glibc. - - Para falsificar uma compilação cruzada em LFS, o nome do trio do - anfitrião é ligeiramente ajustado modificando-se o campo "vendor" na - variável LFS_TGT. Nós também usamos a opção --with-sysroot quando da - construção do vinculador dinâmico e do compilador cruzado para - informá-los onde encontrar os necessários arquivos do anfitrião. Isso - assegura que nenhum dos outros aplicativos construídos em - [511]Capítulo 6 pode se vincular a bibliotecas na máquina de - construção. Somente dois estágios são obrigatórios, e mais um para - testes: - Estágio Build Host Target Ação - 1 pc pc lfs construir compilador cruzado cc1 usando cc-pc em pc - 2 pc lfs lfs construir compilador cc-lfs usando cc1 em pc - 3 lfs lfs lfs reconstruir e testar cc-lfs usando o próprio em lfs - - Na tabela acima, “em pc†significa que os comandos são executados em - uma máquina usando a distribuição já instalada. “Em lfs†significa que - os comandos são executados dentro de um ambiente enjaulado. - - Agora, existe mais acerca de compilação cruzada: a linguagem C não é - apenas um compilador, mas também define uma biblioteca padrão. Neste - livro, a biblioteca GNU C, rotulada de “glibcâ€, é usada. Essa - biblioteca deve ser compilada para a máquina lfs, isto é, usando o - compilador cruzado cc1. Porém, o próprio compilador usa uma biblioteca - interna implementando complexas instruções não disponíveis no conjunto - de instruções do montador. Essa biblioteca interna é rotulada de - “libgccâ€, e deve ser vinculada à biblioteca “glibc†para ser - completamente funcional! Além disso, a biblioteca padrão para C++ - (libstdc++) também precisa estar vinculada à “glibcâ€. A solução para - esse problema de ovo e galinha é primeiro construir uma libgcc - degradada baseada em cc1, faltando algumas funcionalidades tais como - camadas e manipulação de exceções, então construir glibc usando esse - compilador degradado (o próprio glibc não degradado), então construir - libstdc++. Porém, nessa última biblioteca faltarão as mesmas - funcionalidades que libgcc. - - Esse não é o fim da história: a conclusão do parágrafo precedente é a - de que cc1 é incapaz de construir uma libstdc++ completamente - funcional, porém esse é o único compilador disponível para construir as - bibliotecas C/C++ durante o estágio 2! Certamente, o compilador - construído durante o estágio 2, cc-lfs, seria capaz de construir - aquelas bibliotecas, porém (1) o sistema de construção do GCC não sabe - que está utilizável em pc; e (2) usá-lo em pc estaria sob o risco de - vinculamento às bibliotecas de pc, dado que cc-lfs é um compilador - nativo. Assim, nós temos de construir libstdc++ mais tarde, em jaula. - -Outros detalhes procedurais - - O compilador cruzado será instalado em um diretório $LFS/tools - separado, dado que ele não será parte do sistema final. - - Binutils é instalado primeiro, pois a execução de configure de ambos - GCC e Glibc executa vários testes de características no montador e no - vinculador para determinar quais características de software habilitar - ou desabilitar. Isso é mais importante do que, inicialmente, alguém - possa perceber. Um GCC ou Glibc configurado incorretamente pode - resultar em um conjunto de ferramentas sutilmente quebrado, onde o - impacto de tal quebra talvez não se manifeste até próximo do final da - construção de uma distribuição inteira. Uma falha de teste de suíte - normalmente destacará tal erro antes que muito mais trabalho adicional - seja realizado. - - O Binutils instala o montador e o vinculador dele em dois locais, - $LFS/tools/bin e $LFS/tools/$LFS_TGT/bin. As ferramentas em uma - localização são rigidamente vinculadas à outra. Uma faceta importante - do vinculador é a ordem de procura de biblioteca dele. Informações - detalhadas podem ser obtidas de ld passando a flag --verbose. Por - exemplo, $LFS_TGT-ld --verbose | grep SEARCH exibirá os caminhos atuais - de procura e a ordem deles. Isso mostra quais arquivos estão vinculados - por ld pela compilação de um aplicativo fictício e passagem do - modificador --verbose ao vinculador. Por exemplo, $LFS_TGT-gcc dummy.c - -Wl,--verbose 2>&1 | grep succeeded exibirá todos os arquivos abertos - com sucesso durante o vinculamento. - - O próximo pacote instalado é o GCC. Um exemplo do que pode ser visto - durante a execução dele de configure é: -checking what assembler to use... /mnt/lfs/tools/i686-lfs-linux-gnu/bin/as -checking what linker to use... /mnt/lfs/tools/i686-lfs-linux-gnu/bin/ld - - Isso é importante pelas razões mencionadas acima. Também demonstra que - o script de configuração do GCC não busca os diretórios do PATH para - encontrar quais ferramentas usar. Entretanto, durante a operação atual - do próprio gcc, os mesmos caminhos de busca não são necessariamente - usados. Para descobrir qual vinculador padrão gcc usará, execute: - $LFS_TGT-gcc -print-prog-name=ld. - - Informação detalhada pode ser obtida de gcc passando-se a opção de - linha de comando -v durante a compilação de um aplicativo fictício. Por - exemplo, gcc -v dummy.c exibirá informação detalhada acerca do - preprocessador, compilação e estágios da montagem, incluindo os - caminhos de busca incluídos do gcc e a ordem deles. - - Os próximos instalados são os cabeçalhos sanitizados da API do Linux. - Eles permitem a interface da biblioteca C padrão (Glibc) com - características que o kernel Linux proverá. - - O próximo pacote instalado é Glibc. As considerações mais importantes - para a construção do Glibc são o compilador, ferramentas binárias e os - cabeçalhos do kernel. O compilador geralmente não é um problema dado - que Glibc sempre usará o compilador relacionado ao parâmetro --host - passado ao script de configuração dele; por exemplo, em nosso caso, o - compilador será $LFS_TGT-gcc. As ferramentas binárias e os cabeçalhos - do kernel podem ser um bocado mais complicados. Dessa maneira, nós não - nos arriscamos e usamos os modificadores de configuração disponíveis - para forçar as seleções corretas. Após a execução de configure, - verifique o conteúdo do arquivo config.make no diretório build para - todos os detalhes importantes. Observe o uso de CC="$LFS_TGT-gcc" (com - $LFS_TGT expandida) para controlar quais ferramentas binárias são - usadas e o uso das flags -nostdinc e -isystem para controlar o caminho - de busca incluído do compilador. Esses itens destacam um importante - aspecto do pacote Glibc—ele é muito autossuficiente em termos de - maquinário de construção e geralmente não confia em padrões de - conjuntos de ferramentas. - - Como dito acima, a biblioteca C++ padrão é compilada depois, seguida em - [512]Capítulo 6 por todos os aplicativos que necessitam deles próprios - para serem construídos. O passo de instalação de todos aqueles pacotes - usa os aplicativos instalados no sistema de arquivos do LFS. - - Ao final do [513]Capítulo 6 o compilador nativo do LFS é instalado. - Primeiro binutils-pass2 é construído, com a mesma instalação DESTDIR - como os outros programas, então a segunda passagem de GCC é construída, - omitindo libstdc++ e outras bibliotecas não importantes. Devido a - algumas lógicas estranhas no script configure do GCC, CC_FOR_TARGET - termina como cc quando o host for o mesmo que o target, porém for - diferente do sistema de construção. Essa é a razão pela qual - CC_FOR_TARGET=$LFS_TGT-gcc é colocado explicitamente nas opções de - configuração. - - Uma vez dentro do ambiente chroot no [514]Capítulo 7, a primeira tarefa - é instalar libstdc++. Então instalações temporárias de programas - necessários para a operação apropriada do conjunto de ferramentas são - executadas. Deste ponto em diante, o conjunto central de ferramentas - está autocontido e auto-hospedado. No [515]Capítulo 8, as versões - finais de todos os pacotes necessários para um sistema completamente - funcional são construídos, testados e instalados. - -Instruções Gerais de Compilação - - Quando da construção de pacotes existem várias suposições feitas dentro - das instruções: - * Vários dos pacotes recebem patches antes da compilação, mas apenas - quando o patch é necessário para evitar um problema. Um patch - frequentemente é necessário tanto neste quanto nos seguintes - capítulos, mas algumas vezes em apenas uma localização. Portanto, - não se preocupe se as instruções para um patch baixado pareçam - estar faltando. Mensagens de alerta acerca de offset ou fuzz também - talvez sejam encontradas quando da aplicação de um patch. Não se - preocupe com esses alertas, uma vez que o patch ainda foi aplicado - com sucesso. - * Durante a compilação da maior parte dos pacotes, existirão vários - alertas que rolarão na tela. Esses são normais e seguramente podem - ser ignorados. Esses alertas são o que parecem—alertas acerca de - uso de sintaxe C ou C++ obsoleta, mas não inválida. Padrões C mudam - com ampla frequência, e alguns pacotes ainda usam o padrão antigo. - Isso não é um problema, mas gera o alerta. - * Verifique uma última vez que a variável de ambiente LFS está - configurada adequadamente: -echo $LFS - Certifique-se de que a saída mostra o caminho para o ponto de - montagem da partição LFS, que é /mnt/lfs, usando nosso exemplo. - * Finalmente, dois itens importantes devem ser enfatizados: - -Importante - As instruções de construção assumem que as [516]Exigências do - Sistema Anfitrião, incluindo links simbólicos, foram configuradas - adequadamente: - + bash é o shell em uso. - + sh é um link simbólico para bash. - + /usr/bin/awk é um link simbólico para gawk. - + /usr/bin/yacc é um link simbólico para bison ou um script - pequeno que executa bison. - -Importante - Para reenfatizar o processo de construção: - 1. Coloque todos os pacotes e patches em um diretório que estará - acessível a partir do ambiente chroot, tal como - /mnt/lfs/sources/. - 2. Mude para o diretório dos fontes. - 3. Para cada pacote: - 1. Usando o aplicativo tar, extraia o pacote para ser - construído. Em [517]Capítulo 5 e [518]Capítulo 6, - certifique-se de que você seja a(o) usuária(o) lfs quando - extrair o pacote. - Todos os métodos para obter a árvore de código fonte - sendo construído em-posição, exceto extrair o tarball de - pacote, não são suportados. Notadamente, usar cp -R para - copiar a árvore de código fonte para outro lugar pode - destruir links e marcas temporais na árvore de fontes e - causar falha de construção. - 2. Mude para o diretório criado quando o pacote foi - extraído. - 3. Siga as instruções do livro para construir o pacote. - 4. Mude de volta para o diretório de fontes. - 5. Delete o diretório de fonte extraído a menos que - instruído o contrário. - -Capítulo 5. Compilando um Conjunto de Ferramentas Cruzado - -5.1. Introdução - - Este capítulo mostra como construir um compilador cruzado e suas - ferramentas associadas. Apesar de aqui a compilação cruzada ser - falseada, os princípios são os mesmos que aqueles para um conjunto de - ferramentas cruzado real. - - Os aplicativos compilados neste capítulo serão instalados sob o - diretório $LFS/tools para mantê-los separados dos arquivos instalados - nos capítulos seguintes. As bibliotecas, por outro lado, são instaladas - em seus locais finais, dado que elas pertencem ao sistema que queremos - construir. - -5.2. Binutils-2.38 - Passagem 1 - - O pacote Binutils contém um vinculador, um montador, e outras - ferramentas para manusear arquivos objeto. - Tempo aproximado de construção: 1 UPC - Espaço em disco exigido: 620 MB - -5.2.1. Instalação de Binutils Cruzado - -Nota - - Volte e releia as notas na seção intitulada [519]Instruções Gerais de - Compilação. Entender as notas rotuladas como importante pode salvar - você de um monte de problemas depois. - - É importante que Binutils seja o primeiro pacote compilado, pois ambos - Glibc e GCC realizam vários testes sobre o vinculador e montador - disponíveis para determinar quais de suas próprias características - habilitar. - - A documentação de Binutils recomenda construir Binutils em um diretório - dedicado à construção: -mkdir -v build -cd build - -Nota - - Com a finalidade de que os valores de UPC listados no resto do livro - sejam de qualquer uso, meça o tempo que leva para construir este pacote - desde a configuração até e incluindo a primeira instalação. Para fazer - isso facilmente, encapsule os comandos em um time desta forma: time { - ../configure ... && make && make install; }. - - Agora prepare Binutils para compilação: -../configure --prefix=$LFS/tools \ - --with-sysroot=$LFS \ - --target=$LFS_TGT \ - --disable-nls \ - --disable-werror - - O significado das opções do configure: - - --prefix=$LFS/tools - Isso diz para o script configure para preparar para instalar os - aplicativos de binutils no diretório $LFS/tools. - - --with-sysroot=$LFS - Para compilação cruzada, isso diz ao sistema de construção para - procurar em $LFS pelas bibliotecas alvo de sistema conforme - necessário. - - --target=$LFS_TGT - Por causa da descrição de máquina na variável LFS_TGT ser - ligeiramente diferente do valor retornado pelo script - config.guess, essa chave dirá ao script configure para ajustar o - sistema de construção do binutils para construir um vinculador - cruzado. - - --disable-nls - Isso desabilita internacionalização, uma vez que i18n não é - necessária para as ferramentas temporárias. - - --disable-werror - Isso evita que a construção pare no caso de existirem alertas - originários do compilador do anfitrião. - - Continue compilando o pacote: -make - - Instale o pacote: -make install - - Detalhes deste pacote estão localizados em [520]Seção 8.18.2, “Conteúdo - de Binutils.†- -5.3. GCC-11.2.0 - Passagem 1 - - O pacote GCC contém a GNU compiler collection, o qual inclui os - compiladores C e C++. - Tempo aproximado de construção: 11 UPC - Espaço em disco exigido: 3,3 GB - -5.3.1. Instalação de GCC Cruzado - - GCC exige os pacotes GMP, MPFR e MPC. Uma vez que esses pacotes talvez - não estejam incluídos na sua distribuição anfitriã, eles serão - construídos com GCC. Desempacote cada pacote dentro do diretório de - fonte de GCC e renomeie os diretórios resultantes de forma que os - procedimentos de construção de GCC automaticamente os usarão: - -Nota - - Existem mal-entendidos frequentes sobre este capítulo. Os procedimentos - são os mesmos que todos os outros capítulos explicados anteriormente - ([521]Instruções de construção de pacote). Primeiro extraia o tarball - de gcc a partir do diretório de fontes e então mude para o diretório - criado. Somente então deveria você prosseguir com as instruções abaixo. -tar -xf ../mpfr-4.1.0.tar.xz -mv -v mpfr-4.1.0 mpfr -tar -xf ../gmp-6.2.1.tar.xz -mv -v gmp-6.2.1 gmp -tar -xf ../mpc-1.2.1.tar.gz -mv -v mpc-1.2.1 mpc - - Em anfitriões x86_64, configure o nome padrão de diretório para - bibliotecas de 64 bits para “libâ€: -case $(uname -m) in - x86_64) - sed -e '/m64=/s/lib64/lib/' \ - -i.orig gcc/config/i386/t-linux64 - ;; -esac - - A documentação de GCC recomenda construir GCC em um diretório de - construção dedicado: -mkdir -v build -cd build - - Prepare GCC para compilação: -../configure \ - --target=$LFS_TGT \ - --prefix=$LFS/tools \ - --with-glibc-version=2.35 \ - --with-sysroot=$LFS \ - --with-newlib \ - --without-headers \ - --enable-initfini-array \ - --disable-nls \ - --disable-shared \ - --disable-multilib \ - --disable-decimal-float \ - --disable-threads \ - --disable-libatomic \ - --disable-libgomp \ - --disable-libquadmath \ - --disable-libssp \ - --disable-libvtv \ - --disable-libstdcxx \ - --enable-languages=c,c++ - - O significado das opções de configure: - - --with-glibc-version=2.35 - Essa opção especifica a versão de glibc a qual será usada no - alvo. Ela não é relevante para a libc da distro anfitriã, pois - tudo compilado por gcc passagem 1 executará no ambiente chroot, - o qual é isolado de libc da distro anfitriã. - - --with-newlib - Uma vez que uma biblioteca C funcional ainda não está - disponível, isso assegura que a constante inhibit_libc esteja - definida quando da construção de libgcc. Isso evita a compilação - de qualquer código que exija suporte de libc. - - --without-headers - Quando da criação de um compilador cruzado completo, GCC exige - cabeçalhos padrão compatíveis com o sistema alvo. Para nossos - propósitos esses cabeçalhos não serão necessários. Essa chave - evita que GCC procure por eles. - - --enable-initfini-array - Essa chave força o uso de algumas estruturas internas de dados - que são necessárias, porém não podem ser detectadas quando da - construção de um compilador cruzado. - - --disable-shared - Essa chave força GCC a vincular suas bibliotecas internas - estaticamente. Nós precisamos disso, pois as bibliotecas - compartilhadas exigem glibc, que ainda não está instalado no - sistema alvo. - - --disable-multilib - Em x86_64, LFS não suporta uma configuração multilib. Essa chave - é inofensiva para x86. - - --disable-decimal-float, --disable-threads, --disable-libatomic, - --disable-libgomp, --disable-libquadmath, --disable-libssp, - --disable-libvtv, --disable-libstdcxx - Essas chaves desabilitam suporte para a extensão de ponto - flutuante decimal, threading, libatomic, libgomp, libquadmath, - libssp, libvtv, e a biblioteca padrão C++ respectivamente. Essas - características falharão na compilação quando da construção de - um compilador cruzado e não são necessárias para a tarefa de - compilar cruzadamente a libc temporária. - - --enable-languages=c,c++ - Essa opção garante que apenas os compiladores C e C++ sejam - construídos. Essas são as únicas linguagens necessárias agora. - - Compile GCC executando: -make - - Instale o pacote: -make install - - Essa construção de GCC instalou um par de cabeçalhos internos de - sistema. Normalmente um deles, limits.h, sequencialmente incluiria o - cabeçalho limits.h de sistema correspondente, nesse caso, - $LFS/usr/include/limits.h. Entretanto, ao tempo dessa construção de - GCC, $LFS/usr/include/limits.h não existe, de forma que o cabeçalho - interno recém instalado é um arquivo parcial, autocontido, e não inclui - as características estendidas do cabeçalho de sistema. Isso é adequado - para a construção de glibc, porém o cabeçalho interno completo será - necessário mais tarde. Crie uma versão completa do cabeçalho interno - usando um comando que é idêntico ao que o sistema de construção de GCC - faz em circunstâncias normais: -cd .. -cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \ - `dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/install-tools/include/limits -.h - - Detalhes acerca deste pacote estão localizados em [522]Seção 8.26.2, - “Conteúdo de GCC.†- -5.4. Cabeçalhos da API do Linux-5.16.9 - - Os Cabeçalhos da API do Linux (em linux-5.16.9.tar.xz) expõem a API do - kernel para uso por Glibc. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 1,2 GB - -5.4.1. Instalação dos Cabeçalhos da API do Linux - - O kernel Linux precisa expor uma Interface de Programação de - Aplicativos (API) para a biblioteca C do sistema (Glibc em LFS) usar. - Isso é feito por meio de sanitizar vários arquivos de cabeçalho C que - são incluídos no tarball de fonte de kernel Linux. - - Certifique-se de que não existem arquivos obsoletos embutidos no - pacote: -make mrproper - - Agora extraia os cabeçalhos de kernel visíveis ao usuário a partir do - fonte. O alvo recomendado de make “headers_install†não pode ser usado, - pois ele exige rsync, que talvez não esteja disponível. Os cabeçalhos - são primeiro colocados em ./usr, então copiados para a localização - necessária. -make headers -find usr/include -name '.*' -delete -rm usr/include/Makefile -cp -rv usr/include $LFS/usr - -5.4.2. Conteúdo dos Cabeçalhos da API do Linux - - Cabeçalhos instalados: /usr/include/asm/*.h, - /usr/include/asm-generic/*.h, /usr/include/drm/*.h, - /usr/include/linux/*.h, /usr/include/misc/*.h, /usr/include/mtd/*.h, - /usr/include/rdma/*.h, /usr/include/scsi/*.h, /usr/include/sound/*.h, - /usr/include/video/*.h, and /usr/include/xen/*.h - Diretórios instalados: /usr/include/asm, /usr/include/asm-generic, - /usr/include/drm, /usr/include/linux, /usr/include/misc, - /usr/include/mtd, /usr/include/rdma, /usr/include/scsi, - /usr/include/sound, /usr/include/video, and /usr/include/xen - -Descrições Curtas - - /usr/include/asm/*.h - - Os Cabeçalhos API ASM Linux - - /usr/include/asm-generic/*.h - - Os Cabeçalhos Genéricos API ASM Linux - - /usr/include/drm/*.h - - Os Cabeçalhos API DRM Linux - - /usr/include/linux/*.h - - Os Cabeçalhos Linux API Linux - - /usr/include/misc/*.h - - Os Cabeçalhos Miscelâneas API Linux - - /usr/include/mtd/*.h - - Os Cabeçalhos API MTD Linux - - /usr/include/rdma/*.h - - Os Cabeçalhos API RDMA Linux - - /usr/include/scsi/*.h - - Os Cabeçalhos API SCSI Linux - - /usr/include/sound/*.h - - Os Cabeçalhos de Som API Linux - - /usr/include/video/*.h - - Os Cabeçalhos de Vídeo API Linux - - /usr/include/xen/*.h - - Os Cabeçalhos Xen API Linux - -5.5. Glibc-2.35 - - O pacote Glibc contém a biblioteca C principal. Essa biblioteca fornece - as rotinas básicas para alocação de memória, busca em diretórios, - abertura e fechamento de arquivos, leitura e escrita de arquivos, - manuseio de sequências de caracteres, correspondência de padrões, - aritmética, e daí por diante. - Tempo aproximado de construção: 4,3 UPC - Espaço em disco exigido: 818 MB - -5.5.1. Instalação de Glibc - - Primeiro, crie um link simbólico para conformidade com LSB. - Adicionalmente, para x86_64, crie um link simbólico de compatibilidade - exigido para a operação adequada do carregador dinâmico de biblioteca: -case $(uname -m) in - i?86) ln -sfv ld-linux.so.2 $LFS/lib/ld-lsb.so.3 - ;; - x86_64) ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64 - ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3 - ;; -esac - -Nota - - O comando acima está correto. O comando ln tem umas poucas versões - sintáticas, de forma que tenha certeza de verificar info coreutils ln e - ln(1) antes de relatar o que você talvez pense que seja um erro. - - Alguns dos aplicativos Glibc usam o diretório não conforme com FHS - /var/db para armazenar seus dados em tempo de execução. Aplique a - seguinte correção para fazer com que tais aplicativos armazenem seus - dados em tempo de execução nos locais conformes com FHS: -patch -Np1 -i ../glibc-2.35-fhs-1.patch - - A documentação de Glibc recomenda construir Glibc em um diretório - dedicado à construção: -mkdir -v build -cd build - - Assegure que os utilitários ldconfig e sln sejam instalados em - /usr/sbin: -echo "rootsbindir=/usr/sbin" > configparms - - A seguir, prepare Glibc para compilação: -../configure \ - --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(../scripts/config.guess) \ - --enable-kernel=3.2 \ - --with-headers=$LFS/usr/include \ - libc_cv_slibdir=/usr/lib - - O significado das opções de configure: - - --host=$LFS_TGT, --build=$(../scripts/config.guess) - O efeito combinado dessas chaves é o de que o sistema de - construção do Glibc se autoconfigura para ser compilado - cruzadamente, usando o vinculador cruzado e compilador cruzado - em $LFS/tools. - - --enable-kernel=3.2 - Isso diz a Glibc para compilar a biblioteca com suporte para - kernels Linux 3.2 e posteriores. Contornos para kernels antigos - não estão habilitados. - - --with-headers=$LFS/usr/include - Isso diz a Glibc para compilar a si mesmo com os cabeçalhos - recentemente instalados no diretório $LFS/usr/include, de forma - que ele saiba exatamente quais características o kernel tem e - possa otimizar-se adequadamente. - - libc_cv_slibdir=/usr/lib - Isso garante que a biblioteca seja instalada em /usr/lib em vez - do padrão /lib64 em máquinas de 64 bits. - - Durante este estágio o seguinte alerta pode aparecer: - -configure: WARNING: -*** These auxiliary programs are missing or -*** incompatible versions: msgfmt -*** some features will be disabled. -*** Check the INSTALL file for required versions. - - O aplicativo msgfmt faltando ou incompatível geralmente é inofensivo. - Esse aplicativo msgfmt é parte do pacote Gettext que a distribuição - anfitriã deveria fornecer. - -Nota - - Tem havido relatos de que esse pacote talvez falhe quando da construção - como um "parallel make". Se isso ocorrer, então reexecute o comando - make com uma opção "-j1". - - Compile o pacote: -make - - Instale o pacote: - -Atenção - - Se LFS não estiver adequadamente configurada, e a despeito das - recomendações, você estiver construindo como root, então o próximo - comando instalará a recém construída glibc em seu sistema anfitrião, o - que possivelmente o tornará inutilizável. Portanto, verifique duas - vezes se o ambiente está corretamente configurado, antes de executar o - seguinte comando. -make DESTDIR=$LFS install - - O significado da opção make install: - - DESTDIR=$LFS - A variável DESTDIR de make é usada por quase todos os pacotes - para definir a localização onde o pacote deveria ser instalado. - Se ela não estiver configurada, então o padrão é o diretório - raiz (/). Aqui nós especificamos que o pacote seja instalado em - $LFS, que se tornará a raiz após [523]Seção 7.4, “Entrando no - Ambiente Chrootâ€. - - Corrija caminho codificado rigidamente para o carregador de executável - em script ldd: -sed '/RTLDLIST=/s@/usr@@g' -i $LFS/usr/bin/ldd - -Cuidado - - Neste ponto, é imperativo parar e certificar-se de que as funções - básicas (compilar e lincar) do novo conjunto de ferramentas estão - funcionando como esperado. Para realizar uma verificação de sanidade, - execute os seguintes comandos: -echo 'int main(){}' > dummy.c -$LFS_TGT-gcc dummy.c -readelf -l a.out | grep '/ld-linux' - - Se tudo estiver funcionando corretamente, então não deveriam existir - quaisquer erros, e a saída do último comando será na forma: -[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2] - - Note que para máquinas de 32 bits, o nome do interpretador será - /lib/ld-linux.so.2. - - Se a saída não for mostrada como acima ou não existir saída nenhuma, - então alguma coisa está errada. Investigue e retrace os passos para - encontrar onde está o problema e corrija-o. Esse problema deve ser - resolvido antes de continuar. - - Uma vez que tudo esteja bem, limpe os arquivos de teste: -rm -v dummy.c a.out - -Nota - - Construir pacotes no próximo capítulo servirá como uma verificação - adicional de que o conjunto de ferramentas foi construído - adequadamente. Se algum pacote, especialmente binutils-passagem 2 ou - gcc-passagem 2, falhar na construção, então isso é uma indicação de que - alguma coisa deu errado com as instalações anteriores de Binutils, GCC - ou Glibc. - - Agora que nosso conjunto de ferramentas cruzadas está completa, - finalize a instalação do cabeçalho limits.h. Para fazer isso, execute - um utilitário fornecido pelas(os) desenvolvedoras(os) de GCC: -$LFS/tools/libexec/gcc/$LFS_TGT/11.2.0/install-tools/mkheaders - - Detalhes acerca deste pacote estão localizados em [524]Seção 8.5.3, - “Conteúdo de Glibc.†- -5.6. Libstdc++ oriundo de GCC-11.2.0, Passagem 1 - - Libstdc++ é a biblioteca padrão C++. Ela é necessária para compilar - código C++ (parte de GCC é escrito em C++), porém nós tivemos que adiar - sua instalação quando construímos [525]gcc-pass1, pois ela depende de - glibc, que ainda não estava disponível no diretório alvo. - Tempo aproximado de construção: 0,4 UPC - Espaço em disco exigido: 818 MB - -5.6.1. Instalação de Libstdc++ Alvo - -Nota - - Libstdc++ é parte dos fontes de GCC. Você deveria primeiro desempacotar - o tarball de GCC e mudar para o diretório gcc-11.2.0. - - Crie um diretório de construção separado para libstdc++ e entre nele: -mkdir -v build -cd build - - Prepare libstdc++ para compilação: -../libstdc++-v3/configure \ - --host=$LFS_TGT \ - --build=$(../config.guess) \ - --prefix=/usr \ - --disable-multilib \ - --disable-nls \ - --disable-libstdcxx-pch \ - --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/11.2.0 - - O significado das opções de configure: - - --host=... - Especifica que o compilador cruzado que nós acabamos de - construir deveria ser usado em vez daquele em /usr/bin. - - --disable-libstdcxx-pch - Essa chave evita a instalação de arquivos include - pré-compilados, os quais não são necessários neste estágio. - - --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/11.2.0 - Isso especifica o diretório de instalação para arquivos include. - Por causa de libstdc++ ser a biblioteca padrão C++ para LFS, - esse diretório deveria coincidir com a localização onde o - compilador C++ ($LFS_TGT-g++) procuraria pelos arquivos include - C++ padrão. Em uma construção normal, essa informação é - automaticamente passada para as opções configure de libstdc++ a - partir do diretório de nível de topo. Em nosso caso, essa - informação deve ser explicitamente dada. O compilador C++ - precederá o caminho raiz de sistema $LFS (especificado quando da - construção de GCC passagem 1) para o caminho de pesquisa de - arquivo include, de forma que ele atualmente pesquisará em - $LFS/tools/$LFS_TGT/include/c++/11.2.0. A combinação da variável - DESTDIR (no comando make install abaixo) e essa chave garante - instalar os cabeçalhos lá. - - Compile libstdc++ executando: -make - - Instale a biblioteca: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [526]Seção 8.26.2, - “Conteúdo de GCC.†- -Capítulo 6. Compilando Cruzadamente Ferramentas Temporárias - -6.1. Introdução - - Este capítulo mostra como compilar cruzadamente utilitários básicos - usando o recém construído conjunto de ferramentas cruzadas. Esses - utilitários são instalados no local final deles, porém ainda não podem - ser usados. Tarefas básicas ainda dependem das ferramentas do - anfitrião. Apesar disso, as bibliotecas instaladas são usadas quando da - vinculação. - - O uso dos utilitários será possível no próximo capítulo após entrada no - ambiente “chrootâ€. Porém, todos os pacotes construídos no presente - capítulo precisam ser construídos antes que façamos isso. Dessa forma - nós ainda não podemos ficar independentes do sistema anfitrião. - - Uma vez mais, permita-nos relembrar que a configuração inapropriada de - LFS junto com a construção como root, talvez torne seu computador - inutilizável. Este capítulo inteiro precisa ser feito como usuária(o) - lfs, com o ambiente conforme descrito em [527]Seção 4.4, “Configurando - o Ambienteâ€. - -6.2. M4-1.4.19 - - O pacote M4 contém um processador de macro. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 31 MB - -6.2.1. Instalação de M4 - - Prepare M4 para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [528]Seção 8.12.2, - “Conteúdo de M4.†- -6.3. Ncurses-6.3 - - O pacote Ncurses contém bibliotecas para manipulação de telas de - caracteres independente de terminal. - Tempo aproximado de construção: 0,7 UPC - Espaço em disco exigido: 50 MB - -6.3.1. Instalação de Ncurses - - Primeiro, assegure que gawk é encontrado primeiro durante a - configuração: -sed -i s/mawk// configure - - Então, execute os seguintes comandos para construir o aplicativo “tic†- no anfitrião de construção: -mkdir build -pushd build - ../configure - make -C include - make -C progs tic -popd - - Prepare Ncurses para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(./config.guess) \ - --mandir=/usr/share/man \ - --with-manpage-format=normal \ - --with-shared \ - --without-debug \ - --without-ada \ - --without-normal \ - --disable-stripping \ - --enable-widec - - O significado das novas opções de configure: - - --with-manpage-format=normal - Isso evita que Ncurses instale páginas comprimidas de manual, o - que talvez aconteceu se a própria distribuição anfitriã tiver - páginas comprimidas de manual. - - --without-ada - Isso assegura que Ncurses não construa suporte para o compilador - Ada, o qual talvez esteja presente no anfitrião, porém não - estará disponível até que nós entremos no ambiente chroot. - - --disable-stripping - Essa chave impede o sistema de construção de despojar os - aplicativos usando o aplicativo strip oriundo do anfitrião. O - uso de ferramentas de anfitrião em aplicativo compilado - cruzadamente pode causar falha. - - --enable-widec - Essa chave faz com que bibliotecas de caracteres largos (por - exemplo, libncursesw.so.6.3) sejam construídas em vez de - bibliotecas normais (por exemplo, libncurses.so.6.3). Essas - bibliotecas de caracteres largos são utilizáveis tanto em - locales de múltiplos bytes quanto em tradicionais de oito (08) - bits, enquanto bibliotecas normais funcionam adequadamente só em - locales de oito (08) bits. Bibliotecas de caracteres largos e - bibliotecas normais são compatíveis em fonte, mas não são - compatíveis em binário. - - --without-normal - Essa chave desabilita a construção e instalação da maioria das - bibliotecas estáticas. - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS TIC_PATH=$(pwd)/build/progs/tic install -echo "INPUT(-lncursesw)" > $LFS/usr/lib/libncurses.so - - O significado das opções de install: - - TIC_PATH=$(pwd)/build/progs/tic - Nós precisamos passar o caminho do recém construído tic apto - para executar na máquina de construção, de forma que a base de - dados de terminal possa ser criada sem erros. - - echo "INPUT(-lncursesw)" > $LFS/usr/lib/libncurses.so - A biblioteca libncurses.so é necessária para uns poucos pacotes - que nós construiremos breve. Nós criamos esse pequeno script - vinculador, pois isso é o que é feito em [529]Capítulo 8. - - Detalhes acerca deste pacote estão localizados em [530]Seção 8.28.2, - “Conteúdo de Ncurses.†- -6.4. Bash-5.1.16 - - O pacote Bash contém o Bourne-Again SHell. - Tempo aproximado de construção: 0,4 UPC - Espaço em disco exigido: 64 MB - -6.4.1. Instalação de Bash - - Prepare Bash para compilação: -./configure --prefix=/usr \ - --build=$(support/config.guess) \ - --host=$LFS_TGT \ - --without-bash-malloc - - O significado das opções de configure: - - --without-bash-malloc - Essa opção desliga o uso da função de alocação de memória do - Bash (malloc) a qual é conhecida por causar falhas de - segmentação. Ao se desligar essa opção, Bash usará as funções - malloc originárias de Glibc que são mais estáveis. - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Faça um link para os aplicativos que usam sh para um shell: -ln -sv bash $LFS/bin/sh - - Detalhes acerca deste pacote estão localizados em [531]Seção 8.34.2, - “Conteúdo do Bash.†- -6.5. Coreutils-9.0 - - O pacote Coreutils contém utilitários para mostrar e configurar as - características básicas de sistema. - Tempo aproximado de construção: 0,6 UPC - Espaço em disco exigido: 158 MB - -6.5.1. Instalação de Coreutils - - Prepare Coreutils para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) \ - --enable-install-program=hostname \ - --enable-no-install-program=kill,uptime - - O significado das opções de configure: - - --enable-install-program=hostname - Isso habilita o binário hostname para ser construído e instalado - – ele é desabilitado por padrão, porém é exigido pela suíte de - teste de Perl. - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Mova aplicativos para seus locais finais esperados. Apesar de isso não - ser necessário neste ambiente temporário, nós precisamos fazer isso, - pois alguns aplicativos codificam rigidamente locais de executável: -mv -v $LFS/usr/bin/chroot $LFS/usr/sbin -mkdir -pv $LFS/usr/share/man/man8 -mv -v $LFS/usr/share/man/man1/chroot.1 $LFS/usr/share/man/man8/chroot.8 -sed -i 's/"1"/"8"/' $LFS/usr/share/man/man8/chroot.8 - - Detalhes acerca deste pacote estão localizados em [532]Seção 8.53.2, - “Conteúdo do Coreutils.†- -6.6. Diffutils-3.8 - - O pacote Diffutils contém aplicativos que mostram as diferenças entre - arquivos ou diretórios. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 27 MB - -6.6.1. Instalação de Diffutils - - Prepare Diffutils para compilação: -./configure --prefix=/usr --host=$LFS_TGT - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [533]Seção 8.55.2, - “Conteúdo do Diffutils.†- -6.7. File-5.41 - - O pacote File contém um utilitário para determinar o tipo de um dado - arquivo ou arquivos. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 32 MB - -6.7.1. Instalação de File - - O comando file no anfitrião de construção precisa ser da mesma versão - que aquele que nós estamos construindo com a finalidade de criar o - arquivo de assinatura. Execute os seguintes comandos para construí-lo: -mkdir build -pushd build - ../configure --disable-bzlib \ - --disable-libseccomp \ - --disable-xzlib \ - --disable-zlib - make -popd - - O significado da nova opção de configure: - - --disable-* - O script de configuração tenta usar alguns pacotes originários - da distribuição anfitriã se os arquivos de biblioteca - correspondentes existirem. Isso talvez cause falha de compilação - se um arquivo de biblioteca existir, porém os arquivos de - cabeçalhos correspondentes não. Essas opções impedem o uso - dessas capacidades desnecessárias a partir do anfitrião. - - Prepare File para compilação: -./configure --prefix=/usr --host=$LFS_TGT --build=$(./config.guess) - - Compile o pacote: -make FILE_COMPILE=$(pwd)/build/src/file - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [534]Seção 8.10.2, - “Conteúdo de File.†- -6.8. Findutils-4.9.0 - - O pacote Findutils contém aplicativos para procurar arquivos. Esses - aplicativos são fornecidos para procurar recursivamente dentro de uma - árvore de diretório e para criar, manter e buscar um banco de dados - (geralmente mais rápido que o find recursivo, porém não é confiável se - o banco de dados não for atualizado recentemente). - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 42 MB - -6.8.1. Instalação de Findutils - - Prepare Findutils para compilação: -./configure --prefix=/usr \ - --localstatedir=/var/lib/locate \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [535]Seção 8.57.2, - “Conteúdo do Findutils.†- -6.9. Gawk-5.1.1 - - O pacote Gawk contém aplicativos para manipular arquivos de texto. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 45 MB - -6.9.1. Instalação de Gawk - - Primeiro, garanta que alguns arquivos desnecessários não sejam - instalados: -sed -i 's/extras//' Makefile.in - - Prepare Gawk para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [536]Seção 8.56.2, - “Conteúdo do Gawk.†- -6.10. Grep-3.7 - - O pacote Grep contém aplicativos para procura ao longo do conteúdo de - arquivos. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 26 MB - -6.10.1. Instalação de Grep - - Prepare Grep para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [537]Seção 8.33.2, - “Conteúdo do Grep.†- -6.11. Gzip-1.11 - - O pacote Gzip contém aplicativos para compressão e descompressão de - arquivos. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 11 MB - -6.11.1. Instalação de Gzip - - Prepare Gzip para compilação: -./configure --prefix=/usr --host=$LFS_TGT - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [538]Seção 8.60.2, - “Conteúdo do Gzip.†- -6.12. Make-4.3 - - O pacote Make contém um aplicativo para controlar a geração de - executáveis e outros arquivos não fonte de um pacote a partir de - arquivos fonte. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 15 MB - -6.12.1. Instalação de Make - - Prepare Make para compilação: -./configure --prefix=/usr \ - --without-guile \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) - - O significado da nova opção de configure: - - --without-guile - Apesar de nós estarmos compilando cruzadamente, configure tenta - usar guile a partir do anfitrião de construção se encontrá-lo. - Isso provoca falha de compilação, de forma que essa chave impede - o uso de guile. - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [539]Seção 8.64.2, - “Conteúdo do Make.†- -6.13. Patch-2.7.6 - - O pacote Patch contém um aplicativo para modificar ou criar arquivos - por aplicação de um arquivo “patch†tipicamente criado pelo aplicativo - diff. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 12 MB - -6.13.1. Instalação de Patch - - Prepare Patch para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [540]Seção 8.65.2, - “Conteúdo do Patch.†- -6.14. Sed-4.8 - - O pacote Sed contém um editor de fluxo. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 20 MB - -6.14.1. Instalação de Sed - - Prepare Sed para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [541]Seção 8.29.2, - “Conteúdo do Sed.†- -6.15. Tar-1.34 - - O pacote Tar fornece a habilidade para criar arquivamentos tar bem como - realizar vários outros tipos de manipulação de arquivamento. Tar pode - ser usado em arquivamentos previamente criados para extrair arquivos, - para armazenar arquivos adicionais, ou para atualizar ou listar - arquivos que já foram armazenados. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 38 MB - -6.15.1. Instalação de Tar - - Prepare Tar para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [542]Seção 8.66.2, - “Conteúdo do Tar.†- -6.16. Xz-5.2.5 - - O pacote Xz contém aplicativos para compressão e descompressão de - arquivos. Ele fornece capacidades para os formatos de compressão lzma e - o mais novo xz. Comprimir arquivos de texto com xz gera uma melhor - percentagem de compressão que os tradicionais comandos gzip ou bzip2. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 15 MB - -6.16.1. Instalação de Xz - - Prepare Xz para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) \ - --disable-static \ - --docdir=/usr/share/doc/xz-5.2.5 - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [543]Seção 8.8.2, - “Conteúdo de Xz.†- -6.17. Binutils-2.38 - Passagem 2 - - O pacote Binutils contém um vinculador, um montador, e outras - ferramentas para manusear arquivos objeto. - Tempo aproximado de construção: 1,3 UPC - Espaço em disco exigido: 520 MB - -6.17.1. Instalação de Binutils - - Binutils entrega uma cópia desatualizada de libtool no tarball. Ela - carece de suporte de raiz de sistema de forma que os binários - produzidos serão erroneamente vinculados à bibliotecas originárias da - distribuição anfitriã. Contorne esse problema: -sed '6009s/$add_dir//' -i ltmain.sh - - Crie um diretório de construção separado novamente: -mkdir -v build -cd build - - Prepare Binutils para compilação: -../configure \ - --prefix=/usr \ - --build=$(../config.guess) \ - --host=$LFS_TGT \ - --disable-nls \ - --enable-shared \ - --disable-werror \ - --enable-64-bit-bfd - - O significado das novas opções de configure: - - --enable-shared - Constrói libbfd como uma biblioteca compartilhada. - - --enable-64-bit-bfd - Habilita suporte de 64 bits (em anfitriões com tamanhos de - palavra mais estreitos). Talvez não seja necessário em sistemas - de 64 bits, porém não causa dano. - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [544]Seção 8.18.2, - “Conteúdo de Binutils.†- -6.18. GCC-11.2.0 - Passagem 2 - - O pacote GCC contém a GNU compiler collection, o qual inclui os - compiladores C e C++. - Tempo aproximado de construção: 11 UPC - Espaço em disco exigido: 3,3 GB - -6.18.1. Instalação de GCC - - Como na primeira construção de GCC, os pacotes GMP, MPFR, e MPC são - exigidos. Desempacote os tarballs e mova-os para os nomes de diretório - exigidos: -tar -xf ../mpfr-4.1.0.tar.xz -mv -v mpfr-4.1.0 mpfr -tar -xf ../gmp-6.2.1.tar.xz -mv -v gmp-6.2.1 gmp -tar -xf ../mpc-1.2.1.tar.gz -mv -v mpc-1.2.1 mpc - - Se construindo em x86_64, então mude o nome padrão de diretório para - bibliotecas de 64 bits para “libâ€: -case $(uname -m) in - x86_64) - sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64 - ;; -esac - - Crie um diretório de construção separado novamente: -mkdir -v build -cd build - - Crie um link simbólico que permite que libgcc seja construída com - suporte posix de camadas: -mkdir -pv $LFS_TGT/libgcc -ln -s ../../../libgcc/gthr-posix.h $LFS_TGT/libgcc/gthr-default.h - - Antes de iniciar a construção de GCC, lembre-se de desconfigurar - quaisquer variáveis de ambiente que substituam os sinalizadores de - otimização padrão. - - Agora prepare GCC para compilação: -../configure \ - --build=$(../config.guess) \ - --host=$LFS_TGT \ - --prefix=/usr \ - CC_FOR_TARGET=$LFS_TGT-gcc \ - --with-build-sysroot=$LFS \ - --enable-initfini-array \ - --disable-nls \ - --disable-multilib \ - --disable-decimal-float \ - --disable-libatomic \ - --disable-libgomp \ - --disable-libquadmath \ - --disable-libssp \ - --disable-libvtv \ - --disable-libstdcxx \ - --enable-languages=c,c++ - - O significado das novas opções de configure: - - -with-build-sysroot=$LFS - Normalmente, usar --host garante que um compilador cruzado seja - usado para construir GCC, e que o compilador sabe que tem que - procurar por cabeçalhos e bibliotecas em $LFS. Porém, o sistema - de construção de GCC usa outras ferramentas, que não estão - cientes dessa localização. Essa chave é necessária para que elas - busquem os arquivos necessários em $LFS, e não no anfitrião. - - --enable-initfini-array - Essa opção é automaticamente habilitada quando da construção de - um compilador nativo com um compilador nativo em x86. Porém, - aqui, nós construímos com um compilador cruzado, de forma que - nós precisamos explicitamente configurar essa opção. - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Como um toque final, crie um link simbólico utilitário. Muitos - aplicativos e scripts executam cc em vez de gcc, o que é usado para - manter genéricos os aplicativos e, assim, utilizáveis em todos os tipos - de sistemas UNIX onde o compilador C de GNU nem sempre está instalado. - Executar cc deixa a(o) administradora(r) de sistema livre para decidir - qual compilador C instalar: -ln -sv gcc $LFS/usr/bin/cc - - Detalhes acerca deste pacote estão localizados em [545]Seção 8.26.2, - “Conteúdo de GCC.†- -Capítulo 7. Entrando em Chroot e Construindo Ferramentas Temporárias -Adicionais - -7.1. Introdução - - Este capítulo mostra como construir os últimos bits que faltam no - sistema temporário: as ferramentas necessárias para o maquinário de - construção de vários pacotes. Agora que todas as dependências - circulares foram resolvidas, um ambiente “chrootâ€, completamente - isolado do sistema operacional anfitrião (exceto pelo kernel em - execução), pode ser usado para a construção. - - Para operação adequada do ambiente isolado, alguma comunicação com o - kernel em execução precisa ser estabelecida. Isso é feito por meio dos - assim chamados Sistemas de Arquivos Virtuais de Kernel, que precisam - ser montados quando da entrada no ambiente chroot. Você talvez queira - verificar que eles estejam montados emitindo findmnt. - - Até [546]Seção 7.4, “Entrando no Ambiente Chrootâ€, os comandos precisam - ser executados como root, com a variável LFS configurada. Após a - entrada em chroot, todos os comandos são executados como root, por - sorte sem acesso ao OS do computador no qual que você construiu LFS. - Seja cuidadosa(o) de qualquer maneira, dado que é fácil destruir o - sistema LFS inteiro com comandos mau formados. - -7.2. Mudando Propriedade - -Nota - - Os comandos no resto deste livro precisam ser realizados enquanto - logada(o) como usuária(o) root e não mais como usuária(o) lfs. Também, - verifique duplamente que $LFS está configurada no ambiente do root. - - Atualmente, a hierarquia de diretório inteira em $LFS é de propriedade - da(o) usuária(o) lfs, uma(m) usuária(o) que existe somente no sistema - anfitrião. Se os diretórios e arquivos sob $LFS forem mantidos como - estão, então eles serão de propriedade de um ID de usuária(o) sem uma - conta correspondente. Isso é perigoso, pois uma conta de usuária(o) - criada posteriormente poderia receber esse mesmo ID de usuária(o) e se - tornaria proprietária(o) de todos os arquivos sob $LFS, dessa forma - expondo esses arquivos a possível manipulação maliciosa. - - Para endereçar esse problema, mude a propriedade dos diretórios $LFS/* - para usuária(o) root executando o seguinte comando: -chown -R root:root $LFS/{usr,lib,var,etc,bin,sbin,tools} -case $(uname -m) in - x86_64) chown -R root:root $LFS/lib64 ;; -esac - -7.3. Preparando Sistemas de Arquivos Virtuais de Kernel - - Vários sistemas de arquivos exportados pelo kernel são usados para - comunicar para e oriunda do próprio kernel. Esses sistemas de arquivos - são virtuais uma vez que nenhum espaço de disco é usado por eles. O - conteúdo dos sistemas de arquivos reside em memória. - - Comece criando diretórios nos quais os sistemas de arquivos serão - montados: -mkdir -pv $LFS/{dev,proc,sys,run} - -7.3.1. Criando Nós de Dispositivos Iniciais - - Quando o kernel inicializa o sistema, ele exige a presença de alguns - nós de dispositivos, em particular os dispositivos console e null. Os - nós de dispositivos precisam ser criados no disco rígido de modo que - eles estejam disponíveis antes que o kernel povoe /dev), e - adicionalmente quando Linux é iniciado com init=/bin/bash. Crie os - dispositivos executando os seguintes comandos: -mknod -m 600 $LFS/dev/console c 5 1 -mknod -m 666 $LFS/dev/null c 1 3 - -7.3.2. Montando e Povoando /dev - - O método recomendado de povoar o diretório /dev com dispositivos é - montar um sistema de arquivos virtuais (tal como tmpfs) no diretório - /dev, e permitir que os dispositivos sejam criados dinamicamente - naquele sistema de arquivos virtuais conforme eles sejam detectados ou - acessados. Criação de dispositivos é geralmente feita durante o - processo de inicialização por Udev. Uma vez que esse novo sistema ainda - não tem Udev e ainda não foi inicializado, é necessário montar e povoar - /dev manualmente. Isso é conseguido montando com bind o diretório /dev - do sistema anfitrião. Uma montagem com bind é um tipo especial de - montagem que permite que você crie um espelho de um diretório ou ponto - de montagem para alguma outra localização. Use o seguinte comando para - conseguir isso: -mount -v --bind /dev $LFS/dev - -7.3.3. Montando Sistemas de Arquivos Virtuais de Kernel - - Agora monte os restantes sistemas de arquivos virtuais de kernel: -mount -v --bind /dev/pts $LFS/dev/pts -mount -vt proc proc $LFS/proc -mount -vt sysfs sysfs $LFS/sys -mount -vt tmpfs tmpfs $LFS/run - - Em alguns sistemas anfitrião, /dev/shm é um link simbólico para - /run/shm. O tmpfs /run foi montado acima então, nesse caso, apenas um - diretório precisa ser criado. -if [ -h $LFS/dev/shm ]; then - mkdir -pv $LFS/$(readlink $LFS/dev/shm) -fi - -7.4. Entrando no Ambiente Chroot - - Agora que todos os pacotes que são exigidos para construir o resto das - ferramentas necessárias estão no sistema, é hora de entrar no ambiente - chroot para finalizar a instalação das restantes ferramentas - temporárias. Esse ambiente estará em uso também para a instalação do - sistema final. Como usuária(o) root, execute o seguinte comando para - entrar no ambiente que é, neste momento, povoado apenas com as - ferramentas temporárias: -chroot "$LFS" /usr/bin/env -i \ - HOME=/root \ - TERM="$TERM" \ - PS1='(lfs chroot) \u:\w\$ ' \ - PATH=/usr/bin:/usr/sbin \ - /bin/bash --login - - A opção -i dada para o comando env limpará todas as variáveis do - ambiente chroot. Depois disso, apenas as variáveis HOME, TERM, PS1, e - PATH são configuradas novamente. A construção TERM=$TERM configurará a - variável TERM dentro de chroot para o mesmo valor que fora de chroot. - Essa variável é necessária para aplicativos como vim e less operarem - adequadamente. Se outras variáveis forem desejadas, tais como CFLAGS ou - CXXFLAGS, então esse é um bom lugar para configurá-las novamente. - - Deste ponto em diante, não mais há necessidade de usar a variável LFS, - pois todo o trabalho estará restrito ao sistema de arquivos de LFS. - Isso acontece pois o shell Bash é informado que $LFS agora é o - diretório raiz (/). - - Perceba que /tools/bin não está no PATH. Isso significa que o conjunto - de ferramentas cruzadas não mais será usado no ambiente chroot. - - Note que o prompt de bash dirá I have no name! Isso é normal, pois o - arquivo /etc/passwd ainda não foi criado. - -Nota - - É importante que todos os comandos até o final deste capítulo e nos - capítulos seguintes sejam executados de dentro do ambiente chroot. Se - você deixar esse ambiente por qualquer razão (reiniciar, por exemplo), - então certifique-se que os sistemas de arquivos virtuais de kernel - estejam montados como explicado em [547]Seção 7.3.2, “Montando e - Povoando /dev†e [548]Seção 7.3.3, “Montando Sistemas de Arquivos - Virtuais de Kernel†e entre no chroot novamente antes de continuar a - instalação. - -7.5. Criando Diretórios - - É tempo de criar a estrutura completa no sistema de arquivos LFS. - - Crie alguns diretórios de nível de raiz que não estão no conjunto - limitado exigido nos capítulos anteriores emitindo o seguinte comando: - -Nota - - Alguns dos diretórios abaixo já foram criados anteriormente com - instruções explícitas ou quando da instalação de alguns pacotes. Elas - estão repetidas abaixo para completude. -mkdir -pv /{boot,home,mnt,opt,srv} - - Crie o conjunto exigido de subdiretórios abaixo do nível de raiz - emitindo os seguintes comandos: -mkdir -pv /etc/{opt,sysconfig} -mkdir -pv /lib/firmware -mkdir -pv /media/{floppy,cdrom} -mkdir -pv /usr/{,local/}{include,src} -mkdir -pv /usr/local/{bin,lib,sbin} -mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man} -mkdir -pv /usr/{,local/}share/{misc,terminfo,zoneinfo} -mkdir -pv /usr/{,local/}share/man/man{1..8} -mkdir -pv /var/{cache,local,log,mail,opt,spool} -mkdir -pv /var/lib/{color,misc,locate} - -ln -sfv /run /var/run -ln -sfv /run/lock /var/lock - -install -dv -m 0750 /root -install -dv -m 1777 /tmp /var/tmp - - Diretórios são, por padrão, criados com modo de permissão 755, mas isso - não é desejável para todos os diretórios. Nos comandos acima, duas - mudanças são feitas—uma para o diretório home da(o) usuária(o) root, e - outra para os diretórios para arquivos temporários. - - A primeira mudança de modo assegura que nem qualquer pessoa possa - entrar no diretório /root—o mesmo que uma(m) usuária(o) normal faria - com o diretório home dela ou dele. A segunda mudança de modo garante - que qualquer usuária(o) possa escrever nos diretórios /tmp e /var/tmp, - mas não possa remover deles os arquivos de outras(os) usuárias(os). - Essa última é proibida pelo assim chamado “sticky bitâ€, o bit mais alto - (1) na máscara de bits 1777. - -7.5.1. Nota de conformidade FHS - - A árvore de diretório é baseada no Padrão de Hierarquia de Sistema de - Arquivos (Filesystem Hierarchy Standard - FHS) (disponível em - [549]https://refspecs.linuxfoundation.org/fhs.shtml). O FHS também - especifica a existência opcional de alguns diretórios tais como - /usr/local/games e /usr/share/games. Nós criamos apenas os diretórios - que são necessários. Entretanto, sinta-se livre para criar esses - diretórios. - -7.6. Criando Arquivos Essenciais e Links Simbólicos - - Historicamente, o Linux mantém uma lista dos sistemas de arquivos - montados no arquivo /etc/mtab. Kernels modernos mantém essa lista - internamente e expõem ela para a(o) usuária(o) via sistema de arquivos - /proc. Para satisfazer utilitários que esperam a presença de /etc/mtab, - crie o seguinte link simbólico: -ln -sv /proc/self/mounts /etc/mtab - - Crie um arquivo /etc/hosts básico para ser referenciado em algumas - suítes de teste, e em um dos arquivos de configuração do Perl também: -cat > /etc/hosts << EOF -127.0.0.1 localhost $(hostname) -::1 localhost -EOF - - Para que a(o) usuária(o) root seja capaz de logar e para que o nome - “root†seja reconhecido, precisa existir entradas relevantes nos - arquivos /etc/passwd e /etc/group. - - Crie o arquivo /etc/passwd executando o seguinte comando: -cat > /etc/passwd << "EOF" -root:x:0:0:root:/root:/bin/bash -bin:x:1:1:bin:/dev/null:/usr/bin/false -daemon:x:6:6:Daemon User:/dev/null:/usr/bin/false -messagebus:x:18:18:D-Bus Message Daemon User:/run/dbus:/usr/bin/false -systemd-journal-gateway:x:73:73:systemd Journal Gateway:/:/usr/bin/false -systemd-journal-remote:x:74:74:systemd Journal Remote:/:/usr/bin/false -systemd-journal-upload:x:75:75:systemd Journal Upload:/:/usr/bin/false -systemd-network:x:76:76:systemd Network Management:/:/usr/bin/false -systemd-resolve:x:77:77:systemd Resolver:/:/usr/bin/false -systemd-timesync:x:78:78:systemd Time Synchronization:/:/usr/bin/false -systemd-coredump:x:79:79:systemd Core Dumper:/:/usr/bin/false -uuidd:x:80:80:UUID Generation Daemon User:/dev/null:/usr/bin/false -systemd-oom:x:81:81:systemd Out Of Memory Daemon:/:/usr/bin/false -nobody:x:99:99:Unprivileged User:/dev/null:/usr/bin/false -EOF - - A senha atual para root será configurada mais tarde. - - Crie o arquivo /etc/group executando o seguinte comando: -cat > /etc/group << "EOF" -root:x:0: -bin:x:1:daemon -sys:x:2: -kmem:x:3: -tape:x:4: -tty:x:5: -daemon:x:6: -floppy:x:7: -disk:x:8: -lp:x:9: -dialout:x:10: -audio:x:11: -video:x:12: -utmp:x:13: -usb:x:14: -cdrom:x:15: -adm:x:16: -messagebus:x:18: -systemd-journal:x:23: -input:x:24: -mail:x:34: -kvm:x:61: -systemd-journal-gateway:x:73: -systemd-journal-remote:x:74: -systemd-journal-upload:x:75: -systemd-network:x:76: -systemd-resolve:x:77: -systemd-timesync:x:78: -systemd-coredump:x:79: -uuidd:x:80: -systemd-oom:x:81: -wheel:x:97: -nogroup:x:99: -users:x:999: -EOF - - Os grupos criados não são parte de qualquer padrão—eles são grupos - decididos em parte pelas exigências da configuração de Udev no Capítulo - 9, e em parte pelas convenções comuns empregadas por um número de - distribuições Linux existentes. Em adição, algumas suítes de teste - dependem de usuárias(os) ou grupos específicos. A Base Padrão Linux - (Linux Standard Base - LSB, disponível em - [550]http://refspecs.linuxfoundation.org/lsb.shtml) apenas recomenda - que, além do grupo root com um ID de Grupo (GID) de 0, um grupo bin com - um GID de 1 esteja presente. Todos os outros nomes de grupo e GIDs - podem ser escolhidos livremente pela(o) administradora(r) de sistema - uma vez que aplicativos bem escritos não dependem de números de GID, - mas sim usam o nome do grupo. - - Alguns testes em [551]Capítulo 8 precisam de uma(m) usuária(o) regular. - Nós adicionamos essa(e) usuária(o) aqui e deletamos essa conta ao final - daquele capítulo. -echo "tester:x:101:101::/home/tester:/bin/bash" >> /etc/passwd -echo "tester:x:101:" >> /etc/group -install -o tester -d /home/tester - - Para remover o prompt “I have no name!â€, inicie um novo shell. Uma vez - que os arquivos /etc/passwd e /etc/group foram criados, resolução de - nome de usuária(o) e nome de grupo agora funcionará: -exec /usr/bin/bash --login - - Os aplicativos login, agetty, e init (e outros) usam um número de - arquivos de log para registrar informação tais como quem esteve - logada(o) no sistema e quando. Entretanto, esses aplicativos não - escreverão nos arquivos de log se eles já não existirem. Inicialize os - arquivos de log e dê a eles permissões adequadas: -touch /var/log/{btmp,lastlog,faillog,wtmp} -chgrp -v utmp /var/log/lastlog -chmod -v 664 /var/log/lastlog -chmod -v 600 /var/log/btmp - - O arquivo /var/log/wtmp registra todos os logins e logouts. O arquivo - /var/log/lastlog registra quando cada usuária(o) logou pela última vez. - O arquivo /var/log/faillog registra tentativas de login falhas. O - arquivo /var/log/btmp registra tentativas de login inválidas. - -Nota - - O arquivo /run/utmp registra as(os) usuárias(os) que estão atualmente - logadas(os). Esse arquivo é criado dinamicamente nos scripts de - inicialização. - -7.7. Libstdc++ oriundo de GCC-11.2.0, Passagem 2 - - Quando da construção de [552]gcc-pass2 nós tivemos que adiar a - instalação da biblioteca padrão C++, pois nenhum compilador adequado - estava disponível para compilá-la. Nós não poderíamos usar o compilador - construído naquela seção, por causa de que ele é um compilador nativo e - não deveria ser usado do lado de fora do chroot e riscos de poluir as - bibliotecas com alguns componentes do anfitrião. - Tempo aproximado de construção: 0,8 UPC - Espaço em disco exigido: 1,1 GB - -7.7.1. Instalação de Libstdc++ Alvo - -Nota - - Libstdc++ é parte dos fontes de GCC. Você deveria primeiro desempacotar - o tarball de GCC e mudar para o diretório gcc-11.2.0. - - Crie um link que existe quando da construção de libstdc++ na árvore de - gcc: -ln -s gthr-posix.h libgcc/gthr-default.h - - Crie um diretório de construção separado para libstdc++ e entre nele: -mkdir -v build -cd build - - Prepare libstdc++ para compilação: -../libstdc++-v3/configure \ - CXXFLAGS="-g -O2 -D_GNU_SOURCE" \ - --prefix=/usr \ - --disable-multilib \ - --disable-nls \ - --host=$(uname -m)-lfs-linux-gnu \ - --disable-libstdcxx-pch - - O significado das opções de configure: - - CXXFLAGS="-g -O2 -D_GNU_SOURCE" - Esses sinalizadores são passados pelo Makefile de nível de topo - quando da feitura de uma construção completa de GCC. - - --host=$(uname -m)-lfs-linux-gnu - Nós temos que imitar o que teria acontecido se esse pacote fosse - construído como parte de uma construção completa de compilador. - Essa chave teria sido passada para configure pelo maquinário de - construção do GCC. - - --disable-libstdcxx-pch - Essa chave evita a instalação de arquivos include - pré-compilados, os quais não são necessários neste estágio. - - Compile libstdc++ executando: -make - - Instale a biblioteca: -make install - - Detalhes acerca deste pacote estão localizados em [553]Seção 8.26.2, - “Conteúdo de GCC.†- -7.8. Gettext-0.21 - - O pacote Gettext contém utilitários para internacionalização e - localização. Eles permitem que aplicativos sejam compilados com Suporte - ao Idioma Nativo (Native Language Support - NLS), habilitando-os a - emitir mensagens no idioma nativo da(o) usuária(o). - Tempo aproximado de construção: 1,6 UPC - Espaço em disco exigido: 280 MB - -7.8.1. Instalação de Gettext - - Para nosso conjunto temporário de ferramentas, nós apenas precisamos - instalar três aplicativos originários de Gettext. - - Prepare Gettext para compilação: -./configure --disable-shared - - O significado da opção de configure: - - --disable-shared - Nós não precisamos instalar quaisquer das bibliotecas - compartilhadas de Gettext nesta ocasião, assim não existe - necessidade de construí-las. - - Compile o pacote: -make - - Instale os aplicativos msgfmt, msgmerge, e xgettext: -cp -v gettext-tools/src/{msgfmt,msgmerge,xgettext} /usr/bin - - Detalhes acerca deste pacote estão localizados em [554]Seção 8.31.2, - “Conteúdo do Gettext.†- -7.9. Bison-3.8.2 - - O pacote Bison contém um gerador de analisador. - Tempo aproximado de construção: 0,3 UPC - Espaço em disco exigido: 50 MB - -7.9.1. Instalação de Bison - - Prepare Bison para compilação: -./configure --prefix=/usr \ - --docdir=/usr/share/doc/bison-3.8.2 - - O significado da nova opção de configure: - - --docdir=/usr/share/doc/bison-3.8.2 - Isso diz ao sistema de construção para instalar documentação de - bison em um diretório versionado. - - Compile o pacote: -make - - Instale o pacote: -make install - - Detalhes acerca deste pacote estão localizados em [555]Seção 8.32.2, - “Conteúdo do Bison.†- -7.10. Perl-5.34.0 - - O pacote Perl contém o Practical Extraction and Report Language. - Tempo aproximado de construção: 1,6 UPC - Espaço em disco exigido: 272 MB - -7.10.1. Instalação de Perl - - Prepare Perl para compilação: -sh Configure -des \ - -Dprefix=/usr \ - -Dvendorprefix=/usr \ - -Dprivlib=/usr/lib/perl5/5.34/core_perl \ - -Darchlib=/usr/lib/perl5/5.34/core_perl \ - -Dsitelib=/usr/lib/perl5/5.34/site_perl \ - -Dsitearch=/usr/lib/perl5/5.34/site_perl \ - -Dvendorlib=/usr/lib/perl5/5.34/vendor_perl \ - -Dvendorarch=/usr/lib/perl5/5.34/vendor_perl - - O significado das novas opções de Configure: - - -des - Essa é uma combinação de três opções: -d usa padrões para todos - os itens; -e assegura completamento de todas as tarefas; -s - silencia saída não essencial. - - Compile o pacote: -make - - Instale o pacote: -make install - - Detalhes acerca deste pacote estão localizados em [556]Seção 8.41.2, - “Conteúdo do Perl.†- -7.11. Python-3.10.2 - - O pacote Python 3 contém o ambiente Python de desenvolvimento. Ele é - útil para programação orientada a objetos, escrita de scripts, - prototipagem de aplicativos grandes, ou desenvolvimento de aplicações - inteiras. - Tempo aproximado de construção: 1,2 UPC - Espaço em disco exigido: 359 MB - -7.11.1. Instalação de Python - -Nota - - Existem dois arquivos de pacotes cujos nomes se iniciam com “pythonâ€. - Aquele a se extrair a partir dele é Python-3.10.2.tar.xz (perceba a - primeira letra maiúscula). - - Prepare Python para compilação: -./configure --prefix=/usr \ - --enable-shared \ - --without-ensurepip - - O significado da opção de configure: - - --enable-shared - Essa chave impede instalação de bibliotecas estáticas. - - --without-ensurepip - Essa chave desabilita o instalador de pacote de Python, o qual - não é necessário neste estágio. - - Compile o pacote: -make - -Nota - - Alguns módulos de Python 3 não podem ser construídos agora, por causa - de que as dependências não estão instaladas ainda. O sistema de - construção ainda tenta construí-las, entretanto, de forma que a - compilação de alguns arquivos falhará e a mensagem de compilador talvez - pareça indicar “fatal errorâ€. A mensagem deveria ser ignorada. Apenas - tenha certeza de que o comando de nível de topo make não tenha falhado. - Os módulos opcionais não são necessários agora e eles serão construídos - em [557]Capítulo 8. - - Instale o pacote: -make install - - Detalhes acerca deste pacote estão localizados em [558]Seção 8.50.2, - “Conteúdo do Python 3.†- -7.12. Texinfo-6.8 - - O pacote Texinfo contém aplicativos para leitura, escrita e conversão - de páginas info. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 109 MB - -7.12.1. Instalação de Texinfo - - Primeiro, conserte um problema ao construir o pacote com Glibc-2.34 ou - posterior: -sed -e 's/__attribute_nonnull__/__nonnull/' \ - -i gnulib/lib/malloc/dynarray-skeleton.c - - Prepare Texinfo para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Instale o pacote: -make install - - Detalhes acerca deste pacote estão localizados em [559]Seção 8.67.2, - “Conteúdo do Texinfo.†- -7.13. Util-linux-2.37.4 - - O pacote Util-linux contém diversos aplicativos utilitários. - Tempo aproximado de construção: 0,7 UPC - Espaço em disco exigido: 129 MB - -7.13.1. Instalação de Util-linux - - O FHS recomenda usar o diretório /var/lib/hwclock em vez do usual - diretório /etc como a localização para o arquivo adjtime. Crie esse - diretório com: -mkdir -pv /var/lib/hwclock - - Prepare Util-linux para compilação: -./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ - --libdir=/usr/lib \ - --docdir=/usr/share/doc/util-linux-2.37.4 \ - --disable-chfn-chsh \ - --disable-login \ - --disable-nologin \ - --disable-su \ - --disable-setpriv \ - --disable-runuser \ - --disable-pylibmount \ - --disable-static \ - --without-python \ - runstatedir=/run - - O significado das opções de configure: - - ADJTIME_PATH=/var/lib/hwclock/adjtime - Isso configura a localização do arquivo gravando informação - acerca do relógio de hardware de acordo com o FHS. Isso não é - estritamente necessário para essa ferramenta temporária, porém - impede a criação de um arquivo em outra localização, o qual não - seria sobrescrito ou removido quando da construção do pacote - util-linux final. - - --libdir=/usr/lib - Essa chave assegura que os links simbólicos .so apontem para o - arquivo de biblioteca compartilhada no mesmo diretório - (/usr/lib) diretamente. - - --disable-* - Essas chaves evitam avisos acerca de componentes de construção - que exigem pacotes que não estão no LFS ou ainda não estão - instalados. - - --without-python - Essa chave desabilita o uso de Python. Ela evita tentar - construir ligações desnecessárias. - - runstatedir=/run - Essa chave configura corretamente a localização do soquete usado - por uuidd e libuuid. - - Compile o pacote: -make - - Instale o pacote: -make install - - Detalhes acerca deste pacote estão localizados em [560]Seção 8.75.2, - “Conteúdo do Util-linux.†- -7.14. Limpando e Salvando o Sistema Temporário - -7.14.1. Limpando - - Primeiro, remova a documentação atualmente instalada para evitar que - ela termine no sistema final, e para salvar cerca de 35 MB: -rm -rf /usr/share/{info,man,doc}/* - - Segundo, os arquivos .la de libtool somente são úteis quando vinculados - com bibliotecas estáticas. Eles são desnecessários e potencialmente - danosos quando do uso de bibliotecas compartilhadas dinâmicas, - especialmente quando do uso de sistemas de construção não autotools. - Enquanto ainda no chroot, remova aqueles arquivos agora: -find /usr/{lib,libexec} -name \*.la -delete - - O tamanho atual de sistema é agora de cerca de 3 GB, entretanto o - diretório /tools não mais é necessário. Ele usa cerca de 1 GB de espaço - de disco. Delete ele agora: -rm -rf /tools - -7.14.2. Cópia de segurança - - Neste ponto os aplicativos e bibliotecas essenciais foram criados e seu - sistema LFS atual está em um bom estado. Seu sistema pode agora ser - copiado para posterior reuso. Em caso de falhas fatais nos capítulos - subsequentes, frequentemente acontece que remover tudo e começar de - novo (mais cuidadosamente) é a melhor opção para recuperar. - Infelizmente, todos os arquivos temporários serão removidos, também. - Para evitar desperdiçar tempo extra para refazer tudo o que foi - construído com sucesso, criar uma cópia de segurança do sistema LFS - atual talvez se prove útil. - -Nota - - Todos os passos restantes nesta seção são opcionais. Apesar disso, tão - logo você comece a instalar pacotes em [561]Capítulo 8, os arquivos - temporários serão sobrescritos. Assim, talvez seja uma boa ideia fazer - uma cópia de segurança do sistema atual conforme descrito abaixo. - - Os passos seguintes são realizados a partir do lado de fora do ambiente - chroot. Isso significa, você tem de deixar o ambiente chroot primeiro - antes de continuar. A razão para isso é para conseguir acesso a locais - do sistema de arquivos do lado de fora do ambiente chroot para - armazenar/ler o arquivamento de cópia de segurança o qual não deveria - ser colocado dentro da hierarquia de $LFS por razões de segurança. - - Se você decidiu fazer uma cópia de segurança, então deixe o ambiente - chroot: -exit - -Importante - - Todas as instruções seguintes são executadas por root em seu sistema - anfitrião. Tome cuidado extra acerca dos comandos que você vai - executar, uma vez que erros aqui podem modificar seu sistema anfitrião. - Esteja ciente de que a variável de ambiente LFS está configurada para - usuária(o) lfs por padrão, mas talvez não esteja configurada para root. - - Sempre que comandos forem ser executados por root, tenha certeza de que - você configurou LFS. - - Isso foi discutido em [562]Seção 2.6, “Configurando a Variável $LFSâ€. - - Antes de fazer uma cópia de segurança, desmonte os sistemas de arquivos - virtuais: -umount $LFS/dev/pts -umount $LFS/{sys,proc,run,dev} - - Tenha certeza de que tem pelo menos 1 GB de espaço de disco livre (os - tarballs de fonte serão incluídos no arquivamento de cópia de - segurança) no sistema de arquivos contendo diretório onde você criar o - arquivamento de cópia de segurança. - - Note que as instruções abaixo especificam o diretório home da(o) - usuária(o) root do sistema anfitrião, o qual tipicamente é encontrado - no sistema de arquivos raiz. - - Substitua $HOME por um diretório da sua escolha se você não quiser ter - a cópia de segurança armazenada no diretório home de root. - - Crie o arquivamento de cópia de segurança executando o seguinte - comando: - -Nota - - Por causa de que o arquivamento de cópia de segurança é comprimido, - dura um tempo relativamente longo (mais de 10 minutos) mesmo em um - sistema razoavelmente rápido. -cd $LFS -tar -cJpf $HOME/lfs-temp-tools-11.1-systemd.tar.xz . - -Nota - - Se continuar para o capítulo 8, então não se esqueça de entrar - novamente no ambiente chroot conforme explanado na caixa “Importante†- abaixo. - -7.14.3. Restauro - - No caso de alguns erros tiverem sido feitos e você precisar começar de - novo, você pode usar essa cópia de segurança para restaurar o sistema e - economizar algum tempo de recuperação. Desde que os fontes estão - localizados sob $LFS, eles são incluídos no arquivamento de cópia de - segurança também, de forma que eles não precisam ser baixados - novamente. Após verificar que $LFS está configurada adequadamente, - restaure a cópia de segurança executando os seguintes comandos: - -Atenção - - Os seguintes comandos são extremamente perigosos. Se você executar rm - -rf ./* como a(o) usuária(o) root e você não mudar para o diretório - $LFS ou a variável de ambiente LFS não estiver configurada para a(o) - usuária(o) root, então isso destruirá seu sistema anfitrião inteiro. - VOCÊ ESTà AVISADA(O). -cd $LFS -rm -rf ./* -tar -xpf $HOME/lfs-temp-tools-11.1-systemd.tar.xz - - Novamente, verifique duplamente se o ambiente foi configurado - adequadamente e continue construindo o resto do sistema. - -Importante - - Se você deixou o ambiente chroot para criar uma cópia de segurança ou - reiniciar a construção usando um restauro, então lembre-se de verificar - se os sistemas de arquivos virtuais ainda estão montados (findmnt | - grep $LFS). Se eles não estiverem montados, então remonte-os agora - conforme descrito em [563]Seção 7.3, “Preparando Sistemas de Arquivos - Virtuais de Kernel†e entre novamente no ambiente chroot (veja - [564]Seção 7.4, “Entrando no Ambiente Chrootâ€) antes de continuar. - -Parte IV. Construindo o Sistema LFS - -Capítulo 8. Instalando Aplicativos Básicos de Sistema - -8.1. Introdução - - Neste capítulo, nós começamos a construir o sistema LFS pra valer. - - A instalação desse software é simples. 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 é saber para que cada pacote é usado e - porque você (ou o sistema) talvez precise dele. - - Nós não recomendamos usar otimizações. Elas podem fazer com que um - aplicativo execute ligeiramente mais rápido, mas elas também talvez - causem dificuldades de compilação e problemas quando executar o - aplicativo. Se um pacote se recusar a compilar quando usar otimização, - então tente compilá-lo sem otimização e veja se isso conserta o - problema. Mesmo se o pacote compilar quando usar otimização, existe o - risco de que ele talvez tenha sido compilado incorretamente devido às - complexas interações entre o código e ferramentas de construção. Note - também que as opções -march e -mtune usando valores não especificados - no livro não foram testadas. Isso talvez cause problemas com os pacotes - do conjunto de ferramentas (Binutils, GCC e Glibc). Os pequenos ganhos - potenciais alcançados usando otimizações de compilador frequentemente - são superados pelos riscos. Construtoras(es) de primeira vez de LFS são - encorajadas(os) a construir sem otimizações personalizadas. O sistema - subsequente ainda executará muito rápido e será estável ao mesmo tempo. - - Antes das instruções de instalação, cada página de instalação fornece - informação acerca 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 - bibliotecas (juntamente com breves descrições) que o pacote instala. - -Nota - - Os valores de UPC e espaço de disco exigido incluem dados de suíte de - teste para todos os pacotes aplicáveis em [565]Capítulo 8. Os valores - de UPC foram calculados usando um núcleo sozinho de CPU (-j1) para - todas as operações. - -8.1.1. Acerca de bibliotecas - - Em geral, as(os) editoras(es) de LFS desencorajam construir e instalar - bibliotecas estáticas. O propósito original para a maioria das - bibliotecas estáticas tem sido tornado obsoleto 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 todos os - aplicativos que usam a biblioteca estática precisarão ser vinculados de - novo à 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) talvez nem mesmo sejam conhecidos. - - Nos procedimentos neste capítulo, nós removemos ou desabilitamos a - instalação da maioria das bibliotecas estáticas. Usualmente isso é - feito passando-se uma opção --disable-static para 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 - essencial para o processo geral de construção de pacote. - - Para uma discussão mais completa acerca de bibliotecas, veja-se a - discussão [566]Bibliotecas: Estática ou compartilhada? no livro BLFS. - -8.2. Gerenciamento de Pacote - - Gerenciamento de Pacote é uma adição frequentemente solicitada ao Livro - LFS. Um Gerenciador de Pacote permite monitorar a instalação de - arquivos tornando fácil remover e atualizar pacotes. Assim como os - arquivos binários e bibliotecas, um gerenciador de pacote lidará com a - instalação de arquivos de configuração. Antes que você comece a - questionar, NÃO—esta seção não falará nem recomendará qualquer - gerenciador de pacote em particular. O que ela fornece é um resumo - acerca das técnicas mais populares e como elas funcionam. O gerenciador - de pacote perfeito para você talvez esteja entre essas técnicas ou - talvez seja uma combinação de duas ou mais dessas técnicas. Esta seção - menciona brevemente problemas que talvez surjam quando da atualização - de pacotes. - - Algumas razões porque nenhum gerenciador de pacote é mencionado em LFS - ou BLFS incluem: - * Lidar com gerenciamento de pacote retira o foco das finalidades - desses livros—ensinar como um sistema Linux é construído. - * Existem múltiplas soluções para gerenciamento de pacote, cada uma - tendo seus pontos fortes e fracos. Incluir uma que satisfaça todas - as audiências é difícil. - - Existem algumas dicas escritas no tópico acerca de gerenciamento de - pacote. Visite o [567]Hints Project e veja se uma delas se adéqua às - suas necessidades. - -8.2.1. Problemas de Atualização - - Um Gerenciador de Pacote torna fácil atualizar para versões mais novas - quando elas são liberadas. Geralmente as instruções nos livros LFS e - BLFS podem ser usadas para atualizar para versões mais novas. Aqui - estão alguns pontos que você deveria estar ciente quando da atualização - de pacotes, especialmente em um sistema em execução. - * Se o kernel Linux precisar ser atualizado (por exemplo, de 5.10.17 - para 5.10.18 ou 5.11.1), então nada mais precisa ser reconstruído. - O sistema seguirá funcionando bem graças à borda bem definida entre - kernel e espaço de usuária(o). Especificamente, os cabeçalhos de - API de Linux não precisam ser (e não deveriam ser, veja-se o - próximo item) atualizados juntamente com o kernel. Você precisará - reiniciar seu sistema para usar o kernel atualizado. - * Se os cabeçalhos de API de Linux ou Glibc precisarem ser - atualizados para uma versão mais nova, (por exemplo, de glibc-2.31 - para glibc-2.32), então é mais seguro reconstruir LFS. Ainda que - você talvez seja capaz de reconstruir todos os pacotes na ordem de - dependência deles, nós não recomendamos isso. - * Se um pacote contendo uma biblioteca compartilhada for atualizado, - e se o nome da biblioteca mudar, então quaisquer pacotes - dinamicamente vinculados à biblioteca precisam ser recompilados com - a finalidade de vincular à biblioteca mais nova. (Note que não - existe correlação entre a versão de pacote e o nome da biblioteca). - Por exemplo, considere um pacote foo-1.2.3 que instala uma - biblioteca compartilhada com nome libfoo.so.1. Se você atualizar o - pacote para uma versão mais nova foo-1.2.4 que instala uma - biblioteca compartilhada com nome libfoo.so.2. Nesse caso, - quaisquer pacotes que estiverem dinamicamente vinculados à - libfoo.so.1 precisam ser recompilados para vincular à libfoo.so.2 - com a finalidade de usar a nova versão de biblioteca. Você não - deveria remover as bibliotecas anteriores a menos que todos os - pacotes dependentes sejam recompilados. - * Se um pacote contendo uma biblioteca compartilhada for atualizado, - e o nome da biblioteca não mudar, porém o número de versão do - arquivo de biblioteca decrescer (por exemplo, o nome da biblioteca - é mantido como libfoo.so.1, porém o nome do arquivo de biblioteca é - modificado de libfoo.so.1.25 para libfoo.so.1.24), então você - deveria remover o arquivo de biblioteca originário da versão - previamente instalada (libfoo.so.1.25 no caso). Ou, uma execução de - ldconfig (por você mesmo usando uma linha de comando, ou pela - instalação de algum pacote) reconfigurará o link simbólico - libfoo.so.1 para apontar para o antigo arquivo de biblioteca, pois - ele aparenta ter uma versão “mais novaâ€, uma vez que seu número de - versão é mais largo. Essa situação talvez aconteceu se você teve - que desatualizar um pacote, ou o pacote muda repentinamente o - esquema de versionamento de arquivos de biblioteca. - * Se um pacote contendo uma biblioteca compartilhada for atualizado, - e o nome da biblioteca não mudar, porém um problema severo - (especialmente, uma vulnerabilidade de segurança) for corrigido, - então todos os aplicativos em execução vinculados à biblioteca - compartilhada deveriam ser reiniciados. O seguinte comando, - executado como root após atualização, listará o que está usando as - versões antigas daquelas bibliotecas (substitua libfoo com o nome - da biblioteca): -grep -l -e 'libfoo.*deleted' /proc/*/maps | - tr -cd 0-9\\n | xargs -r ps u - Se OpenSSH estiver sendo usado para acessar o sistema e ele estiver - vinculado à biblioteca atualizada, então você precisa reiniciar o - serviço sshd, então deslogar-se, logar-se novamente, e reexecutar - aquele comando para confirmar que nada ainda está usando as - bibliotecas deletadas. - * Se um binário ou uma biblioteca compartilhada for sobrescrito, - então os processos usando o código ou dados no binário ou - biblioteca talvez quebrem. A maneira correta para atualizar um - binário ou uma biblioteca compartilhada sem causar quebra ao - processo é removê-lo primeiro, então instalar a versão nova na - posição. O comando install fornecido por Coreutils já implementou - isso e a maioria dos pacotes usa ele para instalar binários e - bibliotecas. Isso significa que você não estaria encrencada(o) por - esse problema a maior parte do tempo. Entretanto, o processo de - instalação de alguns pacotes (notadamente Mozilla JS em BLFS) - apenas sobrescreve o arquivo se ele existir e causa uma quebra, de - forma que é mais seguro salvar seu trabalho e fechar processos em - execução desnecessários antes de atualizar um pacote. - -8.2.2. Técnicas de Gerenciamento de Pacote - - As seguintes são algumas técnicas comuns de gerenciamento de pacote. - Antes de se decidir acerca de um gerenciador de pacote, pesquise sobre - as várias técnicas, particularmente os pontos fracos do esquema em - particular. - -8.2.2.1. Está Tudo na Minha Cabeça! - - Sim, isso é uma técnica de gerenciamento de pacote. Algumas pessoas não - encontram a necessidade para um gerenciador de pacote, pois elas - conhecem os pacotes intimamente e sabem quais arquivos estão instalados - por cada pacote. Algumas(ns) usuárias(os) também não precisam de - qualquer gerenciamento de pacote, pois elas(es) planejam reconstruir o - sistema inteiro quando um pacote for mudado. - -8.2.2.2. Instalação em Diretórios Separados - - Esse é um gerenciamento de pacote simplista que não necessita de - qualquer pacote extra para gerenciar as instalações. Cada pacote é - instalado em um diretório separado. Por exemplo, o pacote foo-1.1 é - instalado em /usr/pkg/foo-1.1 e um link simbólico é feito de - /usr/pkg/foo para /usr/pkg/foo-1.1. Quando da instalação de uma nova - versão foo-1.2, ela é instalada em /usr/pkg/foo-1.2 e o link simbólico - anterior é substituído por um link simbólico para a nova versão. - - Variáveis de ambiente tais como PATH, LD_LIBRARY_PATH, MANPATH, - INFOPATH e CPPFLAGS precisam ser expandidas para incluir /usr/pkg/foo. - Para mais que uns poucos pacotes, esse esquema se torna ingerenciável. - -8.2.2.3. Gerenciamento de Pacote Estilo Link Simbólico - - Essa é uma variação da técnica de gerenciamento de pacote anterior. - Cada pacote é instalado similar ao esquema anterior. Mas, em vez de - fazer o link simbólico, cada arquivo é simbolicamente vinculado à - hierarquia /usr. Isso remove a necessidade de expandir as variáveis de - ambiente. Ainda que os links simbólicos possam ser criados pela(o) - usuária(o) para automatizar a criação, muitos gerenciadores de pacote - tem sido escritos usando essa abordagem. Alguns dos populares inclui - Stow, Epkg, Graft, e Depot. - - A instalação precisa ser falseada, de modo que o pacote pense que está - instalado em /usr, ainda que, na realidade, ele esteja instalado na - hierarquia /usr/pkg. Instalar dessa maneira geralmente não é uma tarefa - trivial. Por exemplo, considere que você está instalando um pacote - libfoo-1.1. As seguintes instruções talvez não instalem adequadamente o - pacote: -./configure --prefix=/usr/pkg/libfoo/1.1 -make -make install - - A instalação funcionará, mas os pacotes dependentes talvez não se - vinculem à libfoo conforme você esperaria. Se você compilar um pacote - que vincula à libfoo, então você talvez note que ele está vinculado a - /usr/pkg/libfoo/1.1/lib/libfoo.so.1 em vez de /usr/lib/libfoo.so.1 como - você esperaria. A abordagem correta é usar a estratégia DESTDIR para - falsear a instalação do pacote. Essa abordagem funciona como se segue: -./configure --prefix=/usr -make -make DESTDIR=/usr/pkg/libfoo/1.1 install - - A maioria dos pacotes suporta essa abordagem, mas existem alguns que - não. Para os pacotes não conformes, você talvez ou precise instalar - manualmente o pacote, ou você talvez ache que é mais fácil instalar - alguns pacotes problemáticos em /opt. - -8.2.2.4. Baseado em Marca Temporal - - Nessa técnica, um arquivo é marcado temporalmente antes da instalação - do pacote. Após a instalação, um simples uso do comando find com as - opções apropriadas pode gerar um registro de todos os arquivos - instalados após o arquivo de marca temporal ser criado. Um gerenciador - de pacote escrito com essa abordagem é instalação-registro. - - Ainda que esse esquema tenha a vantagem de ser simples, ele tem duas - desvantagens. Se, durante a instalação, os arquivos forem instalados - com qualquer marca temporal outra que a hora atual, então aqueles - arquivos não serão rastreados pelo gerenciador de pacote. Além disso, - esse esquema pode ser usado apenas quando um pacote for instalado de - cada vez. Os registros não são confiáveis se dois pacotes estão sendo - instalados em dois consoles. - -8.2.2.5. Scripts de Rastreamento de Instalação - - Nessa abordagem, os comandos que os scripts de instalação realizam são - gravados. Existem duas técnicas que se pode usar: - - A variável de ambiente LD_PRELOAD pode ser configurada para apontar - para uma biblioteca a ser pré-carregada antes da instalação. Durante a - instalação, essa biblioteca rastreia os pacotes que estão sendo - instalados anexando-se a vários executáveis tais como cp, install, mv e - rastreando as chamadas de sistema que modificam o sistema de arquivos. - Para que essa abordagem funcione, todos os executáveis precisam ser - dinamicamente vinculados sem o bit suid ou sgid. Pré-carregar a - biblioteca talvez cause alguns efeitos colaterais indesejados durante a - instalação. Portanto, aconselha-se que se realize alguns testes para - garantir que o gerenciador de pacote não quebre nada e registre todos - os arquivos adequados. - - A segunda técnica é usar strace, que registra todas as chamadas de - sistema feitas durante a execução dos scripts de instalação. - -8.2.2.6. Criando Arquivamentos de Pacote - - Nesse esquema, a instalação do pacote é falseada em uma árvore separada - como descrito no gerenciamento de pacote estilo Link Simbólico. Após a - instalação, um arquivamento de pacote é criado usando os arquivos - instalados. Esse arquivamento é então usado para instalar o pacote - tanto na máquina local quanto pode até ser usado para instalar o pacote - em outras máquinas. - - Essa abordagem é usada pela maioria dos gerenciadores de pacote - encontrados nas distribuições comerciais. Exemplos de gerenciadores de - pacote que seguem essa abordagem são RPM (o qual, incidentalmente, é - exigido pela [568]Linux Standard Base Specification), pkg-utils, apt do - Debian, e sistema Portage do Gentoo. Uma dica descrevendo como adotar - esse estilo de gerenciamento de pacote para sistemas LFS está - localizada em - [569]https://www.linuxfromscratch.org/hints/downloads/files/fakeroot.tx - t. - - Criação de arquivos pacote que incluem informação de dependência é - complexa e está além do escopo de LFS. - - Slackware usa um sistema baseado em tar para arquivamentos de pacote. - Esse sistema intencionalmente não manuseia dependências de pacote como - gerenciadores de pacote mais complexos fazem. Para detalhes de - gerenciamento de pacote Slackware, veja - [570]http://www.slackbook.org/html/package-management.html. - -8.2.2.7. Gerenciamento Baseado em Usuária(o) - - Esse esquema, único para LFS, foi concebido por Matthias Benkmann, e - está disponível a partir do [571]Hints Project. Nesse esquema, cada - pacote é instalado como uma(m) usuária(o) separada(o) nos locais - padrão. Arquivos pertencentes a um pacote são facilmente identificados - checando o ID de usuária(o). As características e deficiências dessa - abordagem são muito complexas para serem descritas nesta seção. Para os - detalhes, por favor veja a dica em - [572]https://www.linuxfromscratch.org/hints/downloads/files/more_contro - l_and_pkg_man.txt. - -8.2.3. Implantando LFS em Múltiplos Sistemas - - Uma das vantagens de um sistema LFS é a de que não existem arquivos que - dependam da posição de arquivos em um sistema de disco. Clonar uma - construção LFS para outro computador com a mesma arquitetura que a do - sistema base é tão simples quanto usar tar na partição LFS que contém o - diretório raiz (cerca de 250MB descomprimido para uma construção base - LFS), copiando aquele arquivo via transferência de rede ou CD-ROM para - o novo sistema e expandindo-o. A partir daquele ponto, uns poucos - arquivos de configuração terão que ser mudados. Arquivos de - configuração que talvez precisem ser atualizados incluem: /etc/hosts, - /etc/fstab, /etc/passwd, /etc/group, /etc/shadow, e /etc/ld.so.conf. - - Um kernel personalizado talvez seja necessário ser construído para o - novo sistema dependendo das diferenças entre hardware de sistema e a - configuração original do kernel. - -Nota - - Tem havido alguns relatos de problemas quando da cópia entre - arquiteturas similares, porém não idênticas. Por exemplo, o conjunto de - instrução para um sistema Intel não é idêntico com um processador AMD, - e versões posteriores de alguns processadores talvez tenham instruções - que estão indisponíveis em versões anteriores. - - Finalmente, o novo sistema tem de ser tornado inicializável via - [573]Seção 10.4, “Usando o GRUB para Configurar o Processo de - Inicializaçãoâ€. - -8.3. Man-pages-5.13 - - O pacote Man-pages contém mais que 2.200 páginas de manual. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 33 MB - -8.3.1. Instalação de Man-pages - - Instale Man-pages executando: -make prefix=/usr install - -8.3.2. Conteúdo de Man-pages - - Arquivos instalados: várias páginas de manual - -Breves Descrições - - man pages - - Descreve funções da linguagem de programação C, arquivos importantes de - dispositivo e arquivos significantes de configuração - -8.4. Iana-Etc-20220207 - - O pacote Iana-Etc fornece dados para serviços e protocolos de rede. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 4,7 MB - -8.4.1. Instalação de Iana-Etc - - Para esse pacote, nós apenas precisamos copiar os arquivos para o - lugar: -cp services protocols /etc - -8.4.2. Conteúdo de Iana-Etc - - Arquivos instalados: /etc/protocols e /etc/services - -Breves Descrições - - /etc/protocols - - Descreve os vários protocolos DARPA de Internet que estão disponíveis a - partir do subsistema TCP/IP - - /etc/services - - Fornece um mapeamento entre nomes textuais amigáveis para serviços de - internet e seus números de porta atribuídos e tipos de protocolos não - expostos - -8.5. Glibc-2.35 - - O pacote Glibc contém a biblioteca C principal. Essa biblioteca fornece - as rotinas básicas para alocação de memória, busca em diretórios, - abertura e fechamento de arquivos, leitura e escrita de arquivos, - manuseio de sequências de caracteres, correspondência de padrões, - aritmética, e daí por diante. - Tempo aproximado de construção: 24 UPC - Espaço em disco exigido: 2,8 GB - -8.5.1. Instalação de Glibc - - Alguns dos aplicativos Glibc usam o diretório não conforme com FHS - /var/db para armazenar seus dados em tempo de execução. Aplique a - seguinte correção para fazer com que tais aplicativos armazenem seus - dados em tempo de execução nos locais conformes com FHS: -patch -Np1 -i ../glibc-2.35-fhs-1.patch - - A documentação de Glibc recomenda construir Glibc em um diretório - dedicado à construção: -mkdir -v build -cd build - - Garanta que os utilitários ldconfig e sln serão instalados no - /usr/sbin: -echo "rootsbindir=/usr/sbin" > configparms - - Prepare Glibc para compilação: -../configure --prefix=/usr \ - --disable-werror \ - --enable-kernel=3.2 \ - --enable-stack-protector=strong \ - --with-headers=/usr/include \ - libc_cv_slibdir=/usr/lib - - O significado das opções de configure: - - --disable-werror - Essa opção desabilita a opção -Werror passada para GCC. Isso é - necessário para a execução da suíte de teste. - - --enable-kernel=3.2 - Essa opção diz ao sistema de construção que este glibc talvez - seja usado com kernels tão antigos quanto 3.2. Isso significa - que a geração de contornos no caso de uma chamada de sistema - introduzida em uma versão posterior não pode ser usada. - - --enable-stack-protector=strong - Essa opção aumenta a segurança de sistema adicionando código - extra para verificar estouros de buffer, tais como ataques de - esmagamento de pilha. - - --with-headers=/usr/include - Essa opção diz ao sistema de construção onde encontrar os - cabeçalhos de API de kernel. - - libc_cv_slibdir=/usr/lib - Essa variável configura a biblioteca correta para todos os - sistemas. Nós não queremos que lib64 seja usada. - - Compile o pacote: -make - -Importante - - Nesta seção, a suíte de teste para Glibc é considerada crítica. Não - pule sob qualquer circunstância. - - Geralmente uns poucos testes não passam. As falhas de teste listadas - abaixo são usualmente seguras ignorar. -make check - - Você talvez veja algumas falhas de teste. A suíte de teste de Glibc é - de alguma forma dependente do sistema anfitrião. Umas poucas falhas - saídas de mais que 4.200 testes geralmente podem ignoradas. Esta é uma - lista dos problemas mais comuns vistos para versões recentes de LFS: - * io/tst-lchmod é conhecido por falhar no ambiente chroot de LFS. - * misc/tst-ttyname é conhecido por falhar no ambiente chroot de LFS. - * O teste nss/tst-nss-files-hosts-multi é conhecido por falhar se o - sistema não tiver endereços IP não loopback. - - Mesmo sendo uma mensagem inofensiva, o estágio de instalação de Glibc - reclamará acerca da ausência de /etc/ld.so.conf. Impeça esse alerta - com: -touch /etc/ld.so.conf - - Conserte o Makefile para pular uma verificação de sanidade - desnecessária que falha no ambiente parcial de LFS: -sed '/test-installation/s@$(PERL)@echo not running@' -i ../Makefile - - Instale o pacote: -make install - - Conserte caminho codificado rigidamente para o carregador de executável - em script ldd: -sed '/RTLDLIST=/s@/usr@@g' -i /usr/bin/ldd - - Instale o arquivo de configuração e diretório de tempo de execução para - nscd: -cp -v ../nscd/nscd.conf /etc/nscd.conf -mkdir -pv /var/cache/nscd - - Instale os arquivos de suporte de systemd para nscd: -install -v -Dm644 ../nscd/nscd.tmpfiles /usr/lib/tmpfiles.d/nscd.conf -install -v -Dm644 ../nscd/nscd.service /usr/lib/systemd/system/nscd.service - - Em seguida, instale os locales que podem fazer o sistema responder em - um idioma diferente. Nenhum dos locales é exigido, mas se algum deles - estiver faltando, então as suítes de teste de futuros pacotes pulariam - casos de teste importantes. - - Locales individuais podem ser instalados usando o aplicativo localedef. - Por exemplo, o segundo comando localedef abaixo combina a definição de - locale independente de carácter /usr/share/i18n/locales/cs_CZ com a - definição de mapa de caracteres /usr/share/i18n/charmaps/UTF-8.gz e - adiciona o resultado ao arquivo /usr/lib/locale/locale-archive. As - seguintes instruções instalarão o conjunto mínimo de locales necessário - para a cobertura ótima de testes: -mkdir -pv /usr/lib/locale -localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true -localedef -i cs_CZ -f UTF-8 cs_CZ.UTF-8 -localedef -i de_DE -f ISO-8859-1 de_DE -localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro -localedef -i de_DE -f UTF-8 de_DE.UTF-8 -localedef -i el_GR -f ISO-8859-7 el_GR -localedef -i en_GB -f ISO-8859-1 en_GB -localedef -i en_GB -f UTF-8 en_GB.UTF-8 -localedef -i en_HK -f ISO-8859-1 en_HK -localedef -i en_PH -f ISO-8859-1 en_PH -localedef -i en_US -f ISO-8859-1 en_US -localedef -i en_US -f UTF-8 en_US.UTF-8 -localedef -i es_ES -f ISO-8859-15 es_ES@euro -localedef -i es_MX -f ISO-8859-1 es_MX -localedef -i fa_IR -f UTF-8 fa_IR -localedef -i fr_FR -f ISO-8859-1 fr_FR -localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro -localedef -i fr_FR -f UTF-8 fr_FR.UTF-8 -localedef -i is_IS -f ISO-8859-1 is_IS -localedef -i is_IS -f UTF-8 is_IS.UTF-8 -localedef -i it_IT -f ISO-8859-1 it_IT -localedef -i it_IT -f ISO-8859-15 it_IT@euro -localedef -i it_IT -f UTF-8 it_IT.UTF-8 -localedef -i ja_JP -f EUC-JP ja_JP -localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true -localedef -i ja_JP -f UTF-8 ja_JP.UTF-8 -localedef -i nl_NL@euro -f ISO-8859-15 nl_NL@euro -localedef -i ru_RU -f KOI8-R ru_RU.KOI8-R -localedef -i ru_RU -f UTF-8 ru_RU.UTF-8 -localedef -i se_NO -f UTF-8 se_NO.UTF-8 -localedef -i ta_IN -f UTF-8 ta_IN.UTF-8 -localedef -i tr_TR -f UTF-8 tr_TR.UTF-8 -localedef -i zh_CN -f GB18030 zh_CN.GB18030 -localedef -i zh_HK -f BIG5-HKSCS zh_HK.BIG5-HKSCS -localedef -i zh_TW -f UTF-8 zh_TW.UTF-8 - - Em adição, instale o locale para seu próprio país, idioma e conjunto de - caracteres. - - Alternativamente, instale todos os locales listados no arquivo - glibc-2.35/localedata/SUPPORTED (inclui cada locale listado acima e - muitos mais) de uma vez com o seguinte comando consumidor de tempo: -make localedata/install-locales - - Então, use o comando localedef para criar e instalar locales não - listados no arquivo glibc-2.35/localedata/SUPPORTED quando você - precisar deles. Por exemplo, os seguintes dois locales são necessários - para alguns testes posteriormente neste capítulo: -localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true -localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true - -Nota - - Glibc agora usa libidn2 quando da resolução de nomes - internacionalizados de domínio. Essa é uma dependência de tempo de - execução. Se essa capacidade for necessária, então as instruções para - instalar libidn2 estão na [574]página libidn2 de BLFS. - -8.5.2. Configurando Glibc - -8.5.2.1. Adicionando nsswitch.conf - - O arquivo /etc/nsswitch.conf precisa ser criado, pois os padrões de - Glibc não funcionam bem em um ambiente em rede. - - Crie um novo arquivo /etc/nsswitch.conf executando o seguinte: -cat > /etc/nsswitch.conf << "EOF" -# Begin /etc/nsswitch.conf - -passwd: files -group: files -shadow: files - -hosts: files dns -networks: files - -protocols: files -services: files -ethers: files -rpc: files - -# End /etc/nsswitch.conf -EOF - -8.5.2.2. Adicionando dados de fuso horário - - Instale e configure os dados de fuso horário com o seguinte: -tar -xf ../../tzdata2021e.tar.gz - -ZONEINFO=/usr/share/zoneinfo -mkdir -pv $ZONEINFO/{posix,right} - -for tz in etcetera southamerica northamerica europe africa antarctica \ - asia australasia backward; do - zic -L /dev/null -d $ZONEINFO ${tz} - zic -L /dev/null -d $ZONEINFO/posix ${tz} - zic -L leapseconds -d $ZONEINFO/right ${tz} -done - -cp -v zone.tab zone1970.tab iso3166.tab $ZONEINFO -zic -d $ZONEINFO -p America/New_York -unset ZONEINFO - - O significado dos comandos zic: - - zic -L /dev/null ... - Isso cria fusos horários posix sem quaisquer segundos bissextos. - É convencional colocá-los em ambos zoneinfo e zoneinfo/posix. É - necessário colocar os fusos horários POSIX em zoneinfo, do - contrário várias suítes de teste reportarão erros. Em um sistema - embarcado, onde o espaço é apertado e você não pretende nunca - atualizar os fusos horários, você poderia economizar 1,9 MB não - usando o diretório posix, mas alguns aplicativos ou suítes de - teste poderiam produzir algumas falhas. - - zic -L leapseconds ... - Isso cria fusos horários corretos, incluindo segundos bissextos. - Em um sistema embarcado, onde o espaço é apertado e você não - pretende nunca atualizar os fusos horários, ou se importa com a - hora correta, você poderia economizar 1,9 MB omitindo o - diretório right. - - zic ... -p ... - Isso cria o arquivo posixrules. Nós usamos New York, pois POSIX - exige que as regras de horário de verão estejam de acordo com - regras dos Estados Unidos da América do Norte. - - Uma maneira para determinar o fuso horário local é executando o - seguinte script: -tzselect - - Depois de responder à umas poucas perguntas sobre a localização, o - script retornará o nome do fuso horário (por exemplo, - America/Edmonton). Existem também alguns outros possíveis fusos - horários listados em /usr/share/zoneinfo, tais como Canada/Eastern ou - EST5EDT que não são identificados pelo script, mas podem ser usados. - - Então crie o arquivo /etc/localtime executando: -ln -sfv /usr/share/zoneinfo/ /etc/localtime - - Substitua com o nome do fuso horário selecionado (por exemplo, - Canada/Eastern). - -8.5.2.3. Configurando o Carregador Dinâmico - - Por padrão, o carregador dinâmico (/lib/ld-linux.so.2) procura em /lib - e /usr/lib por bibliotecas dinâmicas que são necessárias para - aplicativos assim que são executados. Entretanto, se existirem - bibliotecas em outros diretórios diferentes de /lib e /usr/lib, então - esses precisam ser adicionados ao arquivo /etc/ld.so.conf para a - finalidade de que o carregador dinâmico encontre elas. Dois diretórios - que são comumente conhecidos por conterem bibliotecas adicionais são - /usr/local/lib e /opt/lib, então adicione esses diretórios ao caminho - de busca do carregador dinâmico. - - Crie um novo arquivo /etc/ld.so.conf executando o seguinte: -cat > /etc/ld.so.conf << "EOF" -# Begin /etc/ld.so.conf -/usr/local/lib -/opt/lib - -EOF - - Se desejado, o carregador dinâmico também pode pesquisar um diretório e - incluir o conteúdo de arquivos encontrados lá. Geralmente os arquivos - nesse diretório include são uma linha especificando o caminho de - biblioteca desejado. Para adicionar essa capacidade, execute os - seguintes comandos: -cat >> /etc/ld.so.conf << "EOF" -# Add an include directory -include /etc/ld.so.conf.d/*.conf - -EOF -mkdir -pv /etc/ld.so.conf.d - -8.5.3. Conteúdo de Glibc - - Aplicativos instalados: gencat, getconf, getent, iconv, iconvconfig, - ldconfig, ldd, lddlibc4, ld.so (link simbólico para - ld-linux-x86-64.so.2 ou ld-linux.so.2), locale, localedef, makedb, - mtrace, nscd, pcprofiledump, pldd, sln, sotruss, sprof, tzselect, - xtrace, zdump, e zic - Bibliotecas instaladas: ld-linux-x86-64.so.2, ld-linux.so.2, - libBrokenLocale.{a,so}, libanl.{a,so}, libc.{a,so}, libc_nonshared.a, - libc_malloc_debug.so, libcrypt.{a,so}, libdl.{a,so.2}, libg.a, - libm.{a,so}, libmcheck.a, libmemusage.so, libmvec.{a,so}, libnsl.so.1, - libnss_compat.so, libnss_dns.so, libnss_files.so, libnss_hesiod.so, - libpcprofile.so, libpthread.{a,so.0}, libresolv.{a,so}, librt.{a,so.1}, - libthread_db.so, e libutil.{a,so.1} - Diretórios instalados: /usr/include/arpa, /usr/include/bits, - /usr/include/gnu, /usr/include/net, /usr/include/netash, - /usr/include/netatalk, /usr/include/netax25, /usr/include/neteconet, - /usr/include/netinet, /usr/include/netipx, /usr/include/netiucv, - /usr/include/netpacket, /usr/include/netrom, /usr/include/netrose, - /usr/include/nfs, /usr/include/protocols, /usr/include/rpc, - /usr/include/sys, /usr/lib/audit, /usr/lib/gconv, /usr/lib/locale, - /usr/libexec/getconf, /usr/share/i18n, /usr/share/zoneinfo, - /var/cache/nscd, e /var/lib/nss_db - -Descrições Curtas - - gencat - - Gera catálogos de mensagem - - getconf - - Exibe os valores de configuração de sistema para variáveis específicas - do sistema de arquivos - - getent - - Obtém entradas a partir de uma base de dados administrativa - - iconv - - Realiza conversão de conjuntos de caracteres - - iconvconfig - - Cria arquivos de configuração de módulos de carregamento rápido de - iconv - - ldconfig - - Configura as ligações de tempo de execução do vinculador dinâmico - - ldd - - Reporta quis bibliotecas compartilhadas são exigidas por cada dado - aplicativo ou biblioteca compartilhada - - lddlibc4 - - Auxilia ldd com arquivos objeto. Isso não existe em arquiteturas mais - novas como x86_64 - - locale - - Imprime várias informações sobre o locale atual - - localedef - - Compila especificações de locale - - makedb - - Cria um banco de dados simples a partir de uma entrada textual - - mtrace - - Lê e interpreta um arquivo de rastreamento de memória e exibe um resumo - em formato legível por humanos - - nscd - - Um daemon que fornece um cache para as solicitações de serviço de nomes - mais comuns - - pcprofiledump - - Despeja informação gerada pelos perfis do PC - - pldd - - Lista objetos dinâmicos compartilhados usados por processos em execução - - sln - - Um aplicativo ln vinculado estaticamente - - sotruss - - Rastreia chamadas de procedimentos de bibliotecas compartilhadas de um - comando especificado - - sprof - - Lê e exibe dados de perfil de objetos compartilhados - - tzselect - - Pergunta ao usuário sobre a localização do sistema e reporta a - correspondente descrição de fuso horário - - xtrace - - Rastreia a execução de um aplicativo exibindo a função atualmente - executada - - zdump - - O despejador de fuso horário - - zic - - O compilador de fuso horário - - ld-*.so - - O aplicativo ajudador para executáveis de bibliotecas compartilhadas - - libBrokenLocale - - Usado internamente por Glibc como um hack grosseiro para executar - aplicativos quebrados (por exemplo, alguns aplicativos Motif). Veja - comentários em glibc-2.35/locale/broken_cur_max.c para mais informação - - libanl - - Uma biblioteca assíncrona de pesquisa de nomes - - libc - - A biblioteca C principal - - libc_malloc_debug - - Liga verificação de alocação de memória quando pré-carregada - - libcrypt - - A biblioteca de criptografia - - libdl - - Biblioteca fictícia que não contém funções. Anteriormente era a - biblioteca de interface do vinculador dinâmico, cujas funções agora - estão em libc - - libg - - Biblioteca fictícia que não contém funções. Anteriormente era uma - biblioteca de tempo de execução para g++ - - libm - - A biblioteca matemática - - libmvec - - A biblioteca de vetor matemático, vinculada conforme necessária quando - libm for usada - - libmcheck - - Liga verificação de alocação de memória quando quando vinculada para - - libmemusage - - Usado por memusage para ajudar a coletar informação sobre o uso de - memória de um aplicativo - - libnsl - - A biblioteca de serviços de rede, agora obsoleta - - libnss_* - - Os módulos de Name Service Switch, contendo funções para resolução de - nomes de hosts, nomes de usuárias(os), nomes de grupos, pseudônimos, - serviços, protocolos, etc. Carregados por libc conforme a configuração - em /etc/nsswitch.conf - - libpcprofile - - Pode ser pré-carregada para PC perfilar um executável - - libpthread - - Biblioteca fictícia que não contém funções. Anteriormente continha - funções fornecendo a maior parte das interfaces especificadas pela - Extensão POSIX.1b de Tempo Real, agora as funções estão em libc - - libresolv - - Contém funções para criação, envio e interpretação de pacotes para os - servidores de nomes de domínio de Internet - - librt - - Contém funções fornecendo a maior parte das interfaces especificadas - pela Extensão POSIX.1b de Tempo Real - - libthread_db - - Contém funções úteis para construir depuradores para aplicativos de - múltiplas camadas - - libutil - - Biblioteca fictícia que não contém funções. Anteriormente continha - código para funções “standard†usadas em muitos utilitários Unix. Essas - funções agora estão em libc - -8.6. Zlib-1.2.11 - - O pacote Zlib contém rotinas de compressão e descompressão usadas por - alguns aplicativos. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 5,0 MB - -8.6.1. Instalação de Zlib - - Prepare Zlib para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - - Remova uma biblioteca estática inútil: -rm -fv /usr/lib/libz.a - -8.6.2. Conteúdo de Zlib - - Bibliotecas instaladas: libz.so - -Descrições Curtas - - libz - - Contém funções de compressão e descompressão usadas por alguns - aplicativos - -8.7. Bzip2-1.0.8 - - O pacote Bzip2 contém aplicativos para comprimir e descomprimir - arquivos. Comprimir arquivos de texto com bzip2 gera uma muito melhor - percentagem de compressão que com o tradicional gzip. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 7,2 MB - -8.7.1. Instalação de Bzip2 - - Aplique um patch que instalará a documentação para esse pacote: -patch -Np1 -i ../bzip2-1.0.8-install_docs-1.patch - - O seguinte comando garante que a instalação de links simbólicos sejam - relativos: -sed -i 's@\(ln -s -f \)$(PREFIX)/bin/@\1@' Makefile - - Garanta que as páginas de manual sejam instaladas na localização - correta: -sed -i "s@(PREFIX)/man@(PREFIX)/share/man@g" Makefile - - Prepare Bzip2 para compilação com: -make -f Makefile-libbz2_so -make clean - - O significado do parâmetro de make: - - -f Makefile-libbz2_so - Isso causará Bzip2 ser construído usando um arquivo Makefile - diferente, nesse caso o arquivo Makefile-libbz2_so, o qual cria - uma biblioteca dinâmica libbz2.so e vincula os utilitários de - Bzip2 a ela. - - Compile e teste o pacote: -make - - Instale os aplicativos: -make PREFIX=/usr install - - Instale a biblioteca compartilhada: -cp -av libbz2.so.* /usr/lib -ln -sv libbz2.so.1.0.8 /usr/lib/libbz2.so - - Instale o binário compartilhado bzip2 no diretório /usr/bin, e - substitua duas cópias de bzip2 com links simbólicos: -cp -v bzip2-shared /usr/bin/bzip2 -for i in /usr/bin/{bzcat,bunzip2}; do - ln -sfv bzip2 $i -done - - Remova uma biblioteca estática inútil: -rm -fv /usr/lib/libbz2.a - -8.7.2. Conteúdo de Bzip2 - - Aplicativos instalados: bunzip2 (link para bzip2), bzcat (link para - bzip2), bzcmp (link para bzdiff), bzdiff, bzegrep (link para bzgrep), - bzfgrep (link para bzgrep), bzgrep, bzip2, bzip2recover, bzless (link - para bzmore), e bzmore - Bibliotecas instaladas: libbz2.so - Diretórios instalados: /usr/share/doc/bzip2-1.0.8 - -Descrições Curtas - - bunzip2 - - Descomprime arquivos compactados com bzip - - bzcat - - Descomprime para a saída padrão - - bzcmp - - Executa cmp em arquivos compactados com bzip - - bzdiff - - Executa diff em arquivos compactados com bzip - - bzegrep - - Executa egrep em arquivos compactados com bzip - - bzfgrep - - Executa fgrep em arquivos compactados com bzip - - bzgrep - - Executa grep em arquivos compactados com bzip - - bzip2 - - Comprime arquivos usando o algoritmo de compressão de texto de - classificação de blocos Burrows-Wheeler com codificação Huffman; a taxa - de compressão é melhor que aquela obtida por compressores mais - convencionais usando algoritmos “Lempel-Zivâ€, como gzip - - bzip2recover - - Tenta recuperar dados a partir de arquivos danificados comprimidos com - bzip - - bzless - - Executa less em arquivos compactados com bzip - - bzmore - - Executa more em arquivos compactados com bzip - - libbz2 - - A biblioteca que implementa compressão de dados de classificação de - blocos sem perdas, usando o algoritmo Burrows-Wheeler - -8.8. Xz-5.2.5 - - O pacote Xz contém aplicativos para compressão e descompressão de - arquivos. Ele fornece capacidades para os formatos de compressão lzma e - o mais novo xz. Comprimir arquivos de texto com xz gera uma melhor - percentagem de compressão que os tradicionais comandos gzip ou bzip2. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 15 MB - -8.8.1. Instalação de Xz - - Prepare Xz para compilação com: -./configure --prefix=/usr \ - --disable-static \ - --docdir=/usr/share/doc/xz-5.2.5 - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.8.2. Conteúdo de Xz - - Aplicativos instalados: lzcat (link para xz), lzcmp (link para xzdiff), - lzdiff (link para xzdiff), lzegrep (link para xzgrep), lzfgrep (link - para xzgrep), lzgrep (link para xzgrep), lzless (link para xzless), - lzma (link para xz), lzmadec, lzmainfo, lzmore (link para xzmore), - unlzma (link para xz), unxz (link para xz), xz, xzcat (link para xz), - xzcmp (link para xzdiff), xzdec, xzdiff, xzegrep (link para xzgrep), - xzfgrep (link para xzgrep), xzgrep, xzless, e xzmore - Bibliotecas instaladas: liblzma.so - Diretórios instalados: /usr/include/lzma e /usr/share/doc/xz-5.2.5 - -Descrições Curtas - - lzcat - - Descomprime para a saída padrão - - lzcmp - - Executa cmp em arquivos comprimidos LZMA - - lzdiff - - Executa diff em arquivos comprimidos LZMA - - lzegrep - - Executa egrep em arquivos comprimidos LZMA - - lzfgrep - - Executa fgrep em arquivos comprimidos LZMA - - lzgrep - - Executa grep em arquivos comprimidos LZMA - - lzless - - Executa less em arquivos comprimidos LZMA - - lzma - - Comprime ou descomprime arquivos usando o formato LZMA - - lzmadec - - Um decodificador pequeno e rápido para arquivos comprimidos LZMA - - lzmainfo - - Exibe informação armazenada no cabeçalho de arquivo comprimido com LZMA - - lzmore - - Executa more em arquivos comprimidos LZMA - - unlzma - - Descomprime arquivos usando o formato LZMA - - unxz - - Descomprime arquivos usando o formato XZ - - xz - - Comprime ou descomprime arquivos usando o formato XZ - - xzcat - - Descomprime para a saída padrão - - xzcmp - - Executa cmp em arquivos comprimidos XZ - - xzdec - - Um decodificador pequeno e rápido para arquivos comprimidos XZ - - xzdiff - - Executa diff em arquivos comprimidos XZ - - xzegrep - - Executa egrep em arquivos comprimidos XZ - - xzfgrep - - Executa fgrep em arquivos comprimidos XZ - - xzgrep - - Executa grep em arquivos comprimidos XZ - - xzless - - Executa less em arquivos comprimidos XZ - - xzmore - - Executa more em arquivos comprimidos XZ - - liblzma - - A biblioteca que implementa compressão de dados de classificação de - blocos, sem perdas, usando o algoritmo de cadeia Lempel-Ziv-Markov - -8.9. Zstd-1.5.2 - - Zstandard é um algoritmo de tempo real de compressão, fornecendo taxas - altas de compressão. Ele oferece um intervalo muito amplo de - combinações de compressão/velocidade, enquanto é apoiado por um - decodificador muito rápido. - Tempo aproximado de construção: 1,1 UPC - Espaço em disco exigido: 55 MB - -8.9.1. Instalação de Zstd - - Compile o pacote: -make - -Nota - - Na saída de teste existem muitos lugares que indicam 'failed'. Essas - são esperadas e apenas 'FAIL' é uma falha atual de teste. Não deveriam - existir falhas de teste. - - Para testar os resultados, execute: -make check - - Instale o pacote: -make prefix=/usr install - - Remova a biblioteca estática: -rm -v /usr/lib/libzstd.a - -8.9.2. Conteúdo de Zstd - - Aplicativos instalados: zstd, zstdcat (link para zstd), zstdgrep, - zstdless, zstdmt (link para zstd), e unzstd (link para zstd) - Bibliotecas instaladas: libzstd.so - -Descrições Curtas - - zstd - - Comprime ou descomprime arquivos usando o formato ZSTD - - zstdgrep - - Executa grep em arquivos comprimidos ZSTD - - zstdless - - Executa less em arquivos comprimidos ZSTD - - libzstd - - A biblioteca que implementa compressão de dados sem perdas, usando o - algoritmo ZSTD - -8.10. File-5.41 - - O pacote File contém um utilitário para determinar o tipo de um dado - arquivo ou arquivos. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 15 MB - -8.10.1. Instalação de File - - Prepare File para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.10.2. Conteúdo de File - - Aplicativos instalados: file - Bibliotecas instaladas: libmagic.so - -Descrições Curtas - - file - - Tenta classificar cada arquivo dado; ele faz isso realizando vários - testes—testes de sistema de arquivos, testes de números mágicos, e - testes de idioma - - libmagic - - Contém rotinas para reconhecimento de números mágicos, usado pelo - aplicativo file - -8.11. Readline-8.1.2 - - O pacote Readline é um conjunto de bibliotecas que oferecem edição de - linha de comando e capacidades de histórico. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 15 MB - -8.11.1. Instalação de Readline - - Reinstalar Readline causará as bibliotecas antigas serem movidas para - .old. Mesmo que isso normalmente não seja um problema, em - alguns casos isso pode deflagrar um defeito de vinculação em ldconfig. - Isso pode ser evitado executando os seguintes dois seds: -sed -i '/MV.*old/d' Makefile.in -sed -i '/{OLDSUFF}/c:' support/shlib-install - - Prepare Readline para compilação: -./configure --prefix=/usr \ - --disable-static \ - --with-curses \ - --docdir=/usr/share/doc/readline-8.1.2 - - O significado da opção de configure: - - --with-curses - Essa opção diz a Readline que ela pode encontrar as funções de - biblioteca de termcap na biblioteca curses, em vez de uma - biblioteca termcap separada. Ela permite a geração de um arquivo - readline.pc correto. - - Compile o pacote: -make SHLIB_LIBS="-lncursesw" - - O significado da opção de make: - - SHLIB_LIBS="-lncursesw" - Essa opção força Readline a vincular com a biblioteca - libncursesw. - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -make SHLIB_LIBS="-lncursesw" install - - Se desejado, instale a documentação: -install -v -m644 doc/*.{ps,pdf,html,dvi} /usr/share/doc/readline-8.1.2 - -8.11.2. Conteúdo de Readline - - Bibliotecas instaladas: libhistory.so e libreadline.so - Diretórios instalados: /usr/include/readline e - /usr/share/doc/readline-8.1.2 - -Descrições Curtas - - libhistory - - Fornece uma consistente interface de usuária(o) para recordar linhas de - histórico - - libreadline - - Fornece um conjunto de comandos para manipular texto digitado em uma - sessão interativa de um aplicativo - -8.12. M4-1.4.19 - - O pacote M4 contém um processador de macro. - Tempo aproximado de construção: 0,7 UPC - Espaço em disco exigido: 49 MB - -8.12.1. Instalação de M4 - - Prepare M4 para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.12.2. Conteúdo de M4 - - Aplicativo instalado: m4 - -Descrições Curtas - - m4 - - Copia os arquivos dados enquanto expande as macros que eles contém. - Essas macros são ou nativas ou definidas pela(o) usuária(o) e podem - receber qualquer número de argumentos. Além de executar expansão de - macro, m4 tem funções nativas para incluir arquivos nomeados, executar - comandos Unix, realizar aritmética de inteiros, manipular texto, - recursão, etc. O aplicativo m4 pode ser usado ou como um front-end para - um compilador ou como um processador de macro independente - -8.13. Bc-5.2.2 - - O pacote Bc contém uma linguagem de processamento numérica de precisão - arbitrária. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 7,1 MB - -8.13.1. Instalação de Bc - - Prepare Bc para compilação: -CC=gcc ./configure --prefix=/usr -G -O3 - - O significado das opções de configure: - - CC=gcc - Esse parâmetro especifica o compilador a usar. - - -O3 - Especifica a optimização a usar. - - -G - Omite partes da suíte de teste que não funcionariam sem um GNU - bc presente. - - Compile o pacote: -make - - Para testar bc, execute: -make test - - Instale o pacote: -make install - -8.13.2. Conteúdo de Bc - - Aplicativos instalados: bc e dc - -Descrições Curtas - - bc - - Uma calculadora de linha de comando - - dc - - Uma calculadora de linha de comando de entrada polonesa - reversa - -8.14. Flex-2.6.4 - - O pacote Flex contém um utilitário para gerar aplicativos que - reconhecem padrões em texto. - Tempo aproximado de construção: 0,4 UPC - Espaço em disco exigido: 32 MB - -8.14.1. Instalação de Flex - - Prepare Flex para compilação: -./configure --prefix=/usr \ - --docdir=/usr/share/doc/flex-2.6.4 \ - --disable-static - - Compile o pacote: -make - - Para testar os resultados (cerca de 0,5 UPC), execute: -make check - - Instale o pacote: -make install - - Uns poucos aplicativos não sabem acerca de flex ainda e tentam executar - seu predecessor, lex. Para suportar esses aplicativos, crie um link - simbólico chamado lex que executa flex em modo de emulação lex: -ln -sv flex /usr/bin/lex - -8.14.2. Conteúdo de Flex - - Aplicativos instalados: flex, flex++ (link para flex), e lex (link para - flex) - Bibliotecas instaladas: libfl.so - Diretórios instalados: /usr/share/doc/flex-2.6.4 - -Descrições Curtas - - flex - - Uma ferramenta para gerar aplicativos que reconhecem padrões em texto; - ele permite, para a versatilidade, especificar as regras para encontrar - padrões, erradicando a necessidade de desenvolver um aplicativo - especializado - - flex++ - - Uma extensão de flex, é usada para gerar código e classes C++. É um - link simbólico para flex - - lex - - Um link simbólico que executa flex em modo de emulação lex - - libfl - - A biblioteca flex - -8.15. Tcl-8.6.12 - - O pacote Tcl contém a Tool Command Language, uma linguagem de script - robusta de propósito geral. O pacote Expect é escrito na linguagem Tcl. - Tempo aproximado de construção: 3,4 UPC - Espaço em disco exigido: 87 MB - -8.15.1. Instalação de Tcl - - Esse pacote e os próximos dois (Expect e DejaGNU) são instalados para - suportar a execução das suítes de teste para binutils e GCC e outros - pacotes. Instalar três pacotes para propósitos de teste talvez pareça - excessivo, mas é muito assegurador, se não essencial, saber que as - ferramentas mais importantes estão funcionando adequadamente. - - Primeiro, desempacote a documentação executando o seguinte comando: -tar -xf ../tcl8.6.12-html.tar.gz --strip-components=1 - - Prepare Tcl para compilação: -SRCDIR=$(pwd) -cd unix -./configure --prefix=/usr \ - --mandir=/usr/share/man \ - $([ "$(uname -m)" = x86_64 ] && echo --enable-64bit) - - O significado das opções de configure: - - $([ "$(uname -m)" = x86_64 ] && echo --enable-64bit) - A construção $() é substituída pela saída do - comando de shell. Aqui essa saída é vazia se executada em uma - máquina de 32 bits, e é --enable-64bit se executada em uma - máquina de 64 bits. - - Construa o pacote: -make - -sed -e "s|$SRCDIR/unix|/usr/lib|" \ - -e "s|$SRCDIR|/usr/include|" \ - -i tclConfig.sh - -sed -e "s|$SRCDIR/unix/pkgs/tdbc1.1.3|/usr/lib/tdbc1.1.3|" \ - -e "s|$SRCDIR/pkgs/tdbc1.1.3/generic|/usr/include|" \ - -e "s|$SRCDIR/pkgs/tdbc1.1.3/library|/usr/lib/tcl8.6|" \ - -e "s|$SRCDIR/pkgs/tdbc1.1.3|/usr/include|" \ - -i pkgs/tdbc1.1.3/tdbcConfig.sh - -sed -e "s|$SRCDIR/unix/pkgs/itcl4.2.2|/usr/lib/itcl4.2.2|" \ - -e "s|$SRCDIR/pkgs/itcl4.2.2/generic|/usr/include|" \ - -e "s|$SRCDIR/pkgs/itcl4.2.2|/usr/include|" \ - -i pkgs/itcl4.2.2/itclConfig.sh - -unset SRCDIR - - As várias instruções “sed†após o comando “make†removem referências ao - diretório de construção dos arquivos de configuração e as substituem - com o diretório de instalação. Isso não é obrigatório para o restante - de LFS, porém talvez seja necessário caso um pacote construído - posteriormente use Tcl. - - Para testar os resultados, execute: -make test - - Instale o pacote: -make install - - Torne as bibliotecas instaladas graváveis de modo que símbolos de - depuração possam ser removidos posteriormente: -chmod -v u+w /usr/lib/libtcl8.6.so - - Instale os cabeçalhos do Tcl. O próximo pacote, Expect, exige elas. -make install-private-headers - - Agora faça um necessário link simbólico: -ln -sfv tclsh8.6 /usr/bin/tclsh - - Renomeie uma página de manual que conflita com uma página de manual de - Perl: -mv /usr/share/man/man3/{Thread,Tcl_Thread}.3 - - Se você transferiu a documentação opcional, então instale ela - executando os seguintes comandos: -mkdir -v -p /usr/share/doc/tcl-8.6.12 -cp -v -r ../html/* /usr/share/doc/tcl-8.6.12 - -8.15.2. Conteúdo de Tcl - - Aplicativos instalados: tclsh (link to tclsh8.6) e tclsh8.6 - Bibliotecas instaladas: libtcl8.6.so e libtclstub8.6.a - -Descrições Curtas - - tclsh8.6 - - O shell de comando de Tcl - - tclsh - - Um link para tclsh8.6 - - libtcl8.6.so - - A biblioteca Tcl - - libtclstub8.6.a - - A biblioteca Stub de Tcl - -8.16. Expect-5.45.4 - - O pacote Expect contém ferramentas para automatizar, via diálogos com - script, aplicativos interativos tais como telnet, ftp, passwd, fsck, - rlogin, e tip. Expect também é útil para testar esses mesmos - aplicativos bem como facilitar todos os tipos de tarefas que são - proibitivamente difíceis com qualquer outra coisa. A estrutura - subjacente de DejaGnu é escrita em Expect. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 3,9 MB - -8.16.1. Instalação de Expect - - Prepare Expect para compilação: -./configure --prefix=/usr \ - --with-tcl=/usr/lib \ - --enable-shared \ - --mandir=/usr/share/man \ - --with-tclinclude=/usr/include - - O significado das opções de configure: - - --with-tcl=/usr/lib - Esse parâmetro é necessário para dizer a configure onde o script - tclConfig.sh está localizado. - - --with-tclinclude=/usr/include - Isso explicitamente diz a Expect onde encontrar os cabeçalhos - internos de Tcl. - - Construa o pacote: -make - - Para testar os resultados, execute: -make test - - Instale o pacote: -make install -ln -svf expect5.45.4/libexpect5.45.4.so /usr/lib - -8.16.2. Conteúdo de Expect - - Aplicativo instalado: expect - Biblioteca instalada: libexpect5.45.4.so - -Descrições Curtas - - expect - - Comunica-se com outros aplicativos interativos de acordo com um script - - libexpect-5.45.4.so - - Contém funções que permitem a Expect ser usado como uma extensão Tcl ou - ser usado diretamente a partir de C ou C++ (sem Tcl) - -8.17. DejaGNU-1.6.3 - - O pacote DejaGnu contém uma estrutura subjacente para executar suítes - de teste em ferramentas GNU. Ele é escrito em expect, a qual usa ela - própria Tcl (Tool Command Language). - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 6,9 MB - -8.17.1. Instalação de DejaGNU - - A(O) desenvolvedora(r) recomenda construir DejaGNU em um diretório - dedicado à construção: -mkdir -v build -cd build - - Prepare DejaGNU para compilação: -../configure --prefix=/usr -makeinfo --html --no-split -o doc/dejagnu.html ../doc/dejagnu.texi -makeinfo --plaintext -o doc/dejagnu.txt ../doc/dejagnu.texi - - Construa e instale o pacote: -make install -install -v -dm755 /usr/share/doc/dejagnu-1.6.3 -install -v -m644 doc/dejagnu.{html,txt} /usr/share/doc/dejagnu-1.6.3 - - Para testar os resultados, execute: -make check - -8.17.2. Conteúdo de DejaGNU - - Aplicativos instalados: dejagnu e runtest - -Descrições Curtas - - dejagnu - - Iniciador de comando auxiliar DejaGNU - - runtest - - Um script encapsulador que localiza o shell expect adequado e, em - seguida, executa o DejaGNU - -8.18. Binutils-2.38 - - O pacote Binutils contém um vinculador, um montador, e outras - ferramentas para manusear arquivos objeto. - Tempo aproximado de construção: 6,1 UPC - Espaço em disco exigido: 4,6 GB - -8.18.1. Instalação de Binutils - - Verifique se os Pseudo Terminais (PTYs) estão funcionando adequadamente - dentro do ambiente chroot executando um teste simples: -expect -c "spawn ls" - - Esse comando deveria retornar o seguinte: -spawn ls - - Se, ao invés, a saída incluir a mensagem abaixo, então o ambiente não - está configurado para operação adequada de PTY. Esse problema precisa - ser resolvido antes de executar as suítes de teste para Binutils e GCC: -The system has no more ptys. -Ask your system administrator to create more. - - A(O) desenvolvedora(r) fez um conjunto curto de comandos para fixar um - problema quando do uso de binutils para construir alguns pacotes BLFS - com Link Time Optimization (LTO) habilitado. Aplique ele agora: -patch -Np1 -i ../binutils-2.38-lto_fix-1.patch - - Agora, faça um conserto identificado pela(o) desenvolvedora(r) que - afeta a construção alguns pacotes: -sed -e '/R_386_TLS_LE /i \ || (TYPE) == R_386_TLS_IE \\' \ - -i ./bfd/elfxx-x86.h - - A documentação de Binutils recomenda construir Binutils em um diretório - dedicado à construção: -mkdir -v build -cd build - - Prepare Binutils para compilação: -../configure --prefix=/usr \ - --enable-gold \ - --enable-ld=default \ - --enable-plugins \ - --enable-shared \ - --disable-werror \ - --enable-64-bit-bfd \ - --with-system-zlib - - O significado dos parâmetros de configure: - - --enable-gold - Constrói o vinculador gold e instala ele como ld.gold - (juntamente com o vinculador padrão). - - --enable-ld=default - Constrói o vinculador bfd original e instala ele como ambos ld - (o vinculador padrão) e ld.bfd. - - --enable-plugins - Habilita suporte de plugin para o vinculador. - - --enable-64-bit-bfd - Habilita suporte de 64 bits (em anfitriões com tamanhos de - palavra mais estreitos). Talvez não seja necessário em sistemas - de 64 bits, porém não causa dano. - - --with-system-zlib - Usa a biblioteca zlib instalada em vez de construir a versão - incluída. - - Compile o pacote: -make tooldir=/usr - - O significado do parâmetro de make: - - tooldir=/usr - Normalmente, o tooldir (o diretório onde os executáveis estarão - ultimamente localizados) é configurado para - $(exec_prefix)/$(target_alias). Por exemplo, máquinas x86_64 - expandiriam isso para /usr/x86_64-pc-linux-gnu. Por causa que - este é um sistema personalizado, esse diretório alvo específico - em /usr não é exigido. $(exec_prefix)/$(target_alias) seria - usado se o sistema fosse usado para compilar cruzadamente (por - exemplo, compilar um pacote em uma máquina Intel que gera código - que pode ser executado em máquinas PowerPC). - -Importante - - A suíte de teste para Binutils nesta seção é considerada crítica. Não - pule sob quaisquer circunstâncias. - - Teste os resultados: -make -k check - - Instale o pacote: -make tooldir=/usr install - - Remova bibliotecas estáticas inúteis: -rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes}.a - -8.18.2. Conteúdo de Binutils - - Aplicativos instalados: addr2line, ar, as, c++filt, dwp, elfedit, - gprof, ld, ld.bfd, ld.gold, nm, objcopy, objdump, ranlib, readelf, - size, strings, e strip - Bibliotecas instaladas: libbfd.so, libctf.so, libctf-nobfd.so, e - libopcodes.so - Diretório instalado: /usr/lib/ldscripts - -Descrições Curtas - - addr2line - - Traduz endereços de aplicativos para nomes de arquivo e números de - linha; dado um endereço e o nome de um executável, ele usa a informação - de depuração no executável para determinar qual arquivo fonte e número - de linha estão associados ao endereço - - ar - - Cria, modifica e extrai a partir de arquivamentos - - as - - Um montador que monta a saída de gcc para dentro de arquivos objeto - - c++filt - - Usado pelo vinculador para desmembrar símbolos C++ e Java e para - impedir que funções sobrecarregadas entrem em conflito - - dwp - - O utilitário de empacotamento DWARF - - elfedit - - Atualiza o cabeçalho ELF de arquivos ELF - - gprof - - Exibe dados do perfil de gráfico de chamada - - ld - - Um vinculador que combina um número de objetos e arquivos de - arquivamento em um arquivo, realocando seus dados e vinculando - referências de símbolos - - ld.gold - - Uma versão reduzida de ld que suporta apenas o formato de arquivo de - objeto elf - - ld.bfd - - Hard link para ld - - nm - - Lista os símbolos que ocorrem em um dado arquivo de objeto - - objcopy - - Traduz um tipo de arquivo de objeto em outro - - objdump - - Exibe informação sobre o dado arquivo de objeto, com opções controlando - a informação particular a ser exibida; a informação mostrada é útil - para programadores que estão trabalhando nas ferramentas de compilação - - ranlib - - Gera um índice do conteúdo de um arquivamento e o armazena no - arquivamento; o índice lista todos os símbolos definidos pelos membros - do arquivamento que são arquivos de objeto realocáveis - - readelf - - Exibe informação sobre binários de tipo ELF - - size - - Lista os tamanhos de seção e o tamanho total para os arquivos de objeto - dados - - strings - - Exibe, para cada arquivo dado, as sequências de caracteres imprimíveis - que são de, no mínimo, o tamanho especificado (padronizado para - quatro); para arquivos de objeto, ele imprime, por padrão, apenas as - sequências de caracteres a partir das seções de inicialização e - carregamento enquanto que para outros tipos de arquivos, ele escaneia o - arquivo inteiro - - strip - - Descarta símbolos de arquivos de objeto - - libbfd - - A biblioteca de Descritor de Arquivo Binário - - libctf - - A biblioteca de suporte de depuração Compat ANSI-C Type Format - - libctf-nobfd - - Uma variante de libctf que não usa funcionalidade de libbfd - - libopcodes - - Uma biblioteca para lidar com opcodes—as versões de “texto legível†de - instruções para o processador; é usado para construir utilitários como - objdump - -8.19. GMP-6.2.1 - - O pacote GMP contém bibliotecas matemáticas. Essas tem funções úteis - para aritmética de precisão arbitrária. - Tempo aproximado de construção: 1,0 UPC - Espaço em disco exigido: 52 MB - -8.19.1. Instalação de GMP - -Nota - - Se você estiver construindo para x86 de 32 bits, mas tem uma CPU capaz - de executar código de 64 bits e você especificou CFLAGS no ambiente, - então o script configure tentará configurar para 64 bits e falhará. - Impeça isso invocando o comando de configure abaixo com -ABI=32 ./configure ... - -Nota - - As configurações padrão de GMP produzem bibliotecas otimizadas para o - processador anfitrião. Se bibliotecas adequadas para processadores - menos capazes que a CPU do anfitrião forem desejadas, então bibliotecas - genéricas podem ser criadas executando o seguinte: -cp -v configfsf.guess config.guess -cp -v configfsf.sub config.sub - - Prepare GMP para compilação: -./configure --prefix=/usr \ - --enable-cxx \ - --disable-static \ - --docdir=/usr/share/doc/gmp-6.2.1 - - O significado das novas opções de configure: - - --enable-cxx - Esse parâmetro habilita suporte a C++ - - --docdir=/usr/share/doc/gmp-6.2.1 - Essa variável especifica o lugar correto para a documentação. - - Compile o pacote e gere a documentação HTML: -make -make html - -Importante - - A suíte de teste para GMP nesta seção é considerada crítica. Não pule - sob quaisquer circunstâncias. - - Teste os resultados: -make check 2>&1 | tee gmp-check-log - -Cuidado - - O código em gmp é altamente otimizado para o processador onde ele é - construído. Ocasionalmente, o código que detecta o processador - identifica errado as capacidades de sistema e existirão erros nos - testes ou outros aplicativos que usam as bibliotecas de gmp com a - mensagem "Illegal instruction". Nesse caso, gmp deveria ser - reconfigurado com a opção --build=x86_64-pc-linux-gnu e reconstruído. - - Certifique-se de que todos os 197 testes na suíte de teste passaram. - Verifique os resultados executando o seguinte comando: -awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log - - Instale o pacote e a documentação dele: -make install -make install-html - -8.19.2. Conteúdo de GMP - - Bibliotecas instaladas: libgmp.so e libgmpxx.so - Diretório instalado: /usr/share/doc/gmp-6.2.1 - -Descrições Curtas - - libgmp - - Contém funções matemáticas de precisão - - libgmpxx - - Contém funções matemáticas de precisão C++ - -8.20. MPFR-4.1.0 - - O pacote MPFR contém funções para matemática de precisão múltipla. - Tempo aproximado de construção: 0,8 UPC - Espaço em disco exigido: 38 MB - -8.20.1. Instalação de MPFR - - Prepare MPFR para compilação: -./configure --prefix=/usr \ - --disable-static \ - --enable-thread-safe \ - --docdir=/usr/share/doc/mpfr-4.1.0 - - Compile o pacote e gere a documentação HTML: -make -make html - -Importante - - A suíte de teste para MPFR nesta seção é considerada crítica. Não pule - sob quaisquer circunstâncias. - - Teste os resultados e certifique-se de que todos os testes passaram: -make check - - Instale o pacote e a documentação dele: -make install -make install-html - -8.20.2. Conteúdo de MPFR - - Biblioteca instalada: libmpfr.so - Diretório instalado: /usr/share/doc/mpfr-4.1.0 - -Descrições Curtas - - libmpfr - - Contém funções matemáticas de precisão múltipla - -8.21. MPC-1.2.1 - - O pacote MPC contém uma biblioteca para a aritmética de números - complexos com precisão arbitrariamente alta e arredondamento correto de - resultado. - Tempo aproximado de construção: 0,3 UPC - Espaço em disco exigido: 21 MB - -8.21.1. Instalação de MPC - - Prepare MPC para compilação: -./configure --prefix=/usr \ - --disable-static \ - --docdir=/usr/share/doc/mpc-1.2.1 - - Compile o pacote e gere a documentação HTML: -make -make html - - Para testar os resultados, execute: -make check - - Instale o pacote e a documentação dele: -make install -make install-html - -8.21.2. Conteúdo de MPC - - Biblioteca instalada: libmpc.so - Diretório instalado: /usr/share/doc/mpc-1.2.1 - -Descrições Curtas - - libmpc - - Contém funções matemáticas complexas - -8.22. Attr-2.5.1 - - O pacote attr contém utilitários para administrar os atributos - estendidos sobre objetos de sistema de arquivos. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 4,1 MB - -8.22.1. Instalação de Attr - - Prepare Attr para compilação: -./configure --prefix=/usr \ - --disable-static \ - --sysconfdir=/etc \ - --docdir=/usr/share/doc/attr-2.5.1 - - Compile o pacote: -make - - Os testes precisam ser executados sobre um sistema de arquivos que - suporte atributos estendidos, tais como os sistemas de arquivos ext2, - ext3 ou ext4. Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.22.2. Conteúdo de Attr - - Aplicativos instalados: attr, getfattr, e setfattr - Biblioteca instalada: libattr.so - Diretórios instalados: /usr/include/attr e /usr/share/doc/attr-2.5.1 - -Descrições Curtas - - attr - - Estende atributos sobre objetos de sistemas de arquivos - - getfattr - - Obtém os atributos estendidos de objetos de sistemas de arquivos - - setfattr - - Configura os atributos estendidos de objetos de sistemas de arquivos - - libattr - - Contém as funções de biblioteca para manipular atributos estendidos - -8.23. Acl-2.3.1 - - O pacote Acl contém utilitários para administrar Listas de Controle de - Acesso, as quais são usadas para definir direitos de acesso - discricionários mais refinados para arquivos e diretórios. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 6,1 MB - -8.23.1. Instalação de Acl - - Prepare Acl para compilação: -./configure --prefix=/usr \ - --disable-static \ - --docdir=/usr/share/doc/acl-2.3.1 - - Compile o pacote: -make - - Os testes de Acl precisam ser executados sobre um sistema de arquivos - que suporte controles de acesso, após Coreutils ter sido construído com - as bibliotecas de Acl. Se desejado, retorne a esse pacote e execute - make check após Coreutils ter sido construído posteriormente neste - capítulo. - - Instale o pacote: -make install - -8.23.2. Conteúdo de Acl - - Aplicativos instalados: chacl, getfacl, e setfacl - Biblioteca instalada: libacl.so - Diretórios instalados: /usr/include/acl e /usr/share/doc/acl-2.3.1 - -Descrições Curtas - - chacl - - Muda a lista de controle de acesso de um arquivo ou diretório - - getfacl - - Obtém listas de controle de acesso de arquivo - - setfacl - - Configura listas de controle de acesso de arquivo - - libacl - - Contém as funções de biblioteca para manipular Listas de Controle de - Acesso - -8.24. Libcap-2.63 - - O pacote Libcap implementa as interfaces de espaço de usuária(o) para - as capacidades POSIX 1003.1e disponíveis em kernels Linux. Essas - capacidades são um particionamento de todo o poderoso privilégio de - root em um conjunto de privilégios distintos. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 2,7 MB - -8.24.1. Instalação de Libcap - - Impeça bibliotecas estáticas de serem instaladas: -sed -i '/install -m.*STA/d' libcap/Makefile - - Compile o pacote: -make prefix=/usr lib=lib - - O significado da opção de make: - - lib=lib - Esse parâmetro configura o diretório de biblioteca para /usr/lib - em vez de /usr/lib64 em x86_64. Ele não tem efeito em x86. - - Para testar os resultados, execute: -make test - - Instale o pacote: -make prefix=/usr lib=lib install - -8.24.2. Conteúdo de Libcap - - Aplicativos instalados: capsh, getcap, getpcaps, e setcap - Bibliotecas instaladas: libcap.so e libpsx.so - -Descrições Curtas - - capsh - - Um encapsulador de shell para explorar e restringir suporte de - capacidade - - getcap - - Examina capacidades de arquivo - - getpcaps - - Exibe as capacidades sobre o(s) processo(s) consultado(s) - - setcap - - Configura capacidades de arquivo - - libcap - - Contém as funções de biblioteca para manipular capacidades POSIX - 1003.1e - - libpsx - - Contém funções para suportar semântica POSIX para chamadas de sistema - associadas com a biblioteca pthread - -8.25. Shadow-4.11.1 - - O pacote Shadow contém aplicativos para manipular senhas de uma maneira - segura. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 49 MB - -8.25.1. Instalação de Shadow - -Nota - - Se você gostaria de reforçar o uso de senhas fortes, então recorra a - [575]https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/ - cracklib.html para instalar CrackLib antes de construir Shadow. Então - adicione --with-libcrack ao comando configure abaixo. - - Desabilite a instalação do aplicativo groups e suas páginas de manual, - uma vez que Coreutils fornece uma versão melhor. Também, impeça a - instalação de páginas de manual que já foram instaladas em - [576]Seção 8.3, “Man-pages-5.13â€: -sed -i 's/groups$(EXEEXT) //' src/Makefile.in -find man -name Makefile.in -exec sed -i 's/groups\.1 / /' {} \; -find man -name Makefile.in -exec sed -i 's/getspnam\.3 / /' {} \; -find man -name Makefile.in -exec sed -i 's/passwd\.5 / /' {} \; - - Em vez de usar o método padrão crypt, use o método mais seguro SHA-512 - de encriptação de senha, o qual também permite senhas maiores que oito - (08) caracteres. É também necessário mudar a localização obsoleta - /var/spool/mail para caixas de correio de usuária(o) que Shadow usa por - padrão pela localização /var/mail usada atualmente. E, livre-se de /bin - e /sbin a partir de PATH, uma vez que eles são simples links simbólicos - para seus homônimos em /usr. - -Nota - - Se /bin e (ou) /sbin forem preferidos para serem deixados em PATH por - alguma razão, então modifique PATH em .bashrc após LFS ser construído. -sed -e 's:#ENCRYPT_METHOD DES:ENCRYPT_METHOD SHA512:' \ - -e 's:/var/spool/mail:/var/mail:' \ - -e '/PATH=/{s@/sbin:@@;s@/bin:@@}' \ - -i etc/login.defs - -Nota - - Se você escolher construir Shadow com suporte CrackLib, então execute o - seguinte: -sed -i 's:DICTPATH.*:DICTPATH\t/lib/cracklib/pw_dict:' etc/login.defs - - Prepare Shadow para compilação: -touch /usr/bin/passwd -./configure --sysconfdir=/etc \ - --disable-static \ - --with-group-name-max-length=32 - - O significado da opção de configure: - - touch /usr/bin/passwd - O arquivo /usr/bin/passwd precisa existir, pois a localização - dele é codificada rigidamente em alguns aplicativos, e se ele - não existir, então a localização padrão não é correta. - - --with-group-name-max-length=32 - O nome de usuária(o) máximo é trinta e dois (32) caracteres. - Torne o nome de grupo máximo o mesmo. - - Compile o pacote: -make - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -make exec_prefix=/usr install -make -C man install-man - -8.25.2. Configurando Shadow - - Esse pacote contém utilitários para adicionar, modificar, e deletar - usuárias(os) e grupos; configura e modifica suas senhas; e realiza - outras tarefas administrativas. Para uma explanação completa do que - password shadowing significa, veja o arquivo doc/HOWTO dentro da árvore - desempacotada de fonte. Se usar suporte Shadow, então tenha na mente - que aplicativos que necessitem verificar senhas (gerenciadores de tela, - aplicativos de FTP, daemons pop3, etc.) precisam ser conformes com - Shadow. Isto é, eles precisam ser capazes de trabalhar com senhas - ocultas. - - Para habilitar senhas ocultas, execute o seguinte comando: -pwconv - - Para habilitar senhas ocultas de grupo, execute: -grpconv - - A configuração padrão de Shadow para o utilitário useradd tem umas - poucas ressalvas que precisam de alguma explanação. Primeiro, a ação - padrão para o utilitário useradd é a de criar a(o) usuária(o) e um - grupo de mesmo nome que a(o) usuária(o). Por padrão os números de ID de - usuária(o) (UID) e ID de grupo (GID) iniciarão com 1000. Isso significa - que se você não passar parâmetros para useradd, então cada usuária(o) - será uma(m) membro de um grupo único no sistema. Se esse comportamento - for indesejável, então você precisará passar um parâmetro de -g ou -N - para useradd ou mudar a configuração de USERGROUPS_ENAB em - /etc/login.defs. Veja-se useradd(8) para mais informação. - - Segundo, para mudar os parâmetros padrão, o arquivo - /etc/default/useradd precisa ser criado e adaptado para atender às suas - necessidades particulares. Crie ele com: -mkdir -p /etc/default -useradd -D --gid 999 - - Explanações de Parâmetro de /etc/default/useradd - - GROUP=999 - Esse parâmetro configura o início dos números de grupo usado no - arquivo /etc/group. O valor particular 999 vem do parâmetro - --gid acima. Você pode modificá-lo para qualquer coisa que - deseje. Note que useradd nunca reusará um UID ou GID. Se o - número identificado nesse parâmetro for usado, então ele usará o - próximo número disponível. Note também que se você não tiver um - grupo com um ID igual a esse número em seu sistema na primeira - vez que você usar useradd sem o parâmetro -g, então você - receberá uma mensagem exibida no terminal que diz: useradd: - unknown GID 999, apesar de a conta estar criada corretamente. - Esse é o motivo pelo qual nós criamos o grupo users com esse ID - de grupo em [577]Seção 7.6, “Criando Arquivos Essenciais e Links - Simbólicosâ€. - - CREATE_MAIL_SPOOL=yes - Esse parâmetro faz com que useradd crie um arquivo de caixa de - correio para a(o) usuária(o) recém criada(o). useradd tornará a - propriedade de grupo desse arquivo para o grupo mail com - permissões 0660. Se você preferisse que esses arquivos de caixa - de correio não fossem criados por useradd, então execute o - seguinte comando: - -sed -i '/MAIL/s/yes/no/' /etc/default/useradd - -8.25.3. Configurando a senha de root - - Escolha uma senha para a(o) usuária(o) root e configure ela executando: -passwd root - -8.25.4. Conteúdo de Shadow - - Aplicativos instalados: chage, chfn, chgpasswd, chpasswd, chsh, expiry, - faillog, getsubids, gpasswd, groupadd, groupdel, groupmems, groupmod, - grpck, grpconv, grpunconv, lastlog, login, logoutd, newgidmap, newgrp, - newuidmap, newusers, nologin, passwd, pwck, pwconv, pwunconv, sg (link - para newgrp), su, useradd, userdel, usermod, vigr (link para vipw), e - vipw - Biblioteca instalada: libsubid.so - Diretório instalado: /etc/default - -Descrições Curtas - - chage - - Usado para alterar o número de dias máximo entre mudanças obrigatórias - de senha - - chfn - - Usado para alterar um nome completo da(o) usuária(o) e outra informação - - chgpasswd - - Usado para atualizar senhas de grupo em modo de lote - - chpasswd - - Usado para atualizar senhas de usuárias(os) em modo de lote - - chsh - - Usado para alterar um shell de login padrão da(o) usuária(o) - - expiry - - Verifica e reforça a política atual de expiração de senha - - faillog - - É Usado para examinar o registro de falhas de login, configurar um - número máximo de falhas antes que uma conta seja bloqueada, ou zerar a - contagem de falhas - - getsubids - - É usado para listar os intervalos subordinados de id para uma(m) - usuária(o) - - gpasswd - - É usado para adicionar e deletar membros e administradoras(es) para - grupos - - groupadd - - Cria um grupo com o nome dado - - groupdel - - Deleta o grupo com o nome dado - - groupmems - - Permite que uma(m) usuária(o) administre sua própria lista de membros - de grupo sem a exigência de privilégios de superusuária(o) - - groupmod - - É usado para modificar o nome ou GID do grupo dado - - grpck - - Verifica a integridade dos arquivos de grupo /etc/group e /etc/gshadow - - grpconv - - Cria ou atualiza o arquivo de grupo de sombra a partir do arquivo de - grupo normal - - grpunconv - - Atualiza /etc/group a partir de /etc/gshadow e então deleta o último - - lastlog - - Reporta o login mais recente de todas(os) as(os) usuárias(os) ou de - uma(m) usuária(o) dada(o) - - login - - É usado pelo sistema para permitir usuárias(os) logar - - logoutd - - É um daemon usado para reforçar restrições sobre horário de logon e - portas - - newgidmap - - É usado para configurar o mapeamento gid de um espaço de nome de - usuária(o) - - newgrp - - É usado para modificar o GID atual durante uma sessão de login - - newuidmap - - É usado para configurar o mapeamento uid de um espaço de nome de - usuária(o) - - newusers - - É usado para criar ou atualizar uma série inteira de contas de - usuárias(os) - - nologin - - Exibe uma mensagem que uma conta não está disponível; projetado para - ser usado como o shell padrão para contas que foram desabilitadas - - passwd - - É usado para modificar a senha para uma conta de usuária(o) ou grupo - - pwck - - Verifica a integridade dos arquivos de senha /etc/passwd e /etc/shadow - - pwconv - - Cria ou atualiza o arquivo de senha de sombra a partir do arquivo de - senha normal - - pwunconv - - Atualiza /etc/passwd a partir de /etc/shadow e então deleta o último - - sg - - Executa um comando dado enquanto o GID da(o) usuária(o) está - configurado para aquele do grupo dado - - su - - Executa um shell com IDs de usuária(o) e grupo substitutos - - useradd - - Cria uma(m) usuária(o) nova(o) com o nome dado, ou atualiza a - informação padrão de nova(o) usuária(o) - - userdel - - Deleta a conta de usuária(o) dada - - usermod - - É usado para modificar o nome de login da(o) usuária(o) dada(o), - Identificação de Usuária(o) (UID), shell, grupo inicial, diretório - home, etc. - - vigr - - Edita os arquivos /etc/group ou /etc/gshadow - - vipw - - Edita os arquivos /etc/passwd ou /etc/shadow - - libsubid - - Biblioteca para processar intervalos subordinados de id para - usuárias(os) - -8.26. GCC-11.2.0 - - O pacote GCC contém a GNU compiler collection, o qual inclui os - compiladores C e C++. - Tempo aproximado de construção: 153 UPC (com os testes) - Espaço em disco exigido: 4,3 GB - -8.26.1. Instalação de GCC - - Primeiramente, conserte um problema que quebra libasan.a quando da - construção desse pacote com Glibc-2.34 ou posterior: -sed -e '/static.*SIGSTKSZ/d' \ - -e 's/return kAltStackSize/return SIGSTKSZ * 4/' \ - -i libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp - - Se construir em x86_64, então mude o nome de diretório padrão para - bibliotecas de 64 bits para “libâ€: -case $(uname -m) in - x86_64) - sed -e '/m64=/s/lib64/lib/' \ - -i.orig gcc/config/i386/t-linux64 - ;; -esac - - A documentação de GCC recomenda construir GCC em um diretório de - construção dedicado: -mkdir -v build -cd build - - Prepare GCC para compilação: -../configure --prefix=/usr \ - LD=ld \ - --enable-languages=c,c++ \ - --disable-multilib \ - --disable-bootstrap \ - --with-system-zlib - - Note que para outras linguagens de programação, existem alguns - pré-requisitos que ainda não estão disponíveis. Veja-se a [578]página - de GCC do Livro BLFS para instruções sobre como construir todas as - linguagens suportadas do GCC. - - O significado dos novos parâmetros de configure: - - LD=ld - Esse parâmetro induz o script configure a usar o ld instalado - pelo binutils construído anteriormente neste capítulo, em vez da - versão construída cruzadamente a qual de outra maneira seria - usada. - - --with-system-zlib - Essa chave diz a GCC para vincular à cópia instalada de sistema - da biblioteca zlib, em vez de sua própria cópia interna. - - Compile o pacote: -make - -Importante - - Nesta seção, a suíte de teste para GCC é considerada importante, porém - ela toma um tempo longo. Construtoras(es) de primeira vez são - encorajadas(os) a não pular ela. O tempo para executar os testes pode - ser reduzido significantemente adicionando-se -jx ao comando make - abaixo, onde x é o número de núcleos em seu sistema. - - Um conjunto de testes na suíte de teste de GCC é conhecida por esgotar - a pilha padrão, então aumente o tamanho de pilha antes de executar os - testes: -ulimit -s 32768 - - Teste os resultados como uma(m) usuária(o) não privilegiada(o), porém - não pare aos erros: -chown -Rv tester . -su tester -c "PATH=$PATH make -k check" - - Para receber um sumário dos resultados de suíte de teste, execute: -../contrib/test_summary - - Para apenas os sumários, entube a saída por grep -A7 Summ. - - Resultados podem ser comparados com aqueles localizados em - [579]https://www.linuxfromscratch.org/lfs/build-logs/11.1/ e - [580]https://gcc.gnu.org/ml/gcc-testresults/. - - Oito testes relacionados ao analisador são conhecidos por falhar. - - Um teste chamado asan_test.C é conhecido por falhar. - - Em libstdc++, um teste chamado 49745.cc é conhecido por falhar, pois as - dependências de cabeçalho em glibc mudaram. - - Em libstdc++, um teste de numeração de pontuação e seis testes - relacionados a get_time são conhecidos por falhar. Essas são todas por - causa das definições de locale em glibc que mudaram, porém libstdc++ - atualmente não suporta essas mudanças. - - Umas poucas falhas inesperadas não podem ser evitadas sempre. As(Os) - desenvolvedoras(es) de GCC geralmente estão cientes desses problemas, - mas ainda não os resolveram. A menos que os resultados de teste sejam - amplamente diferentes daqueles na URL acima, é seguro continuar. - - Instale o pacote e remova um diretório desnecessário: -make install -rm -rf /usr/lib/gcc/$(gcc -dumpmachine)/11.2.0/include-fixed/bits/ - - O diretório de construção de GCC é de propriedade de tester agora e a - propriedade do diretório de cabeçalho instalado (e o conteúdo dele) - estarão incorretos. Mude a propriedade para usuária(o) e grupo root: -chown -v -R root:root \ - /usr/lib/gcc/*linux-gnu/11.2.0/include{,-fixed} - - Crie um link simbólico exigido por [581]FHS por razões "históricas". -ln -svr /usr/bin/cpp /usr/lib - - Adicione um link simbólico de compatibilidade para habilitar a - construção de aplicativos com Link Time Optimization (LTO): -ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/11.2.0/liblto_plugin.so \ - /usr/lib/bfd-plugins/ - - Agora que nosso conjunto de ferramentas final está no lugar, é - importante certificar-se novamente de que compilação e vinculação - funcionarão como esperado. Nós fazemos isso realizando algumas - verificações de sanidade: -echo 'int main(){}' > dummy.c -cc dummy.c -v -Wl,--verbose &> dummy.log -readelf -l a.out | grep ': /lib' - - Deveriam não existir erros, e a saída do último comando será - (permitindo diferenças específicas de plataforma no nome de vinculador - dinâmico): -[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2] - - Agora tenha certeza de que nós estamos configurados para usar os - arquivos de iniciação corretos: -grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log - - A saída do último comando deveria ser: -/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/crt1.o succeeded -/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/crti.o succeeded -/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/crtn.o succeeded - - Dependendo da arquitetura de sua máquina, o acima talvez difira - levemente. A diferença será o nome do diretório depois de /usr/lib/gcc. - A coisa importante a se olhar aqui é que gcc encontrou todos os três - arquivos crt*.o sob o diretório /usr/lib. - - Verifique que o compilador está procurando pelos arquivos de cabeçalho - corretos: -grep -B4 '^ /usr/include' dummy.log - - Esse comando deveria retornar a seguinte saída: -#include <...> search starts here: - /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include - /usr/local/include - /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include-fixed - /usr/include - - Novamente, o diretório nomeado após seu triplet alvo talvez seja - diferente do que o acima, dependendo da arquitetura de seu sistema. - - Em seguida, verifique que o novo vinculador está sendo usado com os - caminhos de procura corretos: -grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g' - - Referências a caminhos que tem componentes com '-linux-gnu' deveriam - ser ignoradas, porém, do contrário, a saída do último comando deveria - ser: -SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib64") -SEARCH_DIR("/usr/local/lib64") -SEARCH_DIR("/lib64") -SEARCH_DIR("/usr/lib64") -SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib") -SEARCH_DIR("/usr/local/lib") -SEARCH_DIR("/lib") -SEARCH_DIR("/usr/lib"); - - Um sistema de 32 bits talvez veja uns poucos diretórios diferentes. Por - exemplo, aqui está a saída originária de uma máquina i686: -SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32") -SEARCH_DIR("/usr/local/lib32") -SEARCH_DIR("/lib32") -SEARCH_DIR("/usr/lib32") -SEARCH_DIR("/usr/i686-pc-linux-gnu/lib") -SEARCH_DIR("/usr/local/lib") -SEARCH_DIR("/lib") -SEARCH_DIR("/usr/lib"); - - Em seguida, tenha certeza de que nós estamos usando a libc correta: -grep "/lib.*/libc.so.6 " dummy.log - - A saída do último comando deveria ser: -attempt to open /usr/lib/libc.so.6 succeeded - - Tenha certeza de que GCC está usando o vinculador dinâmico correto: -grep found dummy.log - - A saída do último comando deveria ser (permitindo diferenças - específicas de plataforma no nome de vinculador dinâmico): -found ld-linux-x86-64.so.2 at /usr/lib/ld-linux-x86-64.so.2 - - Se a saída não aparecer como mostrado acima ou não for recebida de - jeito nenhum, então alguma coisa está seriamente errada. Investigue e - retrace os passos para encontrar onde está o problema e corrija o - mesmo. Quaisquer problemas precisão ser resolvidos antes de continuar - com o processo. - - Uma vez que tudo esteja funcionando corretamente, limpe os arquivos de - teste: -rm -v dummy.c a.out dummy.log - - Finalmente, mova um arquivo mal colocado: -mkdir -pv /usr/share/gdb/auto-load/usr/lib -mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib - -8.26.2. Conteúdo de GCC - - Aplicativos instalados: c++, cc (link para gcc), cpp, g++, gcc, gcc-ar, - gcc-nm, gcc-ranlib, gcov, gcov-dump, gcov-tool, e lto-dump - Bibliotecas instaladas: libasan.{a,so}, libatomic.{a,so}, libcc1.so, - libgcc.a, libgcc_eh.a, libgcc_s.so, libgcov.a, libgomp.{a,so}, - libitm.{a,so}, liblsan.{a,so}, liblto_plugin.so, libquadmath.{a,so}, - libssp.{a,so}, libssp_nonshared.a, libstdc++.{a,so}, libstdc++fs.a, - libsupc++.a, libtsan.{a,so}, e libubsan.{a,so} - Diretórios instalados: /usr/include/c++, /usr/lib/gcc, - /usr/libexec/gcc, e /usr/share/gcc-11.2.0 - -Descrições Curtas - - c++ - - O compilador C++ - - cc - - O compilador C - - cpp - - O preprocessador C; é usado pelo compilador para expandir as - declarações #include, #define e similares nos arquivos fonte - - g++ - - O compilador C++ - - gcc - - O compilador C - - gcc-ar - - Um encapsulador em torno de ar que adiciona um plugin à linha de - comando. Esse aplicativo é usado apenas para adicionar "link time - optimization" e não é útil com as opções de construção padrão - - gcc-nm - - Um encapsulador em torno de nm que adiciona um plugin à linha de - comando. Esse aplicativo é usado apenas para adicionar "link time - optimization" e não é útil com as opções de construção padrão - - gcc-ranlib - - Um encapsulador em torno de ranlib que adiciona um plugin à linha de - comando. Esse aplicativo é usado apenas para adicionar "link time - optimization" e não é útil com as opções de construção padrão - - gcov - - Uma ferramenta de teste de cobertura; usada para analisar aplicativos - para determinar onde as otimizações terão mais efeito - - gcov-dump - - Ferramenta de despejo de perfil offline gcda e gcno - - gcov-tool - - Ferramenta de processamento de perfil offline gcda - - lto-dump - - Ferramenta para despejar arquivos objeto produzidos por GCC com LTO - habilitado - - libasan - - A biblioteca de tempo de execução do Address Sanitizer - - libatomic - - Biblioteca de tempo de execução atômica interna do GCC - - libcc1 - - A biblioteca de pré-processamento C - - libgcc - - Contém suporte de tempo de execução para gcc - - libgcov - - Essa biblioteca é vinculada a um aplicativo quando GCC for instruído a - habilitar criação de perfil - - libgomp - - Implementação GNU da API OpenMP para programação paralela de memória - compartilhada multiplataforma em C/C++ e Fortran - - libitm - - A biblioteca de memória transacional GNU - - liblsan - - A biblioteca de tempo de execução do Leak Sanitizer - - liblto_plugin - - Plugin LTO do GCC permite ao binutils processar arquivos objeto - produzidos por GCC com LTO habilitado - - libquadmath - - API da Biblioteca Matemática de Precisão Quádrupla GCC - - libssp - - Contém rotinas que suportam a funcionalidade de proteção contra - esmagamento de pilha do GCC - - libstdc++ - - A biblioteca C++ padrão - - libstdc++fs - - Biblioteca de Sistema de Arquivos ISO/IEC TS 18822:2015 - - libsupc++ - - Fornece rotinas de suporte para a linguagem de programação C++ - - libtsan - - A biblioteca de tempo de execução do Thread Sanitizer - - libubsan - - A biblioteca de tempo de execução do Undefined Behavior Sanitizer - -8.27. Pkg-config-0.29.2 - - O pacote pkg-config contém uma ferramenta para passar o caminho include - e (ou) caminhos de biblioteca para ferramentas de construção durante as - fases configure e make de instalações de pacote. - Tempo aproximado de construção: 0,3 UPC - Espaço em disco exigido: 29 MB - -8.27.1. Instalação de Pkg-config - - Prepare Pkg-config para compilação: -./configure --prefix=/usr \ - --with-internal-glib \ - --disable-host-tool \ - --docdir=/usr/share/doc/pkg-config-0.29.2 - - O significado das novas opções de configure: - - --with-internal-glib - Isso permitirá que pkg-config use a versão interna dele de Glib, - pois uma versão externa não está disponível em LFS. - - --disable-host-tool - Essa opção desabilita a criação de um indesejado hard link para - o aplicativo pkg-config. - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.27.2. Conteúdo de Pkg-config - - Aplicativo instalado: pkg-config - Diretório instalado: /usr/share/doc/pkg-config-0.29.2 - -Descrições Curtas - - pkg-config - - Retorna meta informação para a biblioteca ou pacote especificada - -8.28. Ncurses-6.3 - - O pacote Ncurses contém bibliotecas para manipulação de telas de - caracteres independente de terminal. - Tempo aproximado de construção: 0,4 UPC - Espaço em disco exigido: 45 MB - -8.28.1. Instalação de Ncurses - - Prepare Ncurses para compilação: -./configure --prefix=/usr \ - --mandir=/usr/share/man \ - --with-shared \ - --without-debug \ - --without-normal \ - --enable-pc-files \ - --enable-widec \ - --with-pkg-config-libdir=/usr/lib/pkgconfig - - O significado das novas opções de configure: - - --enable-widec - Essa chave faz com que bibliotecas de caracteres largos (por - exemplo, libncursesw.so.6.3) sejam construídas em vez de - bibliotecas normais (por exemplo, libncurses.so.6.3). Essas - bibliotecas de caracteres largos são utilizáveis tanto em - locales de múltiplos bytes quanto em tradicionais de oito (08) - bits, enquanto bibliotecas normais funcionam adequadamente só em - locales de oito (08) bits. Bibliotecas de caracteres largos e - bibliotecas normais são compatíveis em fonte, mas não são - compatíveis em binário. - - --enable-pc-files - Essa chave gera e instala arquivos .pc para pkg-config. - - --without-normal - Essa chave desabilita a construção e instalação da maioria das - bibliotecas estáticas. - - Compile o pacote: -make - - Esse pacote tem uma suíte de teste, entretanto ela só pode ser - executada após o pacote ter sido instalado. Os testes residem no - diretório test/. Veja-se o arquivo README naquele diretório para - maiores detalhes. - - A instalação desse pacote sobrescreverá libncursesw.so.6.3 no local. - Isso talvez quebre o processo de shell que está usando código e dados a - partir do arquivo de biblioteca. Instale o pacote com DESTDIR, e - substitua o arquivo de biblioteca corretamente usando comando install. - Um arquivamento estático inútil que não é manejado por configure também - é removido: -make DESTDIR=$PWD/dest install -install -vm755 dest/usr/lib/libncursesw.so.6.3 /usr/lib -rm -v dest/usr/lib/{libncursesw.so.6.3,libncurses++w.a} -cp -av dest/* / - - Muitos aplicativos ainda esperam que o vinculador seja capaz de - encontrar bibliotecas Ncurses de caracteres não largos. Ajuste tais - aplicativos para vincularem com bibliotecas de caracteres largos por - meio de links simbólicos e scripts de vinculador: -for lib in ncurses form panel menu ; do - rm -vf /usr/lib/lib${lib}.so - echo "INPUT(-l${lib}w)" > /usr/lib/lib${lib}.so - ln -sfv ${lib}w.pc /usr/lib/pkgconfig/${lib}.pc -done - - Finalmente, certifique-se de que aplicativos antigos que procuram por - -lcurses em tempo de construção ainda sejam construíveis: -rm -vf /usr/lib/libcursesw.so -echo "INPUT(-lncursesw)" > /usr/lib/libcursesw.so -ln -sfv libncurses.so /usr/lib/libcurses.so - - Se desejado, então instale a documentação do Ncurses: -mkdir -pv /usr/share/doc/ncurses-6.3 -cp -v -R doc/* /usr/share/doc/ncurses-6.3 - -Nota - - As instruções acima não criam bibliotecas Ncurses de caracteres não - largos, uma vez que nenhum pacote instalado por compilação a partir de - fontes se vincularia a elas em tempo de execução. Entretanto, os únicos - aplicativos somente binário conhecidos que se vinculam à bibliotecas - Ncurses de caracteres não largos exigem versão 5. Se você precisa ter - tais bibliotecas, por causa de algum aplicativo somente binário ou para - estar conforme com LSB, então construa o pacote novamente com os - seguintes comandos: -make distclean -./configure --prefix=/usr \ - --with-shared \ - --without-normal \ - --without-debug \ - --without-cxx-binding \ - --with-abi-version=5 -make sources libs -cp -av lib/lib*.so.5* /usr/lib - -8.28.2. Conteúdo de Ncurses - - Aplicativos instalados: captoinfo (link para tic), clear, infocmp, - infotocap (link para tic), ncursesw6-config, reset (link para tset), - tabs, tic, toe, tput, e tset - Bibliotecas instaladas: libcursesw.so (link simbólico e script de - vinculador para libncursesw.so), libformw.so, libmenuw.so, - libncursesw.so, libpanelw.so, e homônimos delas de caractere não largo - sem "w" nos nomes de biblioteca. - Diretórios instalados: /usr/share/tabset, /usr/share/terminfo, e - /usr/share/doc/ncurses-6.3 - -Descrições Curtas - - captoinfo - - Converte uma descrição termcap em uma descrição terminfo - - clear - - Limpa a tela, se possível - - infocmp - - Compara ou imprime descrições terminfo - - infotocap - - Converte uma descrição terminfo em uma descrição termcap - - ncursesw6-config - - Fornece informação de configuração para ncurses - - reset - - Reinicializa um terminal para valores padrão dele - - tabs - - Limpa e configura paradas de tabulação em um terminal - - tic - - O compilador de descrição de entrada terminfo que traduz um arquivo - terminfo do formato fonte para o formato binário necessário para as - rotinas de biblioteca ncurses [Um arquivo terminfo contém informação - sobre as capacidades de um certo terminal]. - - toe - - Lista todos os tipos de terminal disponíveis, dando o nome primário e - descrição para cada - - tput - - Torna os valores de capacidades dependentes de terminal disponíveis - para o shell; também pode ser usado para reconfigurar ou inicializar um - terminal ou reportar o nome longo dele - - tset - - Pode ser usado para inicializar terminais - - libcursesw - - Um link para libncursesw - - libncursesw - - Contém funções para exibir texto em muitas formas complexas em uma tela - de terminal; um bom exemplo do uso dessas funções é o menu exibido - durante o make menuconfig do kernel - - libformw - - Contém funções para implementar formulários - - libmenuw - - Contém funções para implementar menus - - libpanelw - - Contém funções para implementar painéis - -8.29. Sed-4.8 - - O pacote Sed contém um editor de fluxo. - Tempo aproximado de construção: 0,4 UPC - Espaço em disco exigido: 31 MB - -8.29.1. Instalação de Sed - - Prepare Sed para compilação: -./configure --prefix=/usr - - Compile o pacote e gere a documentação HTML: -make -make html - - Para testar os resultados, execute: -chown -Rv tester . -su tester -c "PATH=$PATH make check" - - Instale o pacote e documentação dele: -make install -install -d -m755 /usr/share/doc/sed-4.8 -install -m644 doc/sed.html /usr/share/doc/sed-4.8 - -8.29.2. Conteúdo do Sed - - Aplicativo instalado: sed - Diretório instalado: /usr/share/doc/sed-4.8 - -Descrições Curtas - - sed - - Filtra e transforma arquivos de texto em uma passagem única - -8.30. Psmisc-23.4 - - O pacote Psmisc contém aplicativos para mostrar informação sobre - processos em execução. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 5,6 MB - -8.30.1. Instalação do Psmisc - - Prepare Psmisc para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -make install - -8.30.2. Conteúdo do Psmisc - - Aplicativos instalados: fuser, killall, peekfd, prtstat, pslog, pstree, - e pstree.x11 (link para pstree) - -Descrições Curtas - - fuser - - Reporta os IDs de Processos (PIDs) de processos que usam os arquivos ou - sistemas de arquivos dados - - killall - - Mata processos pelo nome; envia um sinal para todos os processos - executando quaisquer dos comandos dados - - peekfd - - Dê uma olhada nos descritores de arquivo de um processo em execução, - dado seu PID - - prtstat - - Imprime informação sobre um processo - - pslog - - Reporta o caminho atual de registros de um processo - - pstree - - Exibe processos em execução como uma árvore - - pstree.x11 - - O mesmo que pstree, exceto que ele espera por confirmação antes de sair - -8.31. Gettext-0.21 - - O pacote Gettext contém utilitários para internacionalização e - localização. Eles permitem que aplicativos sejam compilados com Suporte - ao Idioma Nativo (Native Language Support - NLS), habilitando-os a - emitir mensagens no idioma nativo da(o) usuária(o). - Tempo aproximado de construção: 2,7 UPC - Espaço em disco exigido: 233 MB - -8.31.1. Instalação do Gettext - - Prepare Gettext para compilação: -./configure --prefix=/usr \ - --disable-static \ - --docdir=/usr/share/doc/gettext-0.21 - - Compile o pacote: -make - - Para testar os resultados (isso toma um tempo longo, em torno de 3 - UPCs), execute: -make check - - Instale o pacote: -make install -chmod -v 0755 /usr/lib/preloadable_libintl.so - -8.31.2. Conteúdo do Gettext - - Aplicativos instalados: autopoint, envsubst, gettext, gettext.sh, - gettextize, msgattrib, msgcat, msgcmp, msgcomm, msgconv, msgen, - msgexec, msgfilter, msgfmt, msggrep, msginit, msgmerge, msgunfmt, - msguniq, ngettext, recode-sr-latin, e xgettext - Bibliotecas instaladas: libasprintf.so, libgettextlib.so, - libgettextpo.so, libgettextsrc.so, libtextstyle.so, e - preloadable_libintl.so - Diretórios instalados: /usr/lib/gettext, /usr/share/doc/gettext-0.21, - /usr/share/gettext, e /usr/share/gettext-0.19.8 - -Descrições Curtas - - autopoint - - Copia arquivos de infraestrutura padrão do Gettext para um pacote fonte - - envsubst - - Substitui variáveis de ambiente em sequências de caracteres de formato - de shell - - gettext - - Traduz uma mensagem de idioma natural para o idioma da(o) usuária(o) - procurando a tradução em um catálogo de mensagens - - gettext.sh - - Primariamente serve como uma biblioteca de função de shell para gettext - - gettextize - - Copia todos os arquivos Gettext padrão para o diretório de nível - superior fornecido de um pacote para começar a internacionalizá-lo - - msgattrib - - Filtra as mensagens de um catálogo de tradução de acordo com os - atributos delas e manipula os atributos - - msgcat - - Concatena e funde os arquivos .po fornecidos - - msgcmp - - Compara dois arquivos .po para verificar se ambos contém o mesmo - conjunto de sequências de caracteres de msgid - - msgcomm - - Encontra as mensagens que são comuns aos arquivos .po fornecidos - - msgconv - - Converte um catálogo de tradução para uma codificação de caracteres - diferente - - msgen - - Cria um catálogo de tradução em inglês - - msgexec - - Aplica um comando a todas as traduções de um catálogo de tradução - - msgfilter - - Aplica um filtro a todas as traduções de um catálogo de tradução - - msgfmt - - Gera um catálogo de mensagem binária a partir de um catálogo de - tradução - - msggrep - - Extrai todas as mensagens de um catálogo de tradução que correspondem a - um determinado padrão ou pertencem a alguns arquivos fonte fornecidos - - msginit - - Cria um novo arquivo .po, inicializando a meta informação com valores - oriundos do ambiente da(o) usuária(o) - - msgmerge - - Combina duas traduções cruas em um arquivo único - - msgunfmt - - Descompila um catálogo de mensagem binário em um texto de tradução cru - - msguniq - - Unifica traduções duplicadas em um catálogo de tradução - - ngettext - - Exibe traduções no idioma nativo de uma mensagem textual cuja forma - gramatical depende de um número - - recode-sr-latin - - Recodifica texto sérvio do cirílico para alfabeto latino - - xgettext - - Extrai as linhas de mensagem traduzíveis dos arquivos fonte fornecidos - para fazer o primeiro modelo de tradução - - libasprintf - - define a classe autosprintf, que torna as rotinas de saída formatada em - C utilizáveis em aplicativos C++, para uso com as sequências de - caracteres e os fluxos - - libgettextlib - - uma biblioteca privada contendo rotinas comuns usadas pelos vários - aplicativos Gettext; elas não são destinadas para uso geral - - libgettextpo - - Usado para escrever aplicativos especializados que processam arquivos - .po; essa biblioteca é usada quando os aplicativos padrão fornecidos - com Gettext (tais como msgcomm, msgcmp, msgattrib, e msgen) não são - suficientes - - libgettextsrc - - Uma biblioteca privada contendo rotinas comuns usadas pelos vários - aplicativos Gettext; elas não são destinadas para uso geral - - libtextstyle - - Biblioteca de estilo de texto - - preloadable_libintl - - Uma biblioteca, destinada a ser usada por LD_PRELOAD que auxilia - libintl no registro de mensagens não traduzidas - -8.32. Bison-3.8.2 - - O pacote Bison contém um gerador de analisador. - Tempo aproximado de construção: 6,3 UPC - Espaço em disco exigido: 53 MB - -8.32.1. Instalação do Bison - - Prepare Bison para compilação: -./configure --prefix=/usr --docdir=/usr/share/doc/bison-3.8.2 - - Compile o pacote: -make - - Para testar os resultados (cerca de 5,5 UPCs), execute: -make check - - Instale o pacote: -make install - -8.32.2. Conteúdo do Bison - - Aplicativos instalados: bison e yacc - Biblioteca instalada: liby.a - Diretório instalado: /usr/share/bison - -Descrições Curtas - - bison - - Gera, a partir de uma série de regras, um aplicativo para analisar a - estrutura de arquivos de texto; Bison é uma substituição ao Yacc (Yet - Another Compiler Compiler) - - yacc - - Um encapsulador para bison, destinado a aplicativos que ainda chamam - yacc em vez de bison; ele chama bison com a opção -y - - liby - - A biblioteca Yacc contendo implementações de funções compatíveis com - Yacc yyerror e main; essa biblioteca normalmente não é muito útil, mas - POSIX a exige - -8.33. Grep-3.7 - - O pacote Grep contém aplicativos para procura ao longo do conteúdo de - arquivos. - Tempo aproximado de construção: 0,9 UPC - Espaço em disco exigido: 36 MB - -8.33.1. Instalação do Grep - - Prepare Grep para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.33.2. Conteúdo do Grep - - Aplicativos instalados: egrep, fgrep, e grep - -Descrições Curtas - - egrep - - Imprime linhas que correspondem a uma expressão regular estendida - - fgrep - - Imprime linhas que correspondem a uma lista de sequências de caracteres - fixas - - grep - - Imprime linhas que correspondem a expressão regular básica - -8.34. Bash-5.1.16 - - O pacote Bash contém o Bourne-Again SHell. - Tempo aproximado de construção: 1,5 UPC - Espaço em disco exigido: 50 MB - -8.34.1. Instalação do Bash - - Prepare Bash para compilação: -./configure --prefix=/usr \ - --docdir=/usr/share/doc/bash-5.1.16 \ - --without-bash-malloc \ - --with-installed-readline - - O significado da nova opção de configure: - - --with-installed-readline - Essa opção diz a Bash para usar a biblioteca readline que já - está instalada no sistema em vez de usar sua própria versão de - readline. - - Compile o pacote: -make - - Pule para “Instale o pacote†se não executar a suíte de teste. - - Para preparar os testes, garanta que a(o) usuária(o) tester pode - escrever na árvore de fontes: -chown -Rv tester . - - A suíte de teste do pacote é desenhada para ser executada como uma(m) - usuária(o) não root que é proprietária(o) do terminal conectado à - entrada padrão. Para satisfazer a exigência, crie um novo pseudo - terminal usando Expect e execute os testes como a(o) usuária (o) - tester: -su -s /usr/bin/expect tester << EOF -set timeout -1 -spawn make tests -expect eof -lassign [wait] _ _ _ value -exit $value -EOF - - Instale o pacote: -make install - - Execute o aplicativo recém compilado bash (substituindo o que está - sendo executado atualmente): -exec /usr/bin/bash --login - -8.34.2. Conteúdo do Bash - - Aplicativos instalados: bash, bashbug, e sh (link para bash) - Diretórios instalados: /usr/include/bash, /usr/lib/bash, e - /usr/share/doc/bash-5.1.16 - -Descrições Curtas - - bash - - Um interpretador de comandos vastamente utilizado; ele realiza muitos - tipos de expansões e substituições sobre uma dada linha de comando - antes de executá-la, portanto fazendo desse interpretador uma - ferramenta poderosa - - bashbug - - Um script de shell para ajudar a(o) usuária(o) a compor e enviar - relatórios de defeitos formatados padrão concernentes a bash - - sh - - Um link simbólico para o aplicativo bash; quando invocado como sh, bash - tenta imitar o comportamento de inicialização de versões históricas do - sh o mais próximo possível, enquanto também conformando com o padrão - POSIX - -8.35. Libtool-2.4.6 - - O pacote Libtool contém o script de suporte à biblioteca genérica GNU. - Ele esconde a complexidade de usar bibliotecas compartilhadas em uma - interface consistente e portável. - Tempo aproximado de construção: 1,5 UPC - Espaço em disco exigido: 43 MB - -8.35.1. Instalação do Libtool - - Prepare Libtool para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - -Nota - - O tempo de teste para libtool pode ser reduzido significativamente em - um sistema com múltiplos núcleos. Para fazer isso, acrescente - TESTSUITEFLAGS=-j ao final da linha acima. Por exemplo, usar -j4 - pode reduzir o tempo de teste em mais que 60 por cento. - - Cinco testes são conhecidos por falharem dentro do ambiente de - construção LFS devido a uma dependência circular, porém todos os testes - passam se verificados novamente após automake ser instalado. - - Instale o pacote: -make install - - Remova uma biblioteca estática inútil: -rm -fv /usr/lib/libltdl.a - -8.35.2. Conteúdo do Libtool - - Aplicativos instalados: libtool e libtoolize - Biblioteca instalada: libltdl.so - Diretórios instalados: /usr/include/libltdl e /usr/share/libtool - -Descrições Curtas - - libtool - - Fornece serviços generalizados de suporte à construção de bibliotecas - - libtoolize - - Fornece uma maneira padrão de adicionar suporte libtool a um pacote - - libltdl - - Esconde as várias dificuldades do dlopening de bibliotecas - -8.36. GDBM-1.23 - - O pacote GDBM contém o GNU Database Manager. Ele é uma biblioteca de - funções de banco de dados que usa hash extensível e funciona semelhante - ao dbm UNIX padrão. A biblioteca fornece primitivos para armazenar - pares de chave/dados, pesquisar e recuperar os dados por sua chave e - deletar uma chave junto com seus dados. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 13 MB - -8.36.1. Instalação do GDBM - - Prepare GDBM para compilação: -./configure --prefix=/usr \ - --disable-static \ - --enable-libgdbm-compat - - O significado da opção de configure: - - --enable-libgdbm-compat - Essa chave habilita a construção da biblioteca de - compatibilidade libgdbm. Alguns pacotes fora do LFS talvez - exijam as rotinas DBM mais antigas que ela fornece. - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.36.2. Conteúdo do GDBM - - Aplicativos instalados: gdbm_dump, gdbm_load, e gdbmtool - Bibliotecas instaladas: libgdbm.so e libgdbm_compat.so - -Descrições Curtas - - gdbm_dump - - Despeja um banco de dados GDBM para um arquivo - - gdbm_load - - Recria um banco de dados GDBM a partir de um arquivo de despejo - - gdbmtool - - Testa e modifica um banco de dados GDBM - - libgdbm - - Contém funções para manipular um banco de dados com hash - - libgdbm_compat - - Biblioteca de compatibilidade contendo funções DBM mais antigas - -8.37. Gperf-3.1 - - Gperf gera uma função de hash perfeita a partir de um conjunto de - chaves. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 6,0 MB - -8.37.1. Instalação do Gperf - - Prepare Gperf para compilação: -./configure --prefix=/usr --docdir=/usr/share/doc/gperf-3.1 - - Compile o pacote: -make - - Os testes são conhecidos por falharem se executar múltiplos testes - simultâneos (opção -j maior que 1). Para testar os resultados, execute: -make -j1 check - - Instale o pacote: -make install - -8.37.2. Conteúdo do Gperf - - Aplicativo instalado: gperf - Diretório instalado: /usr/share/doc/gperf-3.1 - -Descrições Curtas - - gperf - - Gera um hash perfeito a partir de um conjunto de chaves - -8.38. Expat-2.4.6 - - O pacote Expat contém uma biblioteca C orientada a fluxo para analisar - XML. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 12 MB - -8.38.1. Instalação do Expat - - Prepare Expat para compilação: -./configure --prefix=/usr \ - --disable-static \ - --docdir=/usr/share/doc/expat-2.4.6 - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - - Se desejado, instale a documentação: -install -v -m644 doc/*.{html,css} /usr/share/doc/expat-2.4.6 - -8.38.2. Conteúdo do Expat - - Aplicativo instalado: xmlwf - Biblioteca instalada: libexpat.so - Diretório instalado: /usr/share/doc/expat-2.4.6 - -Descrições Curtas - - xmlwf - - É um utilitário não validador para verificar se documentos XML estão - bem formados ou não - - libexpat - - Contém funções de API para analisar XML - -8.39. Inetutils-2.2 - - O pacote Inetutils contém aplicativos para redes básicas. - Tempo aproximado de construção: 0,3 UPC - Espaço em disco exigido: 30 MB - -8.39.1. Instalação do Inetutils - - Prepare Inetutils para compilação: -./configure --prefix=/usr \ - --bindir=/usr/bin \ - --localstatedir=/var \ - --disable-logger \ - --disable-whois \ - --disable-rcp \ - --disable-rexec \ - --disable-rlogin \ - --disable-rsh \ - --disable-servers - - O significado das opções de configure: - - --disable-logger - Essa opção impede que o Inetutils instale o aplicativo logger, o - qual é usado por scripts para passar mensagens para o System Log - Daemon. Não instale isso, pois o Util-linux instala uma versão - mais recente. - - --disable-whois - Essa opção desabilita a construção do cliente whois do - Inetutils, o qual está desatualizado. Instruções para um cliente - whois melhor estão no livro BLFS. - - --disable-r* - Esses parâmetros desabilitam a construção de aplicativos - obsoletos que não deveriam ser usados devido a problemas de - segurança. As funções fornecidas por esses aplicativos podem ser - fornecidas pelo pacote openssh no livro BLFS. - - --disable-servers - Isso desabilita a instalação dos vários servidores de rede - incluídos como parte do pacote Inetutils. Esses servidores são - considerados inadequados em um sistema LFS básico. Alguns são - inseguros por natureza e só são considerados seguros em redes - confiáveis. Observe que substituições melhores estão disponíveis - para muitos desses servidores. - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - - Mova um aplicativo para o local adequado: -mv -v /usr/{,s}bin/ifconfig - -8.39.2. Conteúdo do Inetutils - - Aplicativos instalados: dnsdomainname, ftp, ifconfig, hostname, ping, - ping6, talk, telnet, tftp, e traceroute - -Descrições Curtas - - dnsdomainname - - Mostra o nome de domínio DNS do sistema - - ftp - - É o aplicativo de protocolo de transferência de arquivos - - hostname - - Relata ou configura o nome do dispositivo - - ifconfig - - Gerencia interfaces de rede - - ping - - Envia pacotes de solicitação de echo e informa quanto tempo as - respostas demoram - - ping6 - - Uma versão do ping para redes IPv6 - - talk - - É usado para conversar com outra(o) usuária(o) - - telnet - - Uma interface para o protocolo TELNET - - tftp - - Um aplicativo de transferência de arquivos trivial - - traceroute - - Rastreia a rota que seus pacotes fazem a partir do dispositivo em que - você está trabalhando para outro dispositivo em uma rede, mostrando - todos os saltos intermediários (gateways) ao longo do caminho - -8.40. Less-590 - - O pacote Less contém um visualizador de arquivos de texto. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 4,2 MB - -8.40.1. Instalação do Less - - Prepare Less para compilação: -./configure --prefix=/usr --sysconfdir=/etc - - O significado das opções de configure: - - --sysconfdir=/etc - Essa opção diz aos aplicativos criados pelo pacote para - procurarem em /etc pelos arquivos de configuração. - - Compile o pacote: -make - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -make install - -8.40.2. Conteúdo do Less - - Aplicativos instalados: less, lessecho e lesskey - -Descrições Curtas - - less - - Um visualizador de arquivos ou paginador; ele exibe o conteúdo do - arquivo dado, permitindo que a(o) usuária(o) role, encontre sequências - de caracteres e pule para marcas - - lessecho - - Necessário para expandir metacaracteres, tais como * e ?, em nomes de - arquivos em sistemas Unix - - lesskey - - Usado para especificar os atalhos de tecla para less - -8.41. Perl-5.34.0 - - O pacote Perl contém o Practical Extraction and Report Language. - Tempo aproximado de construção: 9,3 UPC - Espaço em disco exigido: 226 MB - -8.41.1. Instalação do Perl - - Primeiro, aplique uma correção que conserta um problema destacado por - versões recentes do gdbm: -patch -Np1 -i ../perl-5.34.0-upstream_fixes-1.patch - - Essa versão do Perl agora constrói os módulos Compress::Raw::Zlib e - Compress::Raw::BZip2. Por padrão, Perl usará uma cópia interna dos - fontes para a construção. Execute o seguinte comando de modo que Perl - usará as bibliotecas instaladas no sistema: -export BUILD_ZLIB=False -export BUILD_BZIP2=0 - - Para ter controle completo sobre a maneira como Perl é configurado, - você pode remover as opções “-des†do comando seguinte e escolher - manualmente a maneira como esse pacote é construído. Alternativamente, - use o comando exatamente como está abaixo para usar os padrões que o - Perl detecta automaticamente: -sh Configure -des \ - -Dprefix=/usr \ - -Dvendorprefix=/usr \ - -Dprivlib=/usr/lib/perl5/5.34/core_perl \ - -Darchlib=/usr/lib/perl5/5.34/core_perl \ - -Dsitelib=/usr/lib/perl5/5.34/site_perl \ - -Dsitearch=/usr/lib/perl5/5.34/site_perl \ - -Dvendorlib=/usr/lib/perl5/5.34/vendor_perl \ - -Dvendorarch=/usr/lib/perl5/5.34/vendor_perl \ - -Dman1dir=/usr/share/man/man1 \ - -Dman3dir=/usr/share/man/man3 \ - -Dpager="/usr/bin/less -isR" \ - -Duseshrplib \ - -Dusethreads - - O significado das opções de configure: - - -Dvendorprefix=/usr - Isso garante que perl saiba como dizer aos pacotes onde eles - deveriam instalar módulos perl deles. - - -Dpager="/usr/bin/less -isR" - Isso garante que less seja usado em vez de more. - - -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 - Uma vez que o Groff ainda não está instalado, Configure pensa - que nós não queremos páginas de manual para o Perl. Emitir esses - parâmetros substitui essa decisão. - - -Duseshrplib - Constrói uma libperl compartilhada necessária para alguns - módulos perl. - - -Dusethreads - Constrói perl com suporte para camadas. - - -Dprivlib,-Darchlib,-Dsitelib,... - Essas configurações definem onde o Perl está procurando módulos - instalados. As(Os) editoras(es) de LFS optaram por colocá-los em - uma estrutura de diretórios baseada na versão Major.Minor do - Perl (5.34), a qual permite atualizar o Perl para níveis de - Patch mais recentes (5.34.0) sem a necessidade de reinstalar - todos os módulos novamente. - - Compile o pacote: -make - - Para testar os resultados (aproximadamente 11 UPCs), execute: -make test - - Instale o pacote e limpe: -make install -unset BUILD_ZLIB BUILD_BZIP2 - -8.41.2. Conteúdo do Perl - - Aplicativos instalados: corelist, cpan, enc2xs, encguess, h2ph, h2xs, - instmodsh, json_pp, libnetcfg, perl, perl5.34.0 (hard link para perl), - perlbug, perldoc, perlivp, perlthanks (hard link para perlbug), piconv, - pl2pm, pod2html, pod2man, pod2text, pod2usage, podchecker, podselect, - prove, ptar, ptardiff, ptargrep, shasum, splain, xsubpp e zipdetails - Bibliotecas instaladas: Muitas, as quais não podem ser todas listadas - aqui - Diretório instalado: /usr/lib/perl5 - -Descrições Curtas - - corelist - - Um frontend de linha de comando para Module::CoreList - - cpan - - Interage com o Comprehensive Perl Archive Network (CPAN) a partir da - linha de comando - - enc2xs - - Constrói uma extensão Perl para o módulo Encode a partir tanto de - Mapeamentos de Caracteres Unicode quanto de Arquivos de Codificação Tcl - - encguess - - Advinha o tipo de codificação de um ou vários arquivos - - h2ph - - Converte arquivos de cabeçalho C .h para arquivos de cabeçalho Perl .ph - - h2xs - - Converte arquivos de cabeçalho C .h para extensões Perl - - instmodsh - - Script de shell para examinar módulos Perl instalados, e pode criar um - tarball a partir de um módulo instalado - - json_pp - - Converte dados entre certos formatos de entrada e saída - - libnetcfg - - Pode ser usado para configurar o módulo Perl libnet - - perl - - Combina algumas das melhores características do C, sed, awk e sh em uma - linguagem canivete suíço única - - perl5.34.0 - - Um hard link para perl - - perlbug - - Usado para gerar relatórios de defeitos sobre o Perl, ou módulos que - vem como ele, e enviá-los por correio - - perldoc - - Exibe uma parte da documentação em formato de pod que está incorporada - na árvore de instalação do Perl ou em um script Perl - - perlivp - - O Procedimento de Verificação de Instalação do Perl; pode ser usado - para verificar se o Perl e suas bibliotecas foram instalados - corretamente - - perlthanks - - Usado para gerar mensagens de agradecimento para enviar para as(os) - desenvolvedoras(es) Perl - - piconv - - Uma versão Perl do conversor de codificação de caracteres iconv - - pl2pm - - Uma ferramenta rudimentar para converter arquivos Perl4 .pl para - módulos Perl5 .pm - - pod2html - - Converte arquivos do formato pod para o formato HTML - - pod2man - - Converte dados pod para entrada formatada *roff - - pod2text - - Converte dados pod para texto ASCII formatado - - pod2usage - - Imprime mensagens de uso a partir de documentos pod incorporados em - arquivos - - podchecker - - Verifica a sintaxe de arquivos de documentação no formato pod - - podselect - - Exibe seções selecionadas de documentação pod - - prove - - Ferramenta de linha de comando para executar testes contra o módulo - Test::Harness - - ptar - - Um aplicativo similar ao tar escrito em Perl - - ptardiff - - Um aplicativo Perl que compara um arquivamento extraído com um não - extraído - - ptargrep - - Um aplicativo Perl que aplica correspondência de padrão ao conteúdo de - arquivos em um arquivamento tar - - shasum - - Imprime ou verifica somas de verificação SHA - - splain - - É usado para forçar diagnósticos de aviso detalhados em Perl - - xsubpp - - Converte código Perl XS em código C - - zipdetails - - Exibe detalhes sobre a estrutura interna de um arquivo Zip - -8.42. XML::Parser-2.46 - - O módulo XML::Parser é uma interface Perl para o analisador de XML do - James Clark, Expat. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 2,4 MB - -8.42.1. Instalação do XML::Parser - - Prepare XML::Parser para compilação: -perl Makefile.PL - - Compile o pacote: -make - - Para testar os resultados, execute: -make test - - Instale o pacote: -make install - -8.42.2. Conteúdo do XML::Parser - - Módulo instalado: Expat.so - -Descrições Curtas - - Expat - - Fornece a interface Perl Expat - -8.43. Intltool-0.51.0 - - O Intltool é uma ferramenta de internacionalização usada para extrair - sequências de caracteres traduzíveis a partir de arquivos fonte. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 1,5 MB - -8.43.1. Instalação do Intltool - - Primeiro, conserte um aviso que é causado por perl-5.22 e posteriores: -sed -i 's:\\\${:\\\$\\{:' intltool-update.in - -Nota - - A expressão regular acima parece incomum por causa de todas as contra - barras. O que ela faz é adicionar uma contra barra antes do carácter - abre chave na sequência '\${' resultando em '\$\{'. - - Prepare Intltool para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install -install -v -Dm644 doc/I18N-HOWTO /usr/share/doc/intltool-0.51.0/I18N-HOWTO - -8.43.2. Conteúdo do Intltool - - Aplicativos instalados: intltool-extract, intltool-merge, - intltool-prepare, intltool-update e intltoolize - Diretórios instalados: /usr/share/doc/intltool-0.51.0 e - /usr/share/intltool - -Descrições Curtas - - intltoolize - - Prepara um pacote para usar intltool - - intltool-extract - - Gera arquivos de cabeçalho que podem ser lidos por gettext - - intltool-merge - - Mescla sequência de caracteres traduzidos em vários tipos de arquivos - - intltool-prepare - - Atualiza arquivos pot e mescla eles com arquivos de tradução - - intltool-update - - Atualiza os arquivos de modelo po e mescla eles com as traduções - -8.44. Autoconf-2.71 - - O pacote Autoconf contém aplicativos para produzir scripts de shell que - podem configurar automaticamente código fonte. - Tempo aproximado de construção: menos que 0,1 UPC (cerca de 6,8 UPC com - os testes) - Espaço em disco exigido: 24 MB - -8.44.1. Instalação do Autoconf - - Prepare Autoconf para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - -Nota - - O tempo de teste para autoconf pode ser reduzido significativamente em - um sistema com múltiplos núcleos. Para fazer isso, acrescente - TESTSUITEFLAGS=-j ao final da linha acima. Por exemplo, usar -j4 - pode reduzir o tempo de teste em mais que 60 por cento. - - Instale o pacote: -make install - -8.44.2. Conteúdo do Autoconf - - Aplicativos instalados: autoconf, autoheader, autom4te, autoreconf, - autoscan, autoupdate e ifnames - Diretório instalado: /usr/share/autoconf - -Descrições Curtas - - autoconf - - Produz scripts de shell que configuram automaticamente pacotes de - código fonte de aplicativos para adaptar a vários tipos de sistemas - semelhantes a Unix; os scripts de configuração que ele produz são - independentes—executá-los não exige o aplicativo autoconf - - autoheader - - Uma ferramenta para criar arquivos de modelo de declarações #define de - C para configure usar - - autom4te - - Um encapsulador para o processador de macro M4 - - autoreconf - - Automaticamente executa autoconf, autoheader, aclocal, automake, - gettextize e libtoolize na ordem correta para economizar tempo quando - mudanças são feitas para arquivos de modelo autoconf e automake - - autoscan - - Ajuda a criar um arquivo configure.in para um pacote de aplicativos; - ele examina os arquivos fonte em uma árvore de diretórios, procurando - neles por problemas de portabilidade comuns, e cria um arquivo - configure.scan que serve como um arquivo configure.in preliminar para o - pacote - - autoupdate - - Modifica um arquivo configure.in que ainda chama macros autoconf por - seus nomes antigos para usar os nomes de macro atuais - - ifnames - - Ajuda ao escrever arquivos configure.in para um pacote de aplicativos; - ele imprime os identificadores que o pacote usa em condicionais de - preprocessador C [Se um pacote já foi configurado para ter alguma - portabilidade, então esse aplicativo pode ajudar a determinar o que - configure precisa checar. Ele também pode preencher lacunas em um - arquivo configure.in gerado por autoscan]. - -8.45. Automake-1.16.5 - - O pacote Automake contém aplicativos para gerar Makefiles para uso com - Autoconf. - Tempo aproximado de construção: menos que 0,1 UPC (cerca de 8,3 UPC com - os testes) - Espaço em disco exigido: 115 MB - -8.45.1. Instalação do Automake - - Prepare Automake para compilação: -./configure --prefix=/usr --docdir=/usr/share/doc/automake-1.16.5 - - Compile o pacote: -make - - Usar a opção de make -j4 acelera os testes, mesmo em sistemas com - apenas um processador, devido a atrasos internos em testes individuais. - Para testar os resultados, execute: -make -j4 check - - O teste t/subobj.sh é conhecido por falhar. - - Instale o pacote: -make install - -8.45.2. Conteúdo do Automake - - Aplicativos instalados: aclocal, aclocal-1.16 (hard link com aclocal), - automake e automake-1.16 (hard link com automake) - Diretórios instalados: /usr/share/aclocal-1.16, - /usr/share/automake-1.16 e /usr/share/doc/automake-1.16.5 - -Descrições Curtas - - aclocal - - Gera arquivos aclocal.m4 baseados no conteúdo dos arquivos configure.in - - aclocal-1.16 - - Um hard link para aclocal - - automake - - Uma ferramenta para gerar automaticamente arquivos Makefile.in a partir - de arquivos Makefile.am [Para criar todos os arquivos Makefile.in para - um pacote, execute esse aplicativo no diretório superior. Escaneando o - arquivo configure.in, ele automaticamente encontra cada arquivo - Makefile.am apropriado e gera o arquivo Makefile.in correspondente]. - - automake-1.16 - - Um hard link para automake - -8.46. OpenSSL-3.0.1 - - O pacote OpenSSL contém ferramentas de gerenciamento e bibliotecas - relacionadas à criptografia. Essas são úteis para fornecer funções - criptográficas para outros pacotes, tais como OpenSSH, aplicativos de - correio eletrônico e navegadores de rede (para acessar sítios HTTPS). - Tempo aproximado de construção: 5,4 UPC - Espaço em disco exigido: 474 MB - -8.46.1. Instalação do OpenSSL - - Prepare OpenSSL para compilação: -./config --prefix=/usr \ - --openssldir=/etc/ssl \ - --libdir=lib \ - shared \ - zlib-dynamic - - Compile o pacote: -make - - Para testar os resultados, execute: -make test - - Um teste, 30-test_afalg.t, é conhecido por falhar em algumas - configurações de kernel (dependendo de valores inconsistentes de - configurações CONFIG_CRYPTO_USER_API*). Se ele falhar, então ele pode - seguramente ser ignorado. - - Instale o pacote: -sed -i '/INSTALL_LIBS/s/libcrypto.a libssl.a//' Makefile -make MANSUFFIX=ssl install - - Adicione a versão ao nome de diretório de documentação, para ser - consistente com outros pacotes: -mv -v /usr/share/doc/openssl /usr/share/doc/openssl-3.0.1 - - Se desejado, instale alguma documentação adicional: -cp -vfr doc/* /usr/share/doc/openssl-3.0.1 - -Nota - - Você deveria atualizar OpenSSL quando uma versão nova que conserta - vulnerabilidades for anunciada. Os lançamentos ocorrem em séries, com - uma letra para cada lançamento após o lançamento inicial (por exemplo, - 1.1.1, 1.1.1a, 1.1.1b, etc). Por causa de que LFS instala somente as - bibliotecas compartilhadas, não existe necessidade de recompilar - pacotes que se vinculem a libcrypto.so ou libssl.so quando atualizar na - mesma série. - - Entretanto, quaisquer aplicativos em execução vinculados àquelas - bibliotecas precisam ser parados e reiniciados. Leia-se as entradas - relacionadas em [582]Seção 8.2.1, “Problemas de Atualização†para - detalhes. - -8.46.2. Conteúdo do OpenSSL - - Aplicativos instalados: c_rehash e openssl - Bibliotecas instaladas: libcrypto.so e libssl.so - Diretórios instalados: /etc/ssl, /usr/include/openssl, /usr/lib/engines - e /usr/share/doc/openssl-3.0.1 - -Descrições Curtas - - c_rehash - - é um script Perl que escaneia todos os arquivos em um diretório e - adiciona links simbólicos para os valores de hash deles - - openssl - - é uma ferramenta de linha de comando para usar as várias funções - criptográficas da biblioteca de criptografia do OpenSSL a partir do - shell. Ela pode ser usada para várias funções que estão documentadas em - man 1 openssl - - libcrypto.so - - implementa um intervalo amplo de algoritmos criptográficos usados em - vários padrões da Internet. Os serviços fornecidos por essa biblioteca - são usados pelas implementações OpenSSL do SSL, TLS e S/MIME e eles - também tem sido usados para implementar OpenSSH, OpenPGP e outros - padrões criptográficos - - libssl.so - - implementa o protocolo Transport Layer Security (TLS v1). Ela fornece - uma API rica, documentação sobre a qual pode ser encontrada executando - man 3 ssl - -8.47. Kmod-29 - - O pacote Kmod contém bibliotecas e utilitários para carregar módulos de - kernel - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 12 MB - -8.47.1. Instalação do Kmod - - Prepare Kmod para compilação: -./configure --prefix=/usr \ - --sysconfdir=/etc \ - --with-openssl \ - --with-xz \ - --with-zstd \ - --with-zlib - - O significado das opções de configure: - - --with-openssl - Essa opção habilita Kmod a lidar com assinaturas PKCS7 para - módulos de kernel. - - --with-xz, --with-zlib, e --with-zstd - Essas opções habilitam Kmod a lidar com módulos de kernel - comprimidos. - - Compile o pacote: -make - - A suíte de teste desse pacote exige cabeçalhos de kernel crus (não os - cabeçalhos de kernel “sanitizados†instalados anteriormente), os quais - estão além do escopo do LFS. - - Instale o pacote e crie links simbólicos para compatibilidade com - Module-Init-Tools (o pacote que anteriormente lidava com módulos de - kernel do Linux): -make install - -for target in depmod insmod modinfo modprobe rmmod; do - ln -sfv ../bin/kmod /usr/sbin/$target -done - -ln -sfv kmod /usr/bin/lsmod - -8.47.2. Conteúdo do Kmod - - Aplicativos instalados: depmod (link para kmod), insmod (link para - kmod), kmod, lsmod (link para kmod), modinfo (link para kmod), modprobe - (link para kmod) e rmmod (link para kmod) - Biblioteca instalada: libkmod.so - -Descrições Curtas - - depmod - - Cria um arquivo de dependência baseado nos símbolos que ele encontra no - conjunto existente de módulos; esse arquivo de dependência é usado por - modprobe para carregar automaticamente os módulos exigidos - - insmod - - Instala um módulo carregável no kernel em execução - - kmod - - Carrega e descarrega módulos de kernel - - lsmod - - Lista módulos atualmente carregados - - modinfo - - Examina um arquivo objeto associado com um módulo de kernel e exibe - qualquer informação que ele possa coletar - - modprobe - - Usa um arquivo de dependência, criado por depmod, para carregar - automaticamente módulos relevantes - - rmmod - - Descarrega módulos a partir do kernel em execução - - libkmod - - Essa biblioteca é usada por outros aplicativos para carregar e - descarregar módulos de kernel - -8.48. Libelf oriundo de Elfutils-0.186 - - Libelf é uma biblioteca para lidar com arquivos ELF (Executable and - Linkable Format). - Tempo aproximado de construção: 0,9 UPC - Espaço em disco exigido: 116 MB - -8.48.1. Instalação do Libelf - - Libelf é parte do pacote elfutils-0.186. Use o elfutils-0.186.tar.bz2 - como o tarball fonte. - - Prepare Libelf para compilação: -./configure --prefix=/usr \ - --disable-debuginfod \ - --enable-libdebuginfod=dummy - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale apenas Libelf: -make -C libelf install -install -vm644 config/libelf.pc /usr/lib/pkgconfig -rm /usr/lib/libelf.a - -8.48.2. Conteúdo do Libelf - - Biblioteca instalada: libelf.so (link simbólico) e libelf-0.186.so - Diretório instalado: /usr/include/elfutils - -Descrições Curtas - - libelf - - Contém funções de API para lidar com arquivos objeto ELF - -8.49. Libffi-3.4.2 - - A biblioteca Libffi fornece uma interface de programação portável e de - alto nível para várias convenções de chamada. Isso permite a uma(m) - programadora(r) chamar qualquer função especificada por uma descrição - de interface de chamada em tempo de execução. - Tempo aproximado de construção: 1,9 UPC - Espaço em disco exigido: 10 MB - -8.49.1. Instalação do Libffi - -Nota - - Semelhante a GMP, libffi constrói com otimizações específicas para o - processador em uso. Se construir para outro sistema, então exporte - CFLAGS e CXXFLAGS para especificar uma construção genérica para sua - arquitetura. Se isso não for feito, então todos os aplicativos que se - vincularem a libffi deflagrarão Illegal Operation Errors. - - Prepare libffi para compilação: -./configure --prefix=/usr \ - --disable-static \ - --with-gcc-arch=native \ - --disable-exec-static-tramp - - O significado da opção de configure: - - --with-gcc-arch=native - Garante que GCC otimiza para o sistema atual. Se isso não for - especificado, então o sistema é presumido e o código gerado - talvez não esteja correto para alguns sistemas. Se o código - gerado será copiado de um sistema nativo para um sistema menos - capaz, então use o sistema menos capaz como um parâmetro. Para - detalhes acerca de tipos de sistema alternativos, veja-se - [583]as opções de x86 no manual do GCC. - - --disable-exec-static-tramp - Desabilita o suporte de trampolim estático. Ele é uma nova - característica de segurança em libffi, porém alguns pacotes BLFS - (notadamente GJS e gobject-introspection) não foram adaptados - para ele. - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.49.2. Conteúdo do Libffi - - Biblioteca instalada: libffi.so - -Descrições Curtas - - libffi - - contém as funções da API da interface de função estrangeira - -8.50. Python-3.10.2 - - O pacote Python 3 contém o ambiente Python de desenvolvimento. Ele é - útil para programação orientada a objetos, escrita de scripts, - prototipagem de aplicativos grandes, ou desenvolvimento de aplicações - inteiras. - Tempo aproximado de construção: 4,3 UPC - Espaço em disco exigido: 275 MB - -8.50.1. Instalação do Python 3 - - Prepare Python para compilação: -./configure --prefix=/usr \ - --enable-shared \ - --with-system-expat \ - --with-system-ffi \ - --with-ensurepip=yes \ - --enable-optimizations - - O significado das opções de configure: - - --with-system-expat - Essa chave habilita vinculação contra a versão de sistema do - Expat. - - --with-system-ffi - Essa chave habilita vinculação contra a versão de sistema de - libffi. - - --with-ensurepip=yes - Essa chave habilita construir os aplicativos de empacotamento - pip e setuptools. - - --enable-optimizations - Essa chave habilita otimizações estáveis, porém onerosas. - - Compile o pacote: -make - - Executar os testes neste ponto não é recomendado. Os testes são - conhecidos por travar indefinidamente dentro de um ambiente LFS - parcial. Se desejado, então os testes podem ser reexecutados ao final - deste capítulo ou quando Python 3 for reinstalado em BLFS. Para - executar os testes de qualquer maneira, emita make test. - - Instale o pacote: -make install - - Se desejado, então instale a documentação pré-formatada: -install -v -dm755 /usr/share/doc/python-3.10.2/html - -tar --strip-components=1 \ - --no-same-owner \ - --no-same-permissions \ - -C /usr/share/doc/python-3.10.2/html \ - -xvf ../python-3.10.2-docs-html.tar.bz2 - - O significado dos comandos de instalação de documentação: - - --no-same-owner e --no-same-permissions - Garanta que os arquivos instalados tenham a propriedade e as - permissões corretas. Sem essas opções, usar tar instalará os - arquivos de pacote com os valores da(o) criadora(r) upstream. - -8.50.2. Conteúdo do Python 3 - - Aplicativos instalados: 2to3, idle3, pip3, pydoc3, python3 e - python3-config - Bibliotecas instaladas: libpython3.10.so e libpython3.so - Diretórios instalados: /usr/include/python3.10, /usr/lib/python3 e - /usr/share/doc/python-3.10.2 - -Descrições Curtas - - 2to3 - - é um aplicativo Python que lê código fonte Python 2.x e aplica uma - série de consertos para transformá-lo em código Python 3.x válido - - idle3 - - é um script encapsulador que abre um editor GUI ciente de Python. Para - esse script executar, você precisa ter instalado Tk antes do Python, de - forma que o módulo Tkinter Python seja construído - - pip3 - - O instalador de pacote para Python. Você pode usar pip para instalar - pacotes originários do Python Package Index e outros índices - - pydoc3 - - é a ferramenta de documentação Python - - python3 - - é uma linguagem de programação orientada a objeto, interativa e - interpretada - -8.51. Ninja-1.10.2 - - Ninja é um sistema de construção pequeno com um foco em velocidade. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 64 MB - -8.51.1. Instalação do Ninja - - Quando executado, ninja normalmente executa um número máximo de - processos em paralelo. Por padrão, esse é o número de núcleos no - sistema mais dois. Em alguns casos, isso pode superaquecer uma CPU ou - deixar o sistema sem memória. Se executar a partir da linha de comando, - então passar um parâmetro -jN limitará o número de processos paralelos, - porém alguns pacotes embutem a execução de ninja e não passam um - parâmetro -j. - - Usar o procedimento opcional abaixo permite que uma(m) usuária(o) - limite o número de processos paralelos via uma variável de ambiente, - NINJAJOBS. Por exemplo, configurar: -export NINJAJOBS=4 - - limitará ninja a quatro processos paralelos. - - Se desejado, então adicione a capacidade de usar a variável de ambiente - NINJAJOBS executando: -sed -i '/int Guess/a \ - int j = 0;\ - char* jobs = getenv( "NINJAJOBS" );\ - if ( jobs != NULL ) j = atoi( jobs );\ - if ( j > 0 ) return j;\ -' src/ninja.cc - - Construa Ninja com: -python3 configure.py --bootstrap - - O significado da opção de construção: - - --bootstrap - Esse parâmetro força ninja a reconstruir ele próprio para o - sistema atual. - - Para testar os resultados, execute: -./ninja ninja_test -./ninja_test --gtest_filter=-SubprocessTest.SetWithLots - - Instale o pacote: -install -vm755 ninja /usr/bin/ -install -vDm644 misc/bash-completion /usr/share/bash-completion/completions/ninj -a -install -vDm644 misc/zsh-completion /usr/share/zsh/site-functions/_ninja - -8.51.2. Conteúdo do Ninja - - Aplicativo instalado: ninja - -Descrições Curtas - - ninja - - é o sistema de construção Ninja - -8.52. Meson-0.61.1 - - Meson é um sistema de construção de código fonte aberto destinado para - ser ambos extremamente rápido e tão amigável à(ao) usuária(o) quanto - possível. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 41 MB - -8.52.1. Instalação do Meson - - Compile Meson com o seguinte comando: -python3 setup.py build - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -python3 setup.py install --root=dest -cp -rv dest/* / -install -vDm644 data/shell-completions/bash/meson /usr/share/bash-completion/com -pletions/meson -install -vDm644 data/shell-completions/zsh/_meson /usr/share/zsh/site-functions/ -_meson - - O significado dos parâmetros de install: - - --root=dest - Por padrão, python3 setup.py install instala vários arquivos - (tais como páginas de manual) em Python Eggs. Com um local raiz - especificado, setup.py instala esses arquivos na hierarquia - padrão. Então a hierarquia pode apenas ser copiada para o local - padrão. - -8.52.2. Conteúdo do Meson - - Aplicativo instalado: meson - Diretórios instalados: - /usr/lib/python3.10/site-packages/meson-0.61.1-py3.10.egg-info e - /usr/lib/python3.10/site-packages/mesonbuild - -Descrições Curtas - - meson - - Um sistema de construção de alta produtividade - -8.53. Coreutils-9.0 - - O pacote Coreutils contém utilitários para mostrar e configurar as - características básicas de sistema. - Tempo aproximado de construção: 2,6 UPC - Espaço em disco exigido: 153 MB - -8.53.1. Instalação do Coreutils - - POSIX exige que aplicativos originários do Coreutils reconheçam limites - de carácter corretamente mesmo em locales multibyte. A seguinte - correção conserta essa não-conformidade e outros defeitos relacionados - à internacionalização. -patch -Np1 -i ../coreutils-9.0-i18n-1.patch - -Nota - - No passado, muitos defeitos foram encontrados nessa correção. Quando - reportar novos defeitos para as(os) mantenedoras(es) do Coreutils, por - favor verifique primeiro se eles são reproduzíveis sem essa correção. - - Agora, conserte um problema com valores de retorno de chmod: -patch -Np1 -i ../coreutils-9.0-chmod_fix-1.patch - - Agora prepare Coreutils para compilação: -autoreconf -fiv -FORCE_UNSAFE_CONFIGURE=1 ./configure \ - --prefix=/usr \ - --enable-no-install-program=kill,uptime - - O significado das opções de configure: - - autoreconf - A correção para internacionalização modificou o sistema de - construção do pacote, então os arquivos de configuração tem de - ser regenerados. - - FORCE_UNSAFE_CONFIGURE=1 - Essa variável de ambiente permite que o pacote seja construído - como a(o) usuária(o) root. - - --enable-no-install-program=kill,uptime - O propósito dessa chave é o de impedir que o Coreutils instale - binários que serão instalados por outros pacotes posteriormente. - - Compile o pacote: -make - - Pule para “Instale o pacote†se não executar a suíte de teste. - - Agora a suíte de teste está pronta para ser executada. Primeiro, - execute os testes que são destinados a serem executados como usuária(o) - root: -make NON_ROOT_USERNAME=tester check-root - - Nós vamos executar o resto dos testes como a(o) usuária(o) tester. - Certos testes exigem que a(o) usuária(o) seja um membro de mais que um - grupo. Para que esses testes não sejam pulados, adicione um grupo - temporário e torne a(o) usuária(o) tester parte dele: -echo "dummy:x:102:tester" >> /etc/group - - Conserte algumas das permissões de modo que a(o) usuária(o) não-root - possa compilar e executar os testes: -chown -Rv tester . - - Agora execute os testes: -su tester -c "PATH=$PATH make RUN_EXPENSIVE_TESTS=yes check" - - O teste test-getlogin é conhecido por falhar dentro do ambiente chroot - do LFS. - - Remova o grupo temporário: -sed -i '/dummy/d' /etc/group - - Instale o pacote: -make install - - Mova aplicativos para os locais especificados pelo FHS: -mv -v /usr/bin/chroot /usr/sbin -mv -v /usr/share/man/man1/chroot.1 /usr/share/man/man8/chroot.8 -sed -i 's/"1"/"8"/' /usr/share/man/man8/chroot.8 - -8.53.2. Conteúdo do Coreutils - - Aplicativos instalados: [, b2sum, base32, base64, basename, basenc, - cat, chcon, chgrp, chmod, chown, chroot, cksum, comm, cp, csplit, cut, - date, dd, df, dir, dircolors, dirname, du, echo, env, expand, expr, - factor, false, fmt, fold, groups, head, hostid, id, install, join, - link, ln, logname, ls, md5sum, mkdir, mkfifo, mknod, mktemp, mv, nice, - nl, nohup, nproc, numfmt, od, paste, pathchk, pinky, pr, printenv, - printf, ptx, pwd, readlink, realpath, rm, rmdir, runcon, seq, sha1sum, - sha224sum, sha256sum, sha384sum, sha512sum, shred, shuf, sleep, sort, - split, stat, stdbuf, stty, sum, sync, tac, tail, tee, test, timeout, - touch, tr, true, truncate, tsort, tty, uname, unexpand, uniq, unlink, - users, vdir, wc, who, whoami e yes - Biblioteca instalada: libstdbuf.so (em /usr/libexec/coreutils) - Diretório instalado: /usr/libexec/coreutils - -Descrições Curtas - - [ - - É um comando atual, /usr/bin/[, que é um sinônimo para o comando test - - base32 - - Codifica e decodifica dados de acordo com a especificação base32 (RFC - 4648) - - base64 - - Codifica e decodifica dados de acordo com a especificação base64 (RFC - 4648) - - b2sum - - Imprime ou verifica somas de verificação BLAKE2 (512 bits) - - basename - - Remove qualquer caminho e um dado sufixo de um nome de arquivo - - basenc - - Codifica ou decodifica dados usando vários algoritmos - - cat - - Concatena arquivos para saída padrão - - chcon - - Muda contexto de segurança para arquivos e diretórios - - chgrp - - Muda a propriedade do grupo de arquivos e diretórios - - chmod - - Muda as permissões de cada arquivo para o modo dado; o modo pode ser ou - uma representação simbólica das mudanças a fazer ou um número octal - representando as novas permissões - - chown - - Muda a propriedade da(o) usuária(o) e (ou) grupo de arquivos e dos - diretórios - - chroot - - Executa um comando com o diretório especificado como o diretório / - - cksum - - Imprime a soma de verificação Cyclic Redundancy Check (CRC) e as - contagens de bytes de cada arquivo especificado - - comm - - Compara dois arquivos ordenados, exibindo em três colunas as linhas que - são únicas e as linhas que são comuns - - cp - - Copia arquivos - - csplit - - Divide um dado arquivo em vários novos arquivos, separando-os de acordo - com padrões dados ou números de linha e exibindo a contagem de bytes de - cada novo arquivo - - cut - - Imprime seções de linhas, selecionando as partes de acordo com campos - ou posições dados - - date - - Exibe a hora atual no formato dado, ou configura a data do sistema - - dd - - Copia um arquivo usando o tamanho de bloco e contagem dados, enquanto - opcionalmente realiza conversões sobre ele - - df - - Reporta a quantidade de espaço de disco disponível (e usada) em todos - os sistemas de arquivos montados, ou apenas nos sistemas de arquivos - contendo os arquivos selecionados - - dir - - Lista o conteúdo de cada diretório dado (o mesmo que o comando ls) - - dircolors - - Gera comandos para configurar a variável de ambiente LS_COLOR para - mudar o esquema de cores usado por ls - - dirname - - Remove o sufixo que não é diretório de um nome de arquivo - - du - - Relata a quantidade de espaço de disco usado pelo diretório atual, por - cada diretório dado (incluindo todos subdiretórios) ou por cada um dos - arquivos dados - - echo - - Exibe as sequências de caracteres dadas - - env - - Executa um comando em um ambiente modificado - - expand - - Converte tabulação para espaços - - expr - - Avalia expressões - - factor - - Imprime os fatores primos de todos os números inteiros especificados - - false - - Não faz nada, sem sucesso; sempre sai com um código de status indicando - falha - - fmt - - Reformata os parágrafos nos arquivos dados - - fold - - Quebra as linhas nos arquivos dados - - groups - - Relata relacionamentos de membro de grupo de uma(m) usuária(o) - - head - - Imprime as primeiras dez linhas (ou o número de linhas dado) de cada - arquivo dado - - hostid - - Relata o número identificador (em hexadecimal) do dispositivo - - id - - Relata o efetivo ID de usuária(o), ID de grupo, e os relacionamentos de - membro de grupo da(o) usuária(o) atual ou usuária(o) especificada(o) - - install - - Copia arquivos enquanto configura seus modos de permissão e, se - possível, seus proprietário e grupo - - join - - Junta as linhas que tem idênticos campos de junção a partir de dois - arquivos separados - - link - - Cria um hard link com o nome dado para um arquivo - - ln - - Faz hard links ou soft (simbólico) links entre arquivos - - logname - - Relata o nome de login da(o) usuária(o) atual - - ls - - Lista o conteúdo de cada diretório dado - - md5sum - - Relata ou verifica somas de verificação Message Digest 5 (MD5) - - mkdir - - Cria diretórios com os nomes dados - - mkfifo - - Cria First-In, First-Outs (FIFOs), um "pipe nomeado" na linguagem UNIX, - com os nomes dados - - mknod - - Cria nós de dispositivo com os nomes dados; um nó de dispositivo é um - arquivo especial de caractere, um arquivo especial de bloco ou um FIFO - - mktemp - - Cria arquivos temporários de uma maneira segura; é usado em scripts - - mv - - Move ou renomeia arquivos ou diretórios - - nice - - Executa um aplicativo com prioridade de agendamento modificada - - nl - - Numera as linhas a partir dos arquivos dados - - nohup - - Executa um comando imune a interrupções, com sua saída redirecionada - para um arquivo de registro - - nproc - - Imprime o número de unidades de processamento disponíveis para um - processo - - numfmt - - Converte números para ou de sequências de caracteres legíveis por - humanos - - od - - Despeja arquivos em octal e outros formatos - - paste - - Mescla os arquivos dados, unindo linhas sequencialmente correspondentes - lado a lado, separadas por caracteres de tabulação - - pathchk - - Verifica se nomes de arquivos são válidos ou portáveis - - pinky - - É um cliente de dedo leve; ele relata algumas informações sobre as(os) - usuárias(os) dadas(os) - - pr - - Pagina e coluna arquivos para impressão - - printenv - - Imprime o ambiente - - printf - - Imprime os argumentos dados de acordo com o formato dado, muito - parecido com a função printf do C - - ptx - - Produz um índice permutado a partir do conteúdo dos arquivos dados, com - cada palavra-chave no contexto dela - - pwd - - Relata o nome do diretório de trabalho atual - - readlink - - Relata o valor do link simbólico dado - - realpath - - Imprime o caminho resolvido - - rm - - Remove arquivos ou diretórios - - rmdir - - Remove diretórios se eles estiverem vazios - - runcon - - Executa um comando com contexto de segurança especificado - - seq - - Imprime uma sequência de números dentro de um dado intervalo e com um - dado incremento - - sha1sum - - Imprime ou verifica somas de verificação do Secure Hash Algorithm 1 - (SHA1) 160 bits - - sha224sum - - Imprime ou verifica somas de verificação do Secure Hash Algorithm de - 224 bits - - sha256sum - - Imprime ou verifica somas de verificação do Secure Hash Algorithm de - 256 bits - - sha384sum - - Imprime ou verifica somas de verificação do Secure Hash Algorithm de - 384 bits - - sha512sum - - Imprime ou verifica somas de verificação do Secure Hash Algorithm de - 512 bits - - shred - - Sobrescreve os arquivos dados repetidamente com padrões complexos, - tornando difícil recuperar os dados - - shuf - - Embaralha linhas do texto - - sleep - - Pausa pelo período de tempo dado - - sort - - Ordena as linhas a partir dos arquivos dados - - split - - Divide o arquivo dado em pedaços, por tamanho ou por número de linhas - - stat - - Exibe a situação de arquivo ou sistema de arquivos - - stdbuf - - Executa comandos com operações de buffer alteradas para fluxos padrão - deles - - stty - - Configura ou relata configurações de linha de terminal - - sum - - Imprime soma de verificação e contagens de blocos para cada arquivo - dado - - sync - - Libera buffers do sistema de arquivos; isso força blocos modificados - para o disco e atualiza o super bloco - - tac - - Concatena os arquivos dados em ordem reversa - - tail - - Imprime as últimas dez linhas (ou o número dado de linhas) de cada - arquivo dado - - tee - - Lê a partir da entrada padrão enquanto escreve tanto para saída padrão - quanto para os arquivos dados - - test - - Compara valores e verifica tipos de arquivos - - timeout - - Executa um comando com um limite de tempo - - touch - - Muda marcas temporais de arquivo, definindo os horários de acesso e - modificação dos arquivos dados para o horário atual; arquivos que não - existem são criados com tamanho zero - - tr - - Traduz, comprime e deleta os caracteres dados a partir da entrada - padrão - - true - - Não faz nada, com sucesso; sempre sai com um código de status indicando - sucesso - - truncate - - Comprime ou expande um arquivo para o tamanho especificado - - tsort - - Realiza uma ordenação topológica; ele escreve uma lista completamente - ordenada de acordo com a ordenação parcial em um arquivo dado - - tty - - Relata o nome de arquivo do terminal conectado à entrada padrão - - uname - - Relata informação de sistema - - unexpand - - Converte espaços para tabulação - - uniq - - Descarta todas, exceto uma das sucessivas linhas idênticas - - unlink - - Remove o arquivo dado - - users - - Relata os nomes das(os) usuárias(os) atualmente logados - - vdir - - É o mesmo que ls -l - - wc - - Relata o número de linhas, palavras e bytes para cada arquivo dado, - assim como uma linha de total quando mais que um arquivo for dado - - who - - Relata quem está logado - - whoami - - Relata o nome de usuária(o) associado com o ID de usuária(o) efetivo - atual - - yes - - Repetidamente retorna “y†ou uma sequência de caracteres dada até que - seja terminado - - libstdbuf - - Biblioteca usada por stdbuf - -8.54. Check-0.15.2 - - Check é uma estrutura de teste de unidade para C. - Tempo aproximado de construção: 0,1 UPC (cerca de 3,8 UPC com os - testes) - Espaço em disco exigido: 12 MB - -8.54.1. Instalação do Check - - Prepare Check para compilação: -./configure --prefix=/usr --disable-static - - Construa o pacote: -make - - Compilação agora está completa. Para executar a suíte de teste do - Check, execute o seguinte comando: -make check - - Instale o pacote: -make docdir=/usr/share/doc/check-0.15.2 install - -8.54.2. Conteúdo do Check - - Aplicativo instalado: checkmk - Biblioteca instalada: libcheck.so - -Descrições Curtas - - checkmk - - Script awk para gerar testes de unidade C para uso com a estrutura de - teste de unidade do Check - - libcheck.{a,so} - - Contém funções que permitem que Check seja chamado a partir de um - aplicativo de teste - -8.55. Diffutils-3.8 - - O pacote Diffutils contém aplicativos que mostram as diferenças entre - arquivos ou diretórios. - Tempo aproximado de construção: 0,6 UPC - Espaço em disco exigido: 34 MB - -8.55.1. Instalação do Diffutils - - Prepare Diffutils para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.55.2. Conteúdo do Diffutils - - Aplicativos instalados: cmp, diff, diff3 e sdiff - -Descrições Curtas - - cmp - - Compara dois arquivos e relata se ou em quais bytes eles diferem - - diff - - Compara dois arquivos ou diretórios e relata quais linhas nos arquivos - diferem - - diff3 - - Compara três arquivos linha por linha - - sdiff - - Mescla dois arquivos e interativamente exibe os resultados - -8.56. Gawk-5.1.1 - - O pacote Gawk contém aplicativos para manipular arquivos de texto. - Tempo aproximado de construção: 0,4 UPC - Espaço em disco exigido: 43 MB - -8.56.1. Instalação do Gawk - - Primeiro, garanta que alguns arquivos desnecessários não sejam - instalados: -sed -i 's/extras//' Makefile.in - - Prepare Gawk para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - - Se desejado, então instale a documentação: -mkdir -pv /usr/share/doc/gawk-5.1.1 -cp -v doc/{awkforai.txt,*.{eps,pdf,jpg}} /usr/share/doc/gawk-5.1.1 - -8.56.2. Conteúdo do Gawk - - Aplicativos instalados: awk (link para gawk), gawk e awk-5.1.1 - Bibliotecas instaladas: filefuncs.so, fnmatch.so, fork.so, inplace.so, - intdiv.so, ordchr.so, readdir.so, readfile.so, revoutput.so, - revtwoway.so, rwarray.so e time.so (todas em /usr/lib/gawk) - Diretórios instalados: /usr/lib/gawk, /usr/libexec/awk, /usr/share/awk - e /usr/share/doc/gawk-5.1.1 - -Descrições Curtas - - awk - - Um link para gawk - - gawk - - Um aplicativo para manipular arquivos de texto; é a implementação GNU - do awk - - gawk-5.1.1 - - Um hard link para gawk - -8.57. Findutils-4.9.0 - - O pacote Findutils contém aplicativos para procurar arquivos. Esses - aplicativos são fornecidos para procurar recursivamente dentro de uma - árvore de diretório e para criar, manter e buscar um banco de dados - (geralmente mais rápido que o find recursivo, porém não é confiável se - o banco de dados não for atualizado recentemente). - Tempo aproximado de construção: 0,9 UPC - Espaço em disco exigido: 51 MB - -8.57.1. Instalação do Findutils - - Prepare Findutils para compilação: -case $(uname -m) in - i?86) TIME_T_32_BIT_OK=yes ./configure --prefix=/usr --localstatedir=/var/ -lib/locate ;; - x86_64) ./configure --prefix=/usr --localstatedir=/var/lib/locate ;; -esac - - O significado das opções de configure: - - TIME_32_BIT_OK=yes - Essa configuração é necessária para construir em um sistema de - 32 bits. - - --localstatedir - Essa opção muda o local da base de dados locate para estar em - /var/lib/locate, o qual é conforme com FHS. - - Compile o pacote: -make - - Para testar os resultados, execute: -chown -Rv tester . -su tester -c "PATH=$PATH make check" - - Instale o pacote: -make install - -8.57.2. Conteúdo do Findutils - - Aplicativos instalados: find, locate, updatedb e xargs - Diretório instalado: /var/lib/locate - -Descrições Curtas - - find - - Pesquisa em árvores de diretórios dadas por arquivos correspondendo a - critérios especificados - - locate - - Pesquisa em um banco de dados de nomes de arquivo e relata os nomes que - contém uma sequência de caracteres dada ou correspondem a um padrão - dado - - updatedb - - Atualiza o banco de dados locate; ele escaneia o sistema de arquivos - inteiro (incluindo outros sistemas de arquivos que estejam montados - atualmente, a menos que dito o contrário) e coloca cada nome de arquivo - que ele encontrar no banco de dados - - xargs - - Pode ser usado para aplicar um comando dado a uma lista de arquivos - -8.58. Groff-1.22.4 - - O pacote Groff contém aplicativos para processar e formatar texto. - Tempo aproximado de construção: 0,5 UPC - Espaço em disco exigido: 88 MB - -8.58.1. Instalação do Groff - - Groff espera que a variável de ambiente PAGE contenha o tamanho de - papel padrão. Para usuárias(os) nos Estados Unidos da América do Norte, - PAGE=letter é apropriado. Em outros lugares, PAGE=A4 talvez seja mais - adequado. Embora o tamanho do papel padrão seja configurado durante a - compilação, ele pode ser substituído posteriormente ecoando ou “A4†ou - “letter†para o arquivo /etc/papersize. - - Prepare Groff para compilação: -PAGE= ./configure --prefix=/usr - - Esse pacote não suporta construção paralela. Compile o pacote: -make -j1 - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -make install - -8.58.2. Conteúdo do Groff - - Aplicativos instalados: addftinfo, afmtodit, chem, eqn, eqn2graph, - gdiffmk, glilypond, gperl, gpinyin, grap2graph, grn, grodvi, groff, - groffer, grog, grolbp, grolj4, gropdf, grops, grotty, hpftodit, - indxbib, lkbib, lookbib, mmroff, neqn, nroff, pdfmom, pdfroff, pfbtops, - pic, pic2graph, post-grohtml, preconv, pre-grohtml, refer, roff2dvi, - roff2html, roff2pdf, roff2ps, roff2text, roff2x, soelim, tbl, tfmtodit - e troff - Diretórios instalados: /usr/lib/groff, /usr/share/doc/groff-1.22.4 e - /usr/share/groff - -Descrições Curtas - - addftinfo - - Lê um arquivo de fonte troff e adiciona algumas informações de métrica - de fonte adicionais que são usadas pelo sistema groff - - afmtodit - - Cria um arquivo de fonte para uso com groff e grops - - chem - - Preprocessador Groff para produzir diagramas de estrutura química - - eqn - - Compila descrições de equações embutidas em arquivos de entrada troff - em comandos que são entendidos por troff - - eqn2graph - - Converte uma EQN (equação) troff em uma imagem recortada - - gdiffmk - - Marca diferenças entre arquivos groff/nroff/troff - - glilypond - - Transforma partituras escritas na linguagem lilypond na linguagem groff - - gperl - - Preprocessador para groff, permitindo adição do código perl em arquivos - groff - - gpinyin - - Preprocessador para groff, permitindo adição do idioma semelhante a - Chinês Europeu Pinyin em arquivos groff - - grap2graph - - Converte um diagrama grap em uma imagem de bitmap recortada - - grn - - Um preprocessador groff para arquivos gremlin - - grodvi - - Um controlador para groff que produz formato dvi do TeX - - groff - - Um frontal para o sistema de formatação de documentos groff; - normalmente, ele executa o aplicativo troff e um pós-processador - apropriado para o dispositivo selecionado - - groffer - - Exibe arquivos groff e páginas de manual em terminais X e tty - - grog - - Lê arquivos e advinha quais das opções groff -e, -man, -me, -mm, -ms, - -p, -s e -t são exigidas para imprimir arquivos, e relata o comando - groff incluindo aquelas opções - - grolbp - - É um controlador groff para impressoras Canon CAPSL (impressoras a - laser séries LBP-4 e LBP-8) - - grolj4 - - É um controlador para groff que produz saída no formato PCL5 adequado - para uma impressora HP LaserJet 4 - - gropdf - - Traduz a saída do GNU troff para PDF - - grops - - Traduz a saída do GNU troff para PostScript - - grotty - - Traduz a saída do GNU troff em uma forma adequada para dispositivos - semelhantes a máquina de escrever - - hpftodit - - Cria um arquivo de fonte para uso com groff -Tlj4 a partir de um - arquivo de métrica de fonte rotulada HP - - indxbib - - Cria um índice invertido para os bancos de dados bibliográficos com um - arquivo especificado para uso com refer, lookbib e lkbib - - lkbib - - Pesquisa em bancos de dados bibliográficos por referências que - contenham chaves especificadas e relata quaisquer referências - encontradas - - lookbib - - Imprime um prompt na saída de erro padrão (a não ser que a entrada - padrão não seja um terminal); lê uma linha contendo um conjunto de - palavras chave a partir da entrada padrão; pesquisa em bancos de dados - bibliográficos, em um arquivo especificado, por referências contendo - aquelas palavras chave; imprime quaisquer referências encontradas na - saída padrão; e repete esse processo até o final da entrada - - mmroff - - Um preprocessador simples para groff - - neqn - - Formata equações para saída American Standard Code for Information - Interchange (ASCII) - - nroff - - Um script que emula o comando nroff usando groff - - pdfmom - - É um encapsulador em torno de groff que facilita a produção de - documentos PDF a partir de arquivos formatados com as macros mom - - pdfroff - - Cria documentos pdf usando groff - - pfbtops - - Traduz uma fonte PostScript em formato .pfb para ASCII - - pic - - Compila descrições de imagens embutidas em arquivos de entrada troff ou - TeX em comandos entendidos por TeX ou troff - - pic2graph - - Converte um diagrama PIC em uma imagem recortada - - post-grohtml - - Traduz a saída do GNU troff para HTML - - preconv - - Converte codificação de arquivos de entrada em alguma coisa que o GNU - troff entende - - pre-grohtml - - Traduz a saída do GNU troff para HTML - - refer - - Copia o conteúdo de um arquivo para a saída padrão, exceto aquelas - linhas entre .[ e .] que são interpretadas como citações, e linhas - entre .R1 e .R2 que são interpretadas como comandos para como citações - são para serem processadas - - roff2dvi - - Transforma arquivos roff para o formato DVI - - roff2html - - Transforma arquivos roff para o formato HTML - - roff2pdf - - Transforma arquivos roff em PDFs - - roff2ps - - Transforma arquivos roff em arquivos ps - - roff2text - - Transforma arquivos roff em arquivos de texto - - roff2x - - Transforma arquivos roff em outros formatos - - soelim - - Lê arquivos e substitui linhas da forma .so arquivo pelo conteúdo do - arquivo mencionado - - tbl - - Compila descrições de tabelas embutidas em arquivos de entrada troff em - comandos que são entendidos por troff - - tfmtodit - - Cria um arquivo fonte para uso com groff -Tdvi - - troff - - É altamente compatível com o troff do Unix; ele usualmente deveria ser - invocado usando o comando groff, o qual também executará - preprocessadores e pós-processadores na ordem apropriada e com as - opções apropriadas - -8.59. GRUB-2.06 - - O pacote GRUB contém o GRand Unified Bootloader. - Tempo aproximado de construção: 0,7 UPC - Espaço em disco exigido: 158 MB - -8.59.1. Instalação do GRUB - -Nota - - Se seu sistema tem suporte UEFI e você deseja inicializar LFS com UEFI, - então você pode pular esse pacote em LFS, e instalar GRUB com suporte - UEFI (e as dependências dele) seguindo [584]a página BLFS ao final - deste capítulo. - - Prepare GRUB para compilação: -./configure --prefix=/usr \ - --sysconfdir=/etc \ - --disable-efiemu \ - --disable-werror - - O significado das novas opções de configure: - - --disable-werror - Isso permite que a construção complete com avisos introduzidos - por mais recentes versões do Flex. - - --disable-efiemu - Essa opção minimiza o que é construído desabilitando uma - característica e aplicativos de teste não necessários para o - LFS. - - Compile o pacote: -make - - A suíte de teste para esse pacote não é recomendada. A maioria dos - testes depende de pacotes que não estão disponíveis no limitado - ambiente do LFS. Para executar os testes mesmo assim, execute make - check. - - Instale o pacote: -make install -mv -v /etc/bash_completion.d/grub /usr/share/bash-completion/completions - - Usar GRUB para tornar seu sistema LFS inicializável será discutido em - [585]Seção 10.4, “Usando o GRUB para Configurar o Processo de - Inicializaçãoâ€. - -8.59.2. Conteúdo do GRUB - - Aplicativos instalados: grub-bios-setup, grub-editenv, grub-file, - grub-fstest, grub-glue-efi, grub-install, grub-kbdcomp, grub-macbless, - grub-menulst2cfg, grub-mkconfig, grub-mkimage, grub-mklayout, - grub-mknetdir, grub-mkpasswd-pbkdf2, grub-mkrelpath, grub-mkrescue, - grub-mkstandalone, grub-ofpathname, grub-probe, grub-reboot, - grub-render-label, grub-script-check, grub-set-default, - grub-sparc64-setup e grub-syslinux2cfg - Diretórios instalados: /usr/lib/grub, /etc/grub.d, /usr/share/grub e - /boot/grub (quando grub-install for primeiro executado) - -Descrições Curtas - - grub-bios-setup - - É um aplicativo auxiliar para grub-install - - grub-editenv - - Uma ferramenta para editar o bloco ambiente - - grub-file - - Verifica se FILE é do tipo especificado - - grub-fstest - - Ferramenta para depurar o controlador de sistema de arquivos - - grub-glue-efi - - Processa imagens EFI ia32 e amd64 e cola elas de acordo com formato - Apple - - grub-install - - Instala o GRUB no seu controlador - - grub-kbdcomp - - Script que converte um esquema xkb em um reconhecido por GRUB - - grub-macbless - - Bênção estilo Mac sobre arquivos HFS ou HFS+ - - grub-menulst2cfg - - Converte um menu.lst do GRUB Legacy em um grub.cfg para uso com GRUB 2 - - grub-mkconfig - - Gera um arquivo de configuração grub - - grub-mkimage - - Faz uma imagem inicializável do GRUB - - grub-mklayout - - Gera um arquivo de esquema de teclado do GRUB - - grub-mknetdir - - Prepara um diretório de inicialização de rede GRUB - - grub-mkpasswd-pbkdf2 - - Gera uma senha PBKDF2 encriptada para uso no menu de inicialização - - grub-mkrelpath - - Faz um caminho de sistema relativo à raiz dele - - grub-mkrescue - - Faz uma imagem inicializável do GRUB adequada para um disquete ou - CDROM/DVD - - grub-mkstandalone - - Gera uma imagem independente - - grub-ofpathname - - É um programa auxiliar que imprime o caminho de um dispositivo GRUB - - grub-probe - - Sonda informação de dispositivo para um caminho ou dispositivo dado - - grub-reboot - - Configura a entrada de inicialização padrão para o GRUB para a próxima - inicialização apenas - - grub-render-label - - Renderiza .disk_label da Apple para Macs da Apple - - grub-script-check - - Verifica script de configuração do GRUB para erros de sintaxe - - grub-set-default - - Configura a entrada de inicialização padrão para o GRUB - - grub-sparc64-setup - - É um programa auxiliar para grub-setup - - grub-syslinux2cfg - - Transforma um arquivo de configuração syslinux no formato grub.cfg - -8.60. Gzip-1.11 - - O pacote Gzip contém aplicativos para compressão e descompressão de - arquivos. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 20 MB - -8.60.1. Instalação do Gzip - - Prepare Gzip para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.60.2. Conteúdo do Gzip - - Aplicativos instalados: gunzip, gzexe, gzip, uncompress (hard link com - gunzip), zcat, zcmp, zdiff, zegrep, zfgrep, zforce, zgrep, zless, zmore - e znew - -Descrições Curtas - - gunzip - - Descomprime arquivos gzipados - - gzexe - - Cria arquivos executáveis auto-descomprimíveis - - gzip - - Comprime os arquivos dados usando codificação Lempel-Ziv (LZ77) - - uncompress - - Descomprime arquivos comprimidos - - zcat - - Descomprime os arquivos gzipados dados para a saída padrão - - zcmp - - Executa cmp em arquivos gzipados - - zdiff - - Executa diff em arquivos gzipados - - zegrep - - Executa egrep em arquivos gzipados - - zfgrep - - Executa fgrep em arquivos gzipados - - zforce - - Força uma extensão .gz em todos os arquivos dados que são arquivos - gzipados, de modo que o gzip não comprimirá eles novamente; isso pode - ser útil quando nomes de arquivo foram truncados durante uma - transferência de arquivo - - zgrep - - Executa grep em arquivos gzipados - - zless - - Executa less em arquivos gzipados - - zmore - - Executa more em arquivos gzipados - - znew - - Recomprime arquivos oriundos do formato compress para formato gzip—.Z - para .gz - -8.61. IPRoute2-5.16.0 - - O pacote IPRoute2 contém aplicativos para redes baseadas em IPV4 - básicas e avançadas. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 15 MB - -8.61.1. Instalação do IPRoute2 - - O aplicativo arpd incluído nesse pacote não será construído dado que - ele é dependente do Berkeley DB, o qual não é instalado em LFS. - Entretanto, um diretório para arpd e uma página de manual ainda serão - instalados. Impeça isso executando os comandos abaixo. Se o binário - arpd for necessário, então instruções para compilar o Berkeley DB podem - ser encontradas no Livro BLFS em - [586]https://www.linuxfromscratch.org/blfs/view/stable-systemd/server/d - b.html. -sed -i /ARPD/d Makefile -rm -fv man/man8/arpd.8 - - Compile o pacote: -make - - Esse pacote não tem uma suíte de teste funcional. - - Instale o pacote: -make SBINDIR=/usr/sbin install - - Se desejado, então instale a documentação: -mkdir -pv /usr/share/doc/iproute2-5.16.0 -cp -v COPYING README* /usr/share/doc/iproute2-5.16.0 - -8.61.2. Conteúdo do IPRoute2 - - Aplicativos instalados: bridge, ctstat (link para lnstat), genl, ifcfg, - ifstat, ip, lnstat, nstat, routef, routel, rtacct, rtmon, rtpr, rtstat - (link para lnstat), ss e tc - Diretórios instalados: /etc/iproute2, /usr/lib/tc e - /usr/share/doc/iproute2-5.16.0 - -Descrições Curtas - - bridge - - Configura pontes de redes - - ctstat - - Utilitário de situação de conexão - - genl - - Frontal utilitário de link de rede genérico - - ifcfg - - Um encapsulador de script de shell para o comando ip [Note que ele - exige os aplicativos arping e rdisk originários do pacote iputils - encontrado em [587]http://www.skbuff.net/iputils/] - - ifstat - - Mostra as estatísticas de interface, incluindo a quantidade de pacotes - transmitidos e recebidos pela interface - - ip - - O executável principal. Ele tem várias funções: - - ip link permite usuárias(os) olharem para o estado de - dispositivos e fazerem mudanças - - ip addr permite usuárias(os) olharem para endereços e propriedades - deles, adicionarem novos endereços e deletarem antigos - - ip neighbor permite usuárias(os) olharem para vínculos de vizinho e - propriedades deles, adicionarem novas entradas de vizinho e deletarem - as antigas - - ip rule permite usuárias(os) olharem para políticas de roteamento e - mudar elas - - ip route permite usuárias(os) olharem para a tabela de roteamento e - mudar regras de tabela de roteamento - - ip tunnel permite usuárias(os) olharem para os tuneis IP e propriedades - deles, e mudar elas - - ip maddr permite usuárias(os) olharem para os endereços multicast e - propriedades deles, e mudar elas - - ip mroute permite usuárias(os) configurarem, mudarem ou deletarem o - roteamento multicast - - ip monitor permite usuárias(os) continuamente monitorarem o estado de - dispositivos, endereços e rotas - - lnstat - - Fornece estatísticas de rede do Linux; ele é uma substituição difundida - e mais completa de características para o antigo aplicativo rtstat - - nstat - - Mostra estatísticas de rede - - routef - - Um componente do ip route. Isso é para esvaziar as tabelas de - roteamento - - routel - - Um componente do ip route. Isso é para listar as tabelas de roteamento - - rtacct - - Exibe o conteúdo de /proc/net/rt_acct - - rtmon - - Utilitário de monitoramento de rota - - rtpr - - Converte a saída de ip -o de volta em um formato legível - - rtstat - - Utilitário de situação de rota - - ss - - Similar ao comando netstat; exibe conexões ativas - - tc - - Executável de Controle de Tráfego; isso é para implementações de - Quality Of Service (QOS) e Class Of Service (COS) - - tc qdisc permite usuárias(os) configurarem a disciplina de - enfileiramento - - tc class permite usuárias(os) configurarem classes baseadas no - agendamento de disciplina de enfileiramento - - tc estimator permite usuárias(os) estimarem o fluxo de rede dentro de - uma rede - - tc filter permite usuárias(os) configurarem a filtragem de pacote - QOS/COS - - tc policy permite usuárias(os) configurarem as políticas de QOS/COS - -8.62. Kbd-2.4.0 - - O pacote Kbd contém arquivos de tabelas de teclas, fontes de console e - utilitários de teclado. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 33 MB - -8.62.1. Instalação do Kbd - - O comportamento das teclas backspace e delete não é consistente ao - longo dos mapas de teclas no pacote Kbd. A seguinte correção conserta - esse problema para mapas de tecla i386: -patch -Np1 -i ../kbd-2.4.0-backspace-1.patch - - Após corrigir, a tecla backspace gera o carácter com código 127 e a - tecla delete gera uma sequência bem conhecida de escape. - - Remova o aplicativo redundante resizecons (ele exige que a defunta - svgalib forneça os arquivos de modo de vídeo - para uso normal setfont - dimensiona o console adequadamente) juntamente com a página de manual - dele. -sed -i '/RESIZECONS_PROGS=/s/yes/no/' configure -sed -i 's/resizecons.8 //' docs/man/man8/Makefile.in - - Prepare Kbd para compilação: -./configure --prefix=/usr --disable-vlock - - O significado da opção de configure: - - --disable-vlock - Essa opção evita que o utilitário vlock seja construído, pois - ele exige a biblioteca PAM, que não está disponível no ambiente - chroot. - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -Nota - - Para alguns idiomas (por exemplo, Bielorrusso) o pacote Kbd não fornece - um mapa de tecla útil onde o regular mapa de tecla “by†supõe a - codificação ISO-8859-5, e o mapa de tecla CP1251 normalmente é usado. - Usuárias(os) de tais idiomas tem que baixar mapas de tecla funcionais - separadamente. - - Se desejado, então instale a documentação: -mkdir -pv /usr/share/doc/kbd-2.4.0 -cp -R -v docs/doc/* /usr/share/doc/kbd-2.4.0 - -8.62.2. Conteúdo do Kbd - - Aplicativos instalados: chvt, deallocvt, dumpkeys, fgconsole, - getkeycodes, kbdinfo, kbd_mode, kbdrate, loadkeys, loadunimap, mapscrn, - openvt, psfaddtable (link para psfxtable), psfgettable (link para - psfxtable), psfstriptable (link para psfxtable), psfxtable, setfont, - setkeycodes, setleds, setmetamode, setvtrgb, showconsolefont, showkey, - unicode_start e unicode_stop - Diretórios instalados: /usr/share/consolefonts, - /usr/share/consoletrans, /usr/share/keymaps, /usr/share/doc/kbd-2.4.0 e - /usr/share/unimaps - -Descrições Curtas - - chvt - - Muda o terminal virtual de primeiro plano - - deallocvt - - Desaloca terminais virtuais não usados - - dumpkeys - - Despeja as tabelas de tradução de teclado - - fgconsole - - Imprime o número do terminal virtual ativo - - getkeycodes - - Imprime a tabela de mapeamento de código de escaneamento para código de - tecla do kernel - - kbdinfo - - Obtém informação sobre a situação de um console - - kbd_mode - - Relata ou configura o modo de teclado - - kbdrate - - Configura as taxas de repetição e atraso de teclado - - loadkeys - - Carrega as tabelas de tradução de teclado - - loadunimap - - Carrega a tabela de mapeamento unicode para fonte do kernel - - mapscrn - - Um aplicativo obsoleto que costumava carregar uma tabela de mapeamento - de caractere de saída definida pela(o) usuária(o) para dentro do - controlador de console; isso é feito agora por setfont - - openvt - - Inicia um aplicativo em um novo terminal virtual (VT) - - psfaddtable - - Adiciona uma tabela de carácter Unicode para uma fonte de console - - psfgettable - - Extrai a tabela de carácter Unicode embutida a partir de uma fonte de - console - - psfstriptable - - Remove a tabela de carácter Unicode embutida a partir de uma fonte de - console - - psfxtable - - Lida com tabelas de carácter Unicode para fontes de console - - setfont - - Muda as fontes Enhanced Graphic Adapter (EGA) e Video Graphics Array - (VGA) no console - - setkeycodes - - Carrega entradas de tabela de mapeamento de código de escaneamento para - código de tecla do kernel; isso é útil se existirem teclas incomuns no - teclado - - setleds - - Configura os sinalizadores de teclado e Light Emitting Diodes (LEDs) - - setmetamode - - Define o manuseio de meta tecla de teclado - - setvtrgb - - Configura o mapa de cor de console em todos os terminais virtuais - - showconsolefont - - Exibe a fonte de tela de console EGA/VGA atual - - showkey - - Relata os códigos de escaneamento, códigos de tecla e códigos ASCII das - teclas pressionadas no teclado - - unicode_start - - Põe o teclado e console em modo UNICODE [Não use esse aplicativo a - menos que seu arquivo de mapa de tecla esteja na codificação - ISO-8859-1. Para outras codificações, esse utilitário produz resultados - incorretos.] - - unicode_stop - - Reverte teclado e console do modo UNICODE - -8.63. Libpipeline-1.5.5 - - O pacote Libpipeline contém uma biblioteca para manipular pipelines de - subprocessos em uma maneira flexível e conveniente. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 9,7 MB - -8.63.1. Instalação do Libpipeline - - Prepare Libpipeline para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.63.2. Conteúdo do Libpipeline - - Biblioteca instalada: libpipeline.so - -Descrições Curtas - - libpipeline - - Essa biblioteca é usada para seguramente construir pipelines entre - subprocessos - -8.64. Make-4.3 - - O pacote Make contém um aplicativo para controlar a geração de - executáveis e outros arquivos não fonte de um pacote a partir de - arquivos fonte. - Tempo aproximado de construção: 0,5 UPC - Espaço em disco exigido: 13 MB - -8.64.1. Instalação do Make - - Prepare Make para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.64.2. Conteúdo do Make - - Aplicativo instalado: make - -Descrições Curtas - - make - - Automaticamente determina quais partes de um pacote precisam ser - (re)compiladas e então emite os comandos relevantes - -8.65. Patch-2.7.6 - - O pacote Patch contém um aplicativo para modificar ou criar arquivos - por aplicação de um arquivo “patch†tipicamente criado pelo aplicativo - diff. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 12 MB - -8.65.1. Instalação do Patch - - Prepare Patch para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.65.2. Conteúdo do Patch - - Aplicativo instalado: patch - -Descrições Curtas - - patch - - Modifica arquivos de acordo com um arquivo de correção (Um arquivo de - correção normalmente é uma listagem de diferenças criada com o - aplicativo diff. Aplicando essas diferenças aos arquivos originais, - patch cria as versões corrigidas.) - -8.66. Tar-1.34 - - O pacote Tar fornece a habilidade para criar arquivamentos tar bem como - realizar vários outros tipos de manipulação de arquivamento. Tar pode - ser usado em arquivamentos previamente criados para extrair arquivos, - para armazenar arquivos adicionais, ou para atualizar ou listar - arquivos que já foram armazenados. - Tempo aproximado de construção: 1,7 UPC - Espaço em disco exigido: 40 MB - -8.66.1. Instalação do Tar - - Prepare Tar para compilação: -FORCE_UNSAFE_CONFIGURE=1 \ -./configure --prefix=/usr - - O significado da opção de configure: - - FORCE_UNSAFE_CONFIGURE=1 - Isso força o teste para mknod ser executado como root. - Geralmente é considerado perigoso executar esse teste como a(o) - usuária(o) root, porém como ele está sendo executado em um - sistema que foi apenas parcialmente construído, substituir ele - está OK. - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Um teste, capabilities: binary store/restore, é conhecido por falhar se - ele for executado (LFS carece de selinux), porém será pulado se o - kernel do anfitrião não suportar atributos estendidos no sistema de - arquivos usado para construir LFS. - - Instale o pacote: -make install -make -C doc install-html docdir=/usr/share/doc/tar-1.34 - -8.66.2. Conteúdo do Tar - - Aplicativo instalado: tar - Diretório instalado: /usr/share/doc/tar-1.34 - -Descrições Curtas - - tar - - Cria, extrai arquivos originários de, e lista o conteúdo de - arquivamentos, também conhecidos como tarballs - -8.67. Texinfo-6.8 - - O pacote Texinfo contém aplicativos para leitura, escrita e conversão - de páginas info. - Tempo aproximado de construção: 0,6 UPC - Espaço em disco exigido: 112 MB - -8.67.1. Instalação do Texinfo - - Prepare Texinfo para compilação: -./configure --prefix=/usr - - Novamente, conserte um problema ao construir o pacote com Glibc-2.34 ou - posterior: -sed -e 's/__attribute_nonnull__/__nonnull/' \ - -i gnulib/lib/malloc/dynarray-skeleton.c - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - - Opcionalmente, instale os componentes pertencentes a uma instalação de - TeX: -make TEXMF=/usr/share/texmf install-tex - - O significado do parâmetro de make: - - TEXMF=/usr/share/texmf - A variável de arquivo make TEXMF mantém o local da raiz da - árvore do TeX se, por exemplo, um pacote do TeX seja instalado - posteriormente. - - O sistema de documentação Info usa um arquivo de texto simples para - manter a lista de entradas de menu dele. O arquivo está localizado em - /usr/share/info/dir. Infelizmente, devido a problemas ocasionais nos - arquivos Make de vários pacotes, ele pode as vezes sair de sincronia - com as páginas info instaladas no sistema. Se o arquivo - /usr/share/info/dir alguma vez precisar ser recriado, então os - seguintes comandos opcionais realizarão a tarefa: -pushd /usr/share/info - rm -v dir - for f in * - do install-info $f dir 2>/dev/null - done -popd - -8.67.2. Conteúdo do Texinfo - - Aplicativos instalados: info, install-info, makeinfo (link para - texi2any), pdftexi2dvi, pod2texi, texi2any, texi2dvi, texi2pdf e - texindex - Bibliotecas instaladas: MiscXS.so, Parsetexi.so e XSParagraph.so (todas - em /usr/lib/texinfo) - Diretórios instalados: /usr/share/texinfo e /usr/lib/texinfo - -Descrições Curtas - - info - - Usado para ler páginas info as quais são similares a páginas de manual, - porém frequentemente vão muito mais fundo que somente explanar todas as - opções de linha de comando disponíveis [Por exemplo, compare man bison - e info bison] - - install-info - - Usado para instalar páginas info; ele atualiza entradas no arquivo de - índice info - - makeinfo - - Traduz os documentos fonte do Texinfo dados para páginas info, texto - simples ou HTML - - pdftexi2dvi - - Usado para formatar o documento do Texinfo dado em um arquivo Portable - Document Format (PDF) - - pod2texi - - Converte Pod para formato Texinfo - - texi2any - - Traduz documentação fonte do Texinfo para vários outros formatos - - texi2dvi - - Usado para formatar o documento do Texinfo dado em um arquivo - independente de dispositivo que pode ser impresso - - texi2pdf - - Usado para formatar o documento do Texinfo dado em um arquivo Portable - Document Format (PDF) - - texindex - - Usado para ordenar arquivos de índice do Texinfo - -8.68. Vim-8.2.4383 - - O pacote Vim contém um editor de texto poderoso. - Tempo aproximado de construção: 2,4 UPC - Espaço em disco exigido: 206 MB - -Alternativas ao Vim - - Se você preferir outro editor—como Emacs, Joe ou Nano—por favor - consulte - [588]https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/ - editors.html para instruções de instalação sugeridas. - -8.68.1. Instalação do Vim - - Primeiro, mude o local padrão do arquivo de configuração vimrc para - /etc: -echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h - - Prepare vim para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para preparar os testes, garanta que usuária(o) tester pode escrever na - árvore de fonte: -chown -Rv tester . - - Agora execute os testes como usuária(o) tester: -su tester -c "LANG=en_US.UTF-8 make -j1 test" &> vim-test.log - - A suíte de teste emite muitos dados binários para a tela. Isso pode - causar problemas com as configurações do terminal atual. O problema - pode ser evitado redirecionando a saída para um arquivo de registro - conforme mostrado acima. Um teste bem sucedido resultará nas palavras - "ALL DONE" no arquivo de registro ao completar. - - Instale o pacote: -make install - - Muitas(os) usuárias(os) estão acostumadas(os) a usar vi em vez de vim. - Para permitir a execução do vim quando usuárias(os) habitualmente - digitarem vi, crie um link simbólico para ambos o binário e a página de - manual nos idiomas fornecidos: -ln -sv vim /usr/bin/vi -for L in /usr/share/man/{,*/}man1/vim.1; do - ln -sv vim.1 $(dirname $L)/vi.1 -done - - Por padrão, a documentação do vim é instalada em /usr/share/vim. O - seguinte link simbólico permite que a documentação seja acessada via - /usr/share/doc/vim-8.2.4383, tornando ela consistente com o local da - documentação para outros pacotes: -ln -sv ../vim/vim82/doc /usr/share/doc/vim-8.2.4383 - - Se um X Window System vier a ser instalado no sistema LFS, então talvez - seja necessário recompilar vim após instalar X. O Vim vem com uma - versão GUI do editor que exige o X e algumas bibliotecas adicionais - para ser instalada. Para mais informações sobre esse processo, consulte - a documentação de vim e a página de instalação de vim no livro BLFS em - [589]https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/ - vim.html. - -8.68.2. Configurando Vim - - Por padrão, vim executa em modo incompatível com vi. Isso talvez seja - novo para usuárias(os) que usaram outros editores no passado. A - configuração “nocompatible†está incluída abaixo para destacar o fato - de que um novo comportamento está sendo usado. Ela também lembra - àquelas(es) que mudariam para o modo “compatible†que esse deveria ser - a primeira configuração no arquivo de configuração. Isso é necessário, - pois ela muda outras configurações, e substituições precisam vir após - essa configuração. Crie um arquivo de configuração vim padrão - executando o seguinte: -cat > /etc/vimrc << "EOF" -" Begin /etc/vimrc - -" Ensure defaults are set before customizing settings, not after -source $VIMRUNTIME/defaults.vim -let skip_defaults_vim=1 - -set nocompatible -set backspace=2 -set mouse= -syntax on -if (&term == "xterm") || (&term == "putty") - set background=dark -endif - -" End /etc/vimrc -EOF - - A configuração set nocompatible faz com que vim se comporte de uma - maneira mais útil (o padrão) que a maneira compatível com vi. Remova o - “no†para manter o comportamento vi antigo. A configuração set - backspace=2 permite retroceder sobre quebras de linha, auto recuos e o - início de uma inserção. O parâmetro syntax on habilita o destaque de - sintaxe do vim. A configuração set mouse= habilita adequada colagem de - texto com o mouse quando trabalhar em chroot ou por meio de uma conexão - remota. Finalmente, a declaração if com a configuração set - background=dark corrige a suposição do vim sobre a cor de segundo plano - de alguns emuladores de terminal. Isso dá ao destaque um esquema de - cores melhor para uso no segundo plano preto desses aplicativos. - - Documentação para outras opções disponíveis pode ser obtida executando - o seguinte comando: -vim -c ':options' - -Nota - - Por padrão, vim instala apenas arquivos de soletrar para o idioma - inglês. Para instalar arquivos de soletrar para seu idioma preferido, - baixe os arquivos *.spl e, opcionalmente, o *.sug para seu idioma e - codificação de caracter a partir de - [590]ftp://ftp.vim.org/pub/vim/runtime/spell/ e salve-os em - /usr/share/vim/vim82/spell/. - - Para usar esses arquivos de soletrar, alguma configuração em /etc/vimrc - é necessária, por exemplo: -set spelllang=en,ru -set spell - - Para mais informação, veja o arquivo README apropriado localizado na - URL acima. - -8.68.3. Conteúdo do Vim - - Aplicativos instalados: ex (link para vim), rview (link para vim), rvim - (link para vim), vi (link para vim), view (link para vim), vim, vimdiff - (link para vim), vimtutor e xxd - Diretório instalado: /usr/share/vim - -Descrições Curtas - - ex - - Inicia vim em modo ex - - rview - - É uma versão restrita do view; nenhum comando de shell pode ser - iniciado e view não pode ser suspenso - - rvim - - É uma versão restrita do vim; nenhum comando de shell pode ser iniciado - e vim não pode ser suspenso - - vi - - Link para vim - - view - - Inicia vim em modo somente leitura - - vim - - É o editor - - vimdiff - - Edita duas ou três versões de um arquivo com vim e exibe diferenças - - vimtutor - - Ensina as teclas básicas e comandos do vim - - xxd - - Cria um despejo hexadecimal do arquivo dado; ele também pode fazer o - reverso, de forma que ele pode ser usado para correção de binário - -8.69. MarkupSafe-2.0.1 - - MarkupSafe é um módulo do Python que implementa sequência de caracteres - segura XML/HTML/XHTML Markup. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 520 KB - -8.69.1. Instalação do MarkupSafe - - Compile MarkupSafe com o seguinte comando: -python3 setup.py build - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -python3 setup.py install --optimize=1 - -8.69.2. Conteúdo do MarkupSafe - - Diretório instalado: - /usr/lib/python3.10/site-packages/MarkupSafe-2.0.1-py3.10.egg - -8.70. Jinja2-3.0.3 - - Jinja2 é um módulo do Python que implementa uma linguagem de modelo - pitônico simples. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 3,7 MB - -8.70.1. Instalação do Jinja2 - - Instale o pacote: -python3 setup.py install --optimize=1 - -8.70.2. Conteúdo do Jinja2 - - Diretório instalado: - /usr/lib/python3.10/site-packages/Jinja2-3.0.3-py3.10.egg - -8.71. Systemd-250 - - O pacote systemd contém aplicativos para controlar a inicialização, - execução e desligamento do sistema. - Tempo aproximado de construção: 2,2 UPC - Espaço em disco exigido: 273 MB - -8.71.1. Instalação do systemd - - Primeiro, aplique uma correção para consertar uma vulnerabilidade de - segurança e regressões com nomes de dispositivo e unidades ociosas: -patch -Np1 -i ../systemd-250-upstream_fixes-1.patch - - Remova dois grupos desnecessários, render e sgx, das regras udev - padrão: -sed -i -e 's/GROUP="render"/GROUP="video"/' \ - -e 's/GROUP="sgx", //' rules.d/50-udev-default.rules.in - - Prepare systemd para compilação: -mkdir -p build -cd build - -meson --prefix=/usr \ - --sysconfdir=/etc \ - --localstatedir=/var \ - --buildtype=release \ - -Dblkid=true \ - -Ddefault-dnssec=no \ - -Dfirstboot=false \ - -Dinstall-tests=false \ - -Dldconfig=false \ - -Dsysusers=false \ - -Db_lto=false \ - -Drpmmacrosdir=no \ - -Dhomed=false \ - -Duserdb=false \ - -Dman=false \ - -Dmode=release \ - -Ddocdir=/usr/share/doc/systemd-250 \ - .. - - O significado das opções de meson: - - --buildtype=release - Essa chave substitui o tipo de construção padrão (“debugâ€), o - qual produziria binários não otimizados. - - -Ddefault-dnssec=no - Essa chave desliga o suporte DNSSEC experimental. - - -Dfirstboot=false - Essa chave impede a instalação de serviços do systemd - responsáveis por configurar o sistema pela primeira vez. Eles - não são úteis para LFS, pois tudo é feito manualmente. - - -Dinstall-tests=false - Essa chave impede a instalação dos testes compilados. - - -Dldconfig=false - Essa chave impede a instalação de uma unidade do systemd que - executa ldconfig ao inicializar, a qual não é útil para - distribuições de fonte tais como LFS e torna o tempo de - inicialização mais longo. Remova ela se a característica - descrita for desejada. - - -Dsysusers=false - Essa chave impede a instalação de serviços do systemd - responsáveis por configurar os arquivos /etc/group e - /etc/passwd. Ambos os arquivos foram criados no capítulo - anterior. Esse daemon não é útil em um sistema LFS dado que - contas de usuária(o) são criadas manualmente. - - -Drpmmacrosdir=no - Essa chave desabilita a instalação de Macros RPM para uso com o - systemd, pois LFS não suporta RPM. - - -D{userdb,homed}=false - Remova dois daemons que tem dependências que não se encaixam no - escopo do LFS. - - -Dman=false - Impeça a geração de páginas de manual para evitar dependências - extras. Nós instalaremos páginas de manual pré-geradas para o - systemd a partir de um tarball posteriormente. - - -Dmode=release - Desabilite algumas características consideradas experimentais - pela(o) upstream. - - Compile o pacote: -ninja - - Instale o pacote: -ninja install - - Instale as páginas de manual: -tar -xf ../../systemd-man-pages-250.tar.xz --strip-components=1 -C /usr/share/ma -n - - Remova um diretório inútil: -rm -rf /usr/lib/pam.d - - Crie o arquivo /etc/machine-id necessitado por systemd-journald: -systemd-machine-id-setup - - Configure a estrutura alvo básica: -systemctl preset-all - -8.71.2. Conteúdo do systemd - - Aplicativos instalados: busctl, coredumpctl, halt (link simbólico para - systemctl), hostnamectl, init, journalctl, kernel-install, localectl, - loginctl, machinectl, networkctl, oomctl, portablectl, poweroff (link - simbólico para systemctl), reboot (link simbólico para systemctl), - resolvconf (link simbólico para resolvectl), resolvectl, runlevel (link - simbólico para systemctl), shutdown (link simbólico para systemctl), - systemctl, systemd-analyze, systemd-ask-password, systemd-cat, - systemd-cgls, systemd-cgtop, systemd-creds, systemd-delta, - systemd-detect-virt, systemd-dissect, systemd-escape, systemd-hwdb, - systemd-id128, systemd-inhibit, systemd-machine-id-setup, - systemd-mount, systemd-notify, systemd-nspawn, systemd-path, - systemd-repart, systemd-resolve (link simbólico para resolvectl), - systemd-run, systemd-socket-activate, systemd-stdio-bridge, - systemd-sysext, systemd-tmpfiles, systemd-tty-ask-password-agent, - systemd-umount (link simbólico para systemd-mount), telinit (link - simbólico para systemctl), timedatectl e udevadm - Bibliotecas instaladas: libnss_myhostname.so.2, libnss_mymachines.so.2, - libnss_resolve.so.2, libnss_systemd.so.2, libsystemd.so, - libsystemd-shared-250.so (em /usr/lib/systemd) e libudev.so - Diretórios instalados: /etc/binfmt.d, /etc/init.d, /etc/kernel, - /etc/modules-load.d, /etc/sysctl.d, /etc/systemd, /etc/tmpfiles.d, - /etc/udev, /etc/xdg/systemd, /usr/lib/systemd, /usr/lib/udev, - /usr/include/systemd, /usr/lib/binfmt.d, /usr/lib/environment.d, - /usr/lib/kernel, /usr/lib/modules-load.d, /usr/lib/sysctl.d, - /usr/lib/systemd, /usr/lib/tmpfiles.d, /usr/share/doc/systemd-250, - /usr/share/factory, /usr/share/systemd, /var/lib/systemd e - /var/log/journal - -Descrições Curtas - - busctl - - É usado para introspectar e monitorar o barramento D-Bus - - coredumpctl - - É usado para recuperar despejos de memória a partir do diário do - systemd - - halt - - Normalmente invoca shutdown com a opção -h, exceto quando já em nível - de execução 0, então ele informa ao kernel para parar o sistema; ele - anota no arquivo /var/log/wtmp que o sistema está sendo desligado - - hostnamectl - - É usado para consultar e mudar o nome de dispositivo do sistema e - configurações relacionadas - - init - - É o primeiro processo a ser iniciado quando o kernel inicializou o - hardware, o qual assume o processo de inicialização e inicia todos os - processos de acordo com os arquivos de configuração dele. Nesse caso, - ele inicia o systemd - - journalctl - - É usado para consultar o conteúdo do diário do systemd - - kernel-install - - É usado para adicionar e remover imagens de kernel e initramfs para e - de /boot. Em LFS, isso é feito manualmente - - localectl - - É usado para consultar e mudar as configurações de esquema de locale e - teclado do sistema - - loginctl - - É usado para introspectar e controlar o estado do Login Manager do - systemd - - machinectl - - É usado para introspectar e controlar o estado do Virtual Machine e - Container Registration Manager do systemd - - networkctl - - É usado para introspectar e configurar o estado dos links de rede - configurados por systemd-networkd - - oomctl - - Controla o daemon Out Of Memory do systemd - - portablectl - - É usado para anexar ou desanexar serviços portáveis a partir do sistema - local - - poweroff - - Instrui o kernel a parar o sistema e desligar o computador (veja-se - halt) - - reboot - - Instrui o kernel a reinicializar o sistema (veja-se halt) - - resolvconf - - Registra configuração de servidor de DNS e domínio com systemd-resolved - - resolvectl - - Envia comandos de controle para o gerenciador de resolução de nome de - rede, ou resolve nomes de domínio, endereços IPv4 e IPv6, registros DNS - e serviços - - runlevel - - Emite o nível de execução anterior e o atual, conforme anotado no - último registro de nível de execução em /run/utmp - - shutdown - - Desativa o sistema em uma maneira segura e protegida, sinalizando para - todos os processos e notificando todas(os) as(os) usuárias(os) - logadas(os) - - systemctl - - É usado para introspectar e controlar o estado do gerenciador de - sistema e serviço do systemd - - systemd-analyze - - É usado para determinar o desempenho de inicialização de sistema da - inicialização atual, bem como identificar unidades do systemd - problemáticas - - systemd-ask-password - - É usado para consultar uma senha de sistema ou frase senha a partir - da(o) usuária(o), usando uma mensagem de pergunta especificada na linha - de comando - - systemd-cat - - É usado para conectar as saídas STDOUT e STDERR de um processo com o - diário do systemd - - systemd-cgls - - Recursivamente mostra o conteúdo da hierarquia de grupo de controle do - Linux selecionado em uma árvore - - systemd-cgtop - - Mostra os grupos de controle superiores da hierarquia de grupo de - controle do Linux local, ordenados pela carga de CPU, memória e - entradas/saídas de disco deles - - systemd-creds - - Exibe e processa credenciais - - systemd-delta - - É usado para identificar e comparar arquivos de configuração em /etc - que substituem homônimos padrão em /usr - - systemd-detect-virt - - Detecta se o sistema está sendo executado em um ambiente virtual, e - ajusta udev de acordo - - systemd-dissect - - É usado para inspecionar imagens de disco de OS - - systemd-escape - - É usado para escapar sequências de caracteres para inclusão em nomes de - unidade do systemd - - systemd-hwdb - - É usado para gerenciar o banco de dados de hardware (hwdb) - - systemd-id128 - - Gera e imprime sequências de caracteres id128 - - systemd-inhibit - - É usado para executar um aplicativo com um bloqueio de inibição de - desligamento, suspensão ou inatividade, impedindo uma ação tal como um - desligamento de sistema até que o processo seja concluído - - systemd-machine-id-setup - - É usado por ferramentas de instalador de sistema para inicializar o ID - de máquina armazenado em /etc/machine-id ao tempo de instalação com um - ID gerado aleatoriamente - - systemd-mount - - É usado para temporariamente montar ou automontar discos - - systemd-notify - - É usado por scripts de daemon para notificar o sistema init acerca de - mudanças de situação - - systemd-nspawn - - É usado para executar um comando ou OS em um contêiner de espaço de - nome peso leve - - systemd-path - - É usado para consultar caminhos de sistema e usuária(o) - - systemd-repart - - É usado para aumentar e adicionar partições à uma tabela de partição - quando systemd for usado em uma imagem de OS (por exemplo, um - contêiner) - - systemd-resolve - - É usado para resolver nomes de domínio, endereços IPV4 e IPv6, - registros de recurso DNS e serviços - - systemd-run - - É usado para criar e iniciar uma unidade .service ou uma .scope - transitória e executar o comando especificado nela. Isso é útil para - validar unidades do systemd - - systemd-socket-activate - - É usado para ouvir em dispositivos de soquete e iniciar um processo - após uma conexão bem sucedida com o soquete - - systemd-sysext - - Ativa imagens de extensão de sistema - - systemd-tmpfiles - - Cria, deleta e limpa arquivos e diretórios voláteis e temporários, - baseado no formato de arquivo de configuração e local especificado em - tmpfiles.d - - systemd-umount - - Desmonta pontos de montagem - - systemd-tty-ask-password-agent - - É usado para listar e (ou) processar solicitações de senha do systemd - pendentes - - telinit - - Diz a init para qual nível de execução mudar - - timedatectl - - É usado para consultar e mudar o relógio de sistema e configurações - dele - - udevadm - - É uma ferramenta de administração udev genérica que controla o daemon - udevd, fornece informação a partir do banco de dados de hardware do - Udev, monitora uevents, aguarda que uevents finalizem, testa a - configuração do udev e deflagra uevents para um dispositivo dado - - libsystemd - - É a biblioteca principal de utilitário do systemd - - libudev - - É uma biblioteca para acessar informação de dispositivo do Udev - -8.72. D-Bus-1.12.20 - - D-Bus é um sistema de barramento de mensagem, uma maneira simples para - aplicativos conversarem entre si. D-Bus fornece ambos um daemon de - sistema (para eventos tais como "novo dispositivo de hardware - adicionado" ou "fila de impressora mudou") e um daemon de sessão de - login de usuária(o) (para necessidades de IPC gerais entre aplicativos - de usuária(o)). Também, o barramento de mensagem é construído no topo - de uma estrutura de envio de mensagem um-a-um, a qual pode ser usada - por quaisquer dois aplicativos para se comunicarem diretamente (sem - transitar pelo daemon de barramento de mensagem). - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 18 MB - -8.72.1. Instalação do D-Bus - - Prepare D-Bus para compilação: -./configure --prefix=/usr \ - --sysconfdir=/etc \ - --localstatedir=/var \ - --disable-static \ - --disable-doxygen-docs \ - --disable-xml-docs \ - --docdir=/usr/share/doc/dbus-1.12.20 \ - --with-console-auth-dir=/run/console \ - --with-system-pid-file=/run/dbus/pid \ - --with-system-socket=/run/dbus/system_bus_socket - - O significado das opções de configure: - - --with-console-auth-dir=/run/console - Isso especifica o local do diretório de autorização do - ConsoleKit. - - --with-system-pid-file=/run/dbus/pid e - --with-system-socket=/run/dbus/system_bus_socket - Essas configuram o local do arquivo de PID e soquete de - barramento de sistema para estar em /run, em vez do obsoleto - /var/run. - - Compile o pacote: -make - - Esse pacote vem com uma suíte de teste, porém ela exige muitos pacotes - que não estão inclusos em LFS. Instruções para executar a suíte de - teste podem ser encontradas no livro BLFS em - [591]https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/ - dbus.html. - - Instale o pacote: -make install - - Crie um link simbólico de forma que D-Bus e systemd possam usar o mesmo - arquivo machine-id: -ln -sfv /etc/machine-id /var/lib/dbus - -8.72.2. Conteúdo do D-Bus - - Aplicativos instalados: dbus-cleanup-sockets, dbus-daemon, dbus-launch, - dbus-monitor, dbus-run-session, dbus-send, dbus-test-tool, - dbus-update-activation-environment e dbus-uuidgen - Bibliotecas instaladas: libdbus-1.{a,so} - Diretórios instalados: /etc/dbus-1, /usr/include/dbus-1.0, - /usr/lib/dbus-1.0, /usr/share/dbus-1, /usr/share/doc/dbus-1.12.20 e - /var/lib/dbus - -Descrições Curtas - - dbus-cleanup-sockets - - é usado para remover soquetes restantes em um diretório - - dbus-daemon - - É o daemon de barramento de mensagem D-Bus - - dbus-launch - - Inicia dbus-daemon a partir de um script de shell - - dbus-monitor - - Monitora mensagens transitando ao longo de um barramento de mensagem - D-Bus - - dbus-run-session - - Inicia uma instância de barramento de sessão do dbus-daemon a partir de - um script de shell e inicia um aplicativo especificado naquela sessão - - dbus-send - - Envia uma mensagem para um barramento de mensagem do D-Bus - - dbus-test-tool - - É uma ferramenta para auxiliar pacotes a testarem o D-Bus - - dbus-update-activation-environment - - Atualiza variáveis de ambiente que serão configuradas para serviços de - sessão do D-Bus - - dbus-uuidgen - - Gera um ID único universalmente - - libdbus-1 - - Contém funções de API usadas para comunicar com o barramento de - mensagem do D-Bus - -8.73. Man-DB-2.10.1 - - O pacote Man-DB contém aplicativos para encontrar e visualizar páginas - de manual. - Tempo aproximado de construção: 0,3 UPC - Espaço em disco exigido: 39 MB - -8.73.1. Instalação do Man-DB - - Prepare Man-DB para compilação: -./configure --prefix=/usr \ - --docdir=/usr/share/doc/man-db-2.10.1 \ - --sysconfdir=/etc \ - --disable-setuid \ - --enable-cache-owner=bin \ - --with-browser=/usr/bin/lynx \ - --with-vgrind=/usr/bin/vgrind \ - --with-grap=/usr/bin/grap - - O significado das opções de configure: - - --disable-setuid - Isso desabilita fazer o aplicativo man configurar uid para - usuária(o) man. - - --enable-cache-owner=bin - Isso torna os arquivos de cache de sistema de propriedade da(o) - usuária(o) bin. - - --with-... - Esses três parâmetros são usados para configurar alguns - aplicativos padrão. lynx é um navegador de rede baseado em texto - (veja-se BLFS para instruções de instalação); vgrind converte - fontes de aplicativo para entrada do Groff; e grap é útil para - tipografar gráficos em documentos do Groff. Os aplicativos - vgrind e grap normalmente não são necessários para visualizar - páginas de manual. Eles não são parte do LFS ou BLFS, mas você - deveria ser capaz de instalá-los após terminar o LFS se você - desejar fazer isso. - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.73.2. Páginas de Manual não inglesas no LFS - - A seguinte tabela mostra o conjunto de caracteres no qual Man-DB supõe - que as páginas de manual instaladas sob /usr/share/man/ estarão - codificadas. Em adição a isto, o Man-DB determina corretamente se - páginas de manual instaladas naquele diretório estão codificadas com - UTF-8. - - Tabela 8.1. Codificação de caracteres esperada das páginas de manual de - 8-bit legadas - Idioma (código) Codificação Idioma (código) Codificação - Dinamarquês (da) ISO-8859-1 Croata (hr) ISO-8859-2 - Alemão (de) ISO-8859-1 Húngaro (hu) ISO-8859-2 - Inglês (en) ISO-8859-1 Japonês (ja) EUC-JP - Espanhol (es) ISO-8859-1 Coreano (ko) EUC-KR - Estoniano (et) ISO-8859-1 Lituano (lt) ISO-8859-13 - Finlandês (fi) ISO-8859-1 Letão (lv) ISO-8859-13 - Francês (fr) ISO-8859-1 Macedônio (mk) ISO-8859-5 - Irlandês (ga) ISO-8859-1 Polonês (pl) ISO-8859-2 - Galego (gl) ISO-8859-1 Romeno (ro) ISO-8859-2 - Indonésio (id) ISO-8859-1 Russo (ru) KOI8-R - Islandês (is) ISO-8859-1 Eslovaco (sk) ISO-8859-2 - Italiano (it) ISO-8859-1 Esloveno (sl) ISO-8859-2 - Bokmal norueguês (nb) ISO-8859-1 Latim sérvio (sr@latin) ISO-8859-2 - Holandês (nl) ISO-8859-1 Sérvio (sr) ISO-8859-5 - Nynorsk norueguês (nn) ISO-8859-1 Turco (tr) ISO-8859-9 - Norueguês (no) ISO-8859-1 Ucraniano (uk) KOI8-U - Português (pt) ISO-8859-1 Vietnamita (vi) TCVN5712-1 - Sueco (sv) ISO-8859-1 Chinês simplificado (zh_CN) GBK - Bielorrusso (be) CP1251 Chinês simplificado, Singapura (zh_SG) GBK - Búlgaro (bg) CP1251 Chinês tradicional, Hong Kong (zh_HK) BIG5HKSCS - Tcheco (cs) ISO-8859-2 Chinês tradicional (zh_TW) BIG5 - Grego (el) ISO-8859-7 - -Nota - - Páginas de manual em idiomas que não estão na lista não são suportadas. - -8.73.3. Conteúdo do Man-DB - - Aplicativos instalados: accessdb, apropos (link para whatis), catman, - lexgrog, man, man-recode, mandb, manpath e whatis - Bibliotecas instaladas: libman.so e libmandb.so (ambas em - /usr/lib/man-db) - Diretórios instalados: /usr/lib/man-db, /usr/libexec/man-db e - /usr/share/doc/man-db-2.10.1 - -Descrições Curtas - - accessdb - - Despeja o conteúdo do banco de dados whatis em formato legível por - humanos - - apropos - - Pesquisa no banco de dados whatis e exibe as descrições curtas dos - comandos de sistema que contém uma sequência de caracteres dada - - catman - - Cria ou atualiza páginas de manual pré-formatadas - - lexgrog - - Exibe informação de sumário em uma linha sobre uma página de manual - dada - - man - - Formata e exibe a página de manual solicitada - - man-recode - - Converte páginas de manual para outra codificação - - mandb - - Cria ou atualiza o banco de dados whatis - - manpath - - Exibe o conteúdo de $MANPATH ou (se $MANPATH não estiver configurada) - um caminho de busca adequado baseado nas configurações em man.conf e no - ambiente da(o) usuária(o) - - whatis - - Pesquisa no banco de dados whatis e exibe as descrições curtas de - comandos do sistema que contém a palavra chave dada como uma palavra - separada - - libman - - Contém suporte em tempo de execução para o man - - libmandb - - Contém suporte em tempo de execução para o man - -8.74. Procps-ng-3.3.17 - - O pacote Procps-ng contém aplicativos para monitorar processos. - -Nota - - Esse pacote extrai para o diretório procps-3.3.17, não o esperado - procps-ng-3.3.17. - Tempo aproximado de construção: 0,4 UPC - Espaço em disco exigido: 19 MB - -8.74.1. Instalação do Procps-ng - - Prepare procps-ng para compilação: -./configure --prefix=/usr \ - --docdir=/usr/share/doc/procps-ng-3.3.17 \ - --disable-static \ - --disable-kill \ - --with-systemd - - O significado da opção de configure: - - --disable-kill - Essa chave desabilita a construção do comando kill que será - instalado pelo pacote util-linux. - - Compile o pacote: -make - - Para executar a suíte de teste, execute: -make check - - Cinco testes relacionados a pkill são conhecidos por falhar devido a um - problema com testes que não foram atualizados. - - Instale o pacote: -make install - -8.74.2. Conteúdo do Procps-ng - - Aplicativos instalados: free, pgrep, pidof, pkill, pmap, ps, pwdx, - slabtop, sysctl, tload, top, uptime, vmstat, w e watch - Biblioteca instalada: libprocps.so - Diretórios instalados: /usr/include/proc e - /usr/share/doc/procps-ng-3.3.17 - -Descrições Curtas - - free - - Relata a quantidade de memória livre e usada (ambas memória física e - swap) no sistema - - pgrep - - Procura por processos baseado nos nomes deles e outros atributos - - pidof - - Relata os PIDs dos aplicativos dados - - pkill - - Sinaliza processos baseado nos nomes deles e outros atributos - - pmap - - Relata o mapeamento de memória do processo dado - - ps - - Lista os processos em execução atualmente - - pwait - - Aguarda que um processo termine antes de executar. - - pwdx - - Relata o diretório de trabalho atual de um processo - - slabtop - - Exibe informações detalhadas de cache de slab do kernel em tempo real - - sysctl - - Modifica parâmetros do kernel em tempo de execução - - tload - - Imprime um gráfico da média de carga de sistema atual - - top - - Exibe uma lista dos processos com maior uso de CPU; ele fornece uma - visão contínua da atividade do processador em tempo real - - uptime - - Relata há quanto tempo o sistema está executando, quantas(os) - usuárias(os) estão logadas(os) e as médias de carga de sistema - - vmstat - - Relata estatísticas de memória virtual, dando informações sobre - processos, memória, paginação, Entrada/Saída (E/S) de bloco, traps e - atividade da CPU - - w - - Mostra quais usuárias(os) estão logadas(os) atualmente, onde e desde - quando - - watch - - Executa um comando dado repetidamente, exibindo a primeira tela cheia - da saída dele; isso permite que uma(m) usuária(o) observe a mudança de - saída ao longo do tempo - - libprocps - - Contém as funções usadas pela maioria dos aplicativos nesse pacote - -8.75. Util-linux-2.37.4 - - O pacote Util-linux contém aplicativos utilitários diversos. Entre eles - estão utilitários para lidar com sistemas de arquivos, consoles, - partições e mensagens. - Tempo aproximado de construção: 1,1 UPC - Espaço em disco exigido: 261 MB - -8.75.1. Instalação do Util-linux - - Prepare Util-linux para compilação: -./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ - --bindir=/usr/bin \ - --libdir=/usr/lib \ - --sbindir=/usr/sbin \ - --docdir=/usr/share/doc/util-linux-2.37.4 \ - --disable-chfn-chsh \ - --disable-login \ - --disable-nologin \ - --disable-su \ - --disable-setpriv \ - --disable-runuser \ - --disable-pylibmount \ - --disable-static \ - --without-python - - As opções --disable e --without impedem avisos acerca de construir - componentes que exigem pacotes ausentes em LFS ou estão inconsistentes - com aplicativos instalados por outros pacotes. - - Compile o pacote: -make - - Se desejado, execute a suíte de teste como uma(m) usuária(o) não root: - -Atenção - - Executar a suíte de teste como a(o) usuária(o) root pode ser danoso ao - seu sistema. Para executá-lo, a opção CONFIG_SCSI_DEBUG para o kernel - precisa estar disponível no sistema em execução atualmente e precisa - ser construída como um módulo. Construí-lo dentro do kernel impedirá a - inicialização. Para cobertura completa, outros pacotes do BLFS precisam - ser instalados. Se desejado, esse teste pode ser executado após - reiniciar no sistema LFS completo e executar: -bash tests/run.sh --srcdir=$PWD --builddir=$PWD - -Nota - - Existe um teste que falha no ambiente chroot e causa os testes travarem - para sempre. O problema não ocorre do lado de fora do ambiente chroot. - Para contornar o problema, delete o teste: -rm tests/ts/lsns/ioctl_ns - -chown -Rv tester . -su tester -c "make -k check" - - Instale o pacote: -make install - -8.75.2. Conteúdo do Util-linux - - Aplicativos instalados: addpart, agetty, blkdiscard, blkid, blkzone, - blockdev, cal, cfdisk, chcpu, chmem, choom, chrt, col, colcrt, colrm, - column, ctrlaltdel, delpart, dmesg, eject, fallocate, fdisk, fincore, - findfs, findmnt, flock, fsck, fsck.cramfs, fsck.minix, fsfreeze, - fstrim, getopt, hexdump, hwclock, i386, ionice, ipcmk, ipcrm, ipcs, - irqtop, isosize, kill, last, lastb (link para last), ldattach, linux32, - linux64, logger, look, losetup, lsblk, lscpu, lsipc, lsirq, lslocks, - lslogins, lsmem, lsns, mcookie, mesg, mkfs, mkfs.bfs, mkfs.cramfs, - mkfs.minix, mkswap, more, mount, mountpoint, namei, nsenter, partx, - pivot_root, prlimit, readprofile, rename, renice, resizepart, rev, - rfkill, rtcwake, script, scriptlive, scriptreplay, setarch, setsid, - setterm, sfdisk, sulogin, swaplabel, swapoff (link para swapon), - swapon, switch_root, taskset, uclampset, ul, umount, uname26, unshare, - utmpdump, uuidd, uuidgen, uuidparse, wall, wdctl, whereis, wipefs, - x86_64 e zramctl - Bibliotecas instaladas: libblkid.so, libfdisk.so, libmount.so, - libsmartcols.so e libuuid.so - Diretórios instalados: /usr/include/blkid, /usr/include/libfdisk, - /usr/include/libmount, /usr/include/libsmartcols, /usr/include/uuid, - /usr/share/doc/util-linux-2.37.4 e /var/lib/hwclock - -Descrições Curtas - - addpart - - Informa o kernel Linux de novas partições - - agetty - - Abre uma porta tty, solicita um nome de login e então invoca o - aplicativo login - - blkdiscard - - Descarta setores em um dispositivo - - blkid - - Um utilitário de linha de comando para localizar e imprimir atributos - de dispositivo de bloco - - blkzone - - Executa comando de zona no dispositivo de bloco dado - - blockdev - - Permite usuárias(os) chamar ioctls de dispositivo de bloco a partir da - linha de comando - - cal - - Exibe um calendário simples - - cfdisk - - Manipula a tabela de partição do dispositivo dado - - chcpu - - Modifica o estado de CPUs - - chmem - - Configura memória - - choom - - Exibe e ajusta a pontuação de matador de OOM - - chrt - - Manipula atributos de tempo real de um processo - - col - - Filtra feeds de linha reversa - - colcrt - - Filtra saída nroff para terminais que não tem algumas capacidades, tais - como overstriking e half-lines - - colrm - - Filtra as colunas dadas - - column - - Formata um arquivo dado em colunas múltiplas - - ctrlaltdel - - Configura a função da combinação de teclas Ctrl+Alt+Del para uma - reconfiguração hard ou soft - - delpart - - Pede ao kernel Linux para remover uma partição - - dmesg - - Despeja as mensagens de inicialização do kernel - - eject - - Ejeta mídia removível - - fallocate - - Pré-aloca espaço para um arquivo - - fdisk - - Manipula a tabela de partição do dispositivo dado - - fincore - - Conta páginas de conteúdo de arquivo em núcleo - - findfs - - Encontra um sistema de arquivos pelo rótulo ou Universally Unique - Identifier (UUID) - - findmnt - - É uma interface de linha de comando para a biblioteca libmount para - funcionar com mountinfo, fstab e arquivos mtab - - flock - - Adquire uma trava de arquivo e então executa um comando com a trava - mantida - - fsck - - É usado para verificar, e opcionalmente reparar, sistemas de arquivos - - fsck.cramfs - - Realiza uma verificação de consistência no sistema de arquivos Cramfs - no dispositivo dado - - fsck.minix - - Realiza uma verificação de consistência no sistema de arquivos Minix no - dispositivo dado - - fsfreeze - - É um encapsulador muito simples em torno de operações de controlador de - kernel de ioctl de FIFREEZE/FITHAW - - fstrim - - Descarta blocos não usados em um sistema de arquivos montado - - getopt - - Analisa opções na linha de comando dada - - hexdump - - Despeja o arquivo dado em hexadecimal ou em outro formato dado - - hwclock - - Lê ou configura o relógio de hardware do sistema, também chamado de - Real-Time Clock (RTC) ou relógio do Basic Input-Output System (BIOS) - - i386 - - Um link simbólico para setarch - - ionice - - Obtém ou configura a classe de agendamento de io e prioridade para um - aplicativo - - ipcmk - - Cria vários recursos IPC - - ipcrm - - Remove o recurso de Inter-Process Communication (IPC) dado - - ipcs - - Fornece informação de situação de IPC - - irqtop - - Exibe informação de contador de interrupção do kernel em visão estilo - top(1) - - isosize - - Relata o tamanho de um sistema de arquivos iso9660 - - kill - - Envia sinais para processos - - last - - Mostra quais usuárias(os) derradeiramente logaram-se (e deslogaram-se), - pesquisando de volta ao longo do arquivo /var/log/wtmp; ele também - mostra inicializações de sistema, desligamentos e mudanças de nível de - execução - - lastb - - Exibe as tentativas de login falhas, conforme registrado em - /var/log/btmp - - ldattach - - Anexa uma disciplina de linha à uma linha serial - - linux32 - - Um link simbólico para setarch - - linux64 - - Um link simbólico para setarch - - logger - - Adiciona a mensagem dada ao registro do sistema - - look - - Exibe linhas que começam com a sequência de caracteres dada - - losetup - - Configura e controla dispositivos de loop - - lsblk - - Lista informações sobre todos ou dispositivos de bloco selecionados em - um formato semelhante a árvore - - lscpu - - Imprime informação de arquitetura da CPU - - lsipc - - Imprime informação acerca de facilidades de IPC empregadas atualmente - no sistema - - lsirq - - Exibe informação de contador de interrupção do kernel - - lslocks - - Lista travas locais de sistema - - lslogins - - Lista informação acerca de contas de usuárias(os), grupos e sistema - - lsmem - - Lista os intervalos de memória disponível com a situação online deles - - lsns - - Lista espaços de nome - - mcookie - - Gera cookies mágicos (números hexadecimais aleatórios de 128 bits) para - o xauth - - mesg - - Controla se outras(os) usuárias(os) podem enviar mensagens para o - terminal da(o) usuária(o) atual - - mkfs - - Constrói um sistema de arquivos em um dispositivo (geralmente uma - partição de disco rígido) - - mkfs.bfs - - Cria um sistema de arquivos Santa Cruz Operations (SCO) bfs - - mkfs.cramfs - - Cria um sistema de arquivos cramfs - - mkfs.minix - - Cria um sistema de arquivos Minix - - mkswap - - Inicializa dispositivo ou arquivo dado para ser usado como uma área de - troca - - more - - Um filtro para paginar ao longo de texto uma tela de cada vez - - mount - - Anexa o sistema de arquivos no dispositivo dado a um diretório - especificado na árvore do sistema de arquivos - - mountpoint - - Verifica se o diretório é um ponto de montagem - - namei - - Mostra os links simbólicos nos nomes de caminho dados - - nsenter - - Executa um aplicativo com espaços de nome de outros processos - - partx - - Informa ao kernel sobre a presença e numeração de partições no disco - - pivot_root - - Torna o sistema de arquivos dado o novo sistema de arquivos raiz do - processo atual - - prlimit - - Obtém e configura um limite de recursos do processo - - readprofile - - Lê informação de perfil do kernel - - rename - - Renomeia os arquivos dados, substituindo uma sequência de caracteres - dada por outra - - renice - - Altera a prioridade de processos em execução - - resizepart - - Pede ao kernel Linux para redimensionar uma partição - - rev - - Inverte as linhas de um arquivo dado - - rkfill - - Ferramenta para habilitar e desabilitar dispositivos sem fios - - rtcwake - - Usado para entrar em um estado de suspensão do sistema até o horário de - ativação especificado - - script - - Cria um texto datilografado de uma sessão de terminal - - scriptlive - - Reexecuta textos datilografados de sessão usando informação de tempo - - scriptreplay - - Reproduz textos datilografados usando informações de tempo - - setarch - - Muda a arquitetura relatada em um novo ambiente de aplicativo e - configura sinalizadores de personalidade - - setsid - - Executa o aplicativo dado em uma nova sessão - - setterm - - Configura atributos do terminal - - sfdisk - - Um manipulador de tabela de partição de disco - - sulogin - - Permite root se logar; ele normalmente é invocado por init quando o - sistema entra em modo de usuária(o) única(o) - - swaplabel - - Permite modificar o UUID e rótulo da área de troca - - swapoff - - Desabilita dispositivos e arquivos para paginação e troca - - swapon - - Habilita dispositivos e arquivos para paginação e troca e lista os - dispositivos e arquivos atualmente em uso - - switch_root - - Alterna para outro sistema de arquivos como a raiz da árvore de - montagem - - taskset - - Recupera ou configura uma afinidade de CPU do processo - - uclampset - - Manipula os atributos de fixação de utilização do sistema ou um - processo - - ul - - Um filtro para traduzir sublinhados em sequências de escape indicando - sublinhamento para o terminal em uso - - umount - - Desconecta um sistema de arquivos da árvore de arquivos do sistema - - uname26 - - Um link simbólico para setarch - - unshare - - Executa um aplicativo com alguns espaços de nome não compartilhados - oriundos do pai - - utmpdump - - Exibe o conteúdo do arquivo de login dado em um formato mais amigável - para a(o) usuária(o) - - uuidd - - Um daemon usado pela biblioteca UUID para gerar UUIDs baseados em - horário em uma forma segura e garantidamente única - - uuidgen - - Cria novos UUIDs. Cada novo UUID pode razoavelmente ser considerado - único entre todos os UUIDs criados, no sistema local e em outros - sistemas, no passado e no futuro - - uuidparse - - Um utilitário para analisar identificadores únicos - - wall - - Exibe o conteúdo de um arquivo ou, por padrão, a entrada padrão dele, - nos terminais de todas(os) as(os) usuárias(os) logadas(os) atualmente - - wdctl - - Mostra a situação de vigilante de hardware - - whereis - - Relata o local do binário, fonte e página de manual para o comando dado - - wipefs - - Limpa uma assinatura de sistema de arquivos a partir de um dispositivo - - x86_64 - - Um link simbólico para setarch - - zramctl - - Um aplicativo para configurar e controlar dispositivos zram (disco ram - comprimido) - - libblkid - - Contém rotinas para identificação de dispositivo e extração de token - - libfdisk - - Contém rotinas para manipular tabelas de partição - - libmount - - Contém rotinas para montagem e desmontagem de dispositivo de bloco - - libsmartcols - - Contém rotinas para auxiliar a saída de tela em forma de tabela - - libuuid - - Contém rotinas para gerar identificadores únicos para objetos que - talvez sejam acessíveis além do sistema local - -8.76. E2fsprogs-1.46.5 - - O pacote e2fsprogs contém os utilitários para lidar com o sistema de - arquivos ext2. Ele também suporta os sistemas de arquivos de registro - em diário ext3 e ext4. - Tempo aproximado de construção: 4,4 UPC em um disco giratório, 1,3 UPC - em um SSD - Espaço em disco exigido: 93 MB - -8.76.1. Instalação do E2fsprogs - - A documentação do e2fsprogs recomenda que o pacote seja construído em - um subdiretório da árvore do fonte: -mkdir -v build -cd build - - Prepare e2fsprogs para compilação: -../configure --prefix=/usr \ - --sysconfdir=/etc \ - --enable-elf-shlibs \ - --disable-libblkid \ - --disable-libuuid \ - --disable-uuidd \ - --disable-fsck - - O significado das opções de configure: - - --enable-elf-shlibs - Isso cria as bibliotecas compartilhadas as quais alguns - aplicativos nesse pacote usam. - - --disable-* - Isso evita que e2fsprogs construa e instale as bibliotecas - libuuid e libblkid, o daemon uuidd, e o encapsulador fsck, uma - vez que o util-linux instala versões mais recentes. - - Compile o pacote: -make - - Para executar os testes, execute: -make check - - Um teste, u_direct_io, é conhecido por falhar em alguns sistemas. - - Instale o pacote: -make install - - Remova bibliotecas estáticas inúteis: -rm -fv /usr/lib/{libcom_err,libe2p,libext2fs,libss}.a - - Esse pacote instala um arquivo gzipado .info, mas não atualiza o - arquivo do sistema dir. Descompacte esse arquivo e então atualize o - arquivo do sistema dir usando os seguintes comandos: -gunzip -v /usr/share/info/libext2fs.info.gz -install-info --dir-file=/usr/share/info/dir /usr/share/info/libext2fs.info - - Se desejado, crie e instale alguma documentação adicional executando os - seguintes comandos: -makeinfo -o doc/com_err.info ../lib/et/com_err.texinfo -install -v -m644 doc/com_err.info /usr/share/info -install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info - -8.76.2. Conteúdo do E2fsprogs - - Aplicativos instalados: badblocks, chattr, compile_et, debugfs, - dumpe2fs, e2freefrag, e2fsck, e2image, e2label, e2mmpstatus, e2scrub, - e2scrub_all, e2undo, e4crypt, e4defrag, filefrag, fsck.ext2, fsck.ext3, - fsck.ext4, logsave, lsattr, mk_cmds, mke2fs, mkfs.ext2, mkfs.ext3, - mkfs.ext4, mklost+found, resize2fs e tune2fs - Bibliotecas instaladas: libcom_err.so, libe2p.so, libext2fs.so e - libss.so - Diretórios instalados: /usr/include/e2p, /usr/include/et, - /usr/include/ext2fs, /usr/include/ss, /usr/lib/e2fsprogs, /usr/share/et - e /usr/share/ss - -Descrições Curtas - - badblocks - - Pesquisa em um dispositivo (geralmente uma partição de disco) por - blocos defeituosos - - chattr - - Muda os atributos de arquivos em um sistema de arquivos ext2; ele - também muda sistemas de arquivos ext3, a versão de registro em diário - dos sistemas de arquivos ext2 - - compile_et - - Um compilador de tabela de erro; ele converte uma tabela de nomes de - códigos de erros e mensagens em um arquivo fonte C adequado para uso - com a biblioteca com_err - - debugfs - - Um depurador de sistema de arquivo; ele pode ser usado para examinar e - mudar o estado de um sistema de arquivos ext2 - - dumpe2fs - - Imprime informação de superblocos e grupo de blocos para o sistema de - arquivos presente em um dispositivo dado - - e2freefrag - - Relata informação de fragmentação de espaço livre - - e2fsck - - É usado para verificar, e opcionalmente reparar sistemas de arquivos - ext2 e sistemas de arquivos ext3 - - e2image - - É usado para salvar dados críticos de sistema de arquivos ext2 para um - arquivo - - e2label - - Exibe ou muda o rótulo de sistema de arquivos no sistema de arquivos - ext2 presente em um dispositivo dado - - e2mmpstatus - - Verifica situação de MMP de um sistema de arquivos ext4 - - e2scrub - - Verifica o conteúdo de um sistema de arquivos ext[234] montado - - e2scrub_all - - Verifica todos os sistemas de arquivos ext[234] montados para erros - - e2undo - - Reexecuta o registro de desfazer undo_log para um sistema de arquivos - ext2/ext3/ext4 encontrado em um dispositivo [Isso pode ser usado para - desfazer uma operação falha por um aplicativo do e2fsprogs] - - e4crypt - - Utilitário de encriptação de sistema de arquivos ext4 - - e4defrag - - Desfragmentador online para sistemas de arquivo ext4 - - filefrag - - Relatórios sobre quão fragmentado um arquivo específico pode estar - - fsck.ext2 - - Por padrão verifica sistemas de arquivo ext2 e é um hard link para - e2fsck - - fsck.ext3 - - Por padrão verifica sistemas de arquivo ext3 e é um hard link para - e2fsck - - fsck.ext4 - - Por padrão verifica sistemas de arquivo ext4 e é um hard link para - e2fsck - - logsave - - Salva a saída de um comando em um arquivo de registro - - lsattr - - Lista os atributos de arquivos em um segundo sistema de arquivos - estendido - - mk_cmds - - Converte uma tabela de nomes de comando e mensagens de ajuda em um - arquivo fonte C adequado para uso com a biblioteca de subsistema libss - - mke2fs - - Cria um sistema de arquivos ext2 ou ext3 no dispositivo dado - - mkfs.ext2 - - Por padrão cria sistemas de arquivos ext2 e é um hard link para mke2fs - - mkfs.ext3 - - Por padrão cria sistemas de arquivos ext3 e é um hard link para mke2fs - - mkfs.ext4 - - Por padrão cria sistemas de arquivos ext4 e é um hard link para mke2fs - - mklost+found - - Usado para criar um diretório lost+found em um sistema de arquivos - ext2; ele pré-aloca blocos de disco para esse diretório para facilitar - a tarefa do e2fsck - - resize2fs - - Pode ser usado para alargar ou estreitar um sistema de arquivos ext2 - - tune2fs - - Ajusta parâmetros ajustáveis de sistema de arquivos em um sistema de - arquivos ext2 - - libcom_err - - A rotina comum de exibição de erro - - libe2p - - Usado por dumpe2fs, chattr e lsattr - - libext2fs - - Contém rotinas para habilitar aplicativos de nível de usuária(o) para - lidar com um sistema de arquivos ext2 - - libss - - Usado por debugfs - -8.77. Acerca dos Símbolos de Depuração - - A maioria dos aplicativos e bibliotecas é, por padrão, compilada com - símbolos de depuração incluídos (com opção -g do gcc). Isso significa - que quando depurar um aplicativo ou biblioteca que foi compilado com - informação de depuração, o depurador pode fornecer não apenas endereços - de memória, mas também os nomes das rotinas e variáveis. - - Entretanto, a inclusão desses símbolos de depuração alarga um - aplicativo ou biblioteca significativamente. O seguinte é um exemplo da - quantidade de espaço que esses símbolos ocupam: - * Um binário bash com símbolos de depuração: 1200 KB - * Um binário bash sem símbolos de depuração: 480 KB - * Arquivos do Glibc e GCC (/lib e /usr/lib) com símbolos de - depuração: 87 MB - * Arquivos do Glibc e GCC sem símbolos de depuração: 16 MB - - Tamanhos talvez variem dependendo de qual compilador e biblioteca C - foram usados, mas quando comparar aplicativos com e sem símbolos de - depuração, a diferença geralmente será um fator entre dois e cinco. - - Como a maioria das(os) usuárias(os) nunca usará um depurador no - aplicativo de sistema delas(es), um monte de espaço de disco pode ser - recuperado removendo esses símbolos. A próxima seção mostra como - remover todos os símbolos de depuração dos aplicativos e bibliotecas. - -8.78. Despojando - - Esta seção é opcional. Se a(o) pretensa(o) usuária(o) não for uma(m) - programadora(r) e não planeja fazer qualquer depuração nos aplicativos - do sistema, então o tamanho do sistema pode ser reduzido em cerca de 2 - GB removendo os símbolos de depuração de binários e bibliotecas. Isso - não causa nenhum inconveniente além de não mais poder depurar os - aplicativos completamente. - - A maioria das pessoas que usam os comandos mencionados abaixo não - experimenta quaisquer dificuldades. Entretanto, é fácil cometer um erro - de digitação e tornar o novo sistema inutilizável, de forma que, antes - de executar os comandos strip, é uma boa ideia produzir uma cópia de - segurança do sistema LFS no estado atual dele. - - Os símbolos de depuração para bibliotecas selecionadas estão colocados - em arquivos separados. Essa informação de depuração é necessária se - executar testes de regressão que usam [592]valgrind ou [593]gdb - posteriormente em BLFS. - - Observe que strip sobrescreverá o arquivo de binário ou biblioteca que - ele está processando. Isso pode quebrar os processos usando código ou - dados oriundos do arquivo. Se o próprio processo executando o strip for - afetado, então o binário ou biblioteca sendo despojado pode ser - destruído e pode tornar o sistema completamente inutilizável. Para - evitar isso, nós copiaremos algumas bibliotecas e binários para /tmp, - despojaremos elas lá, e instalaremos elas de volta com o comando - install. Leia a entrada relacionada em [594]Seção 8.2.1, “Problemas de - Atualização†para a justificativa para usar o comando install aqui. - -Nota - - O nome do carregador de ELF é ld-linux-x86-64.so.2 em sistemas de 64 - bits e ld-linux.so.2 em sistemas de 32 bits. A construção abaixo - seleciona o nome correto para a arquitetura atual. -save_usrlib="$(cd /usr/lib; ls ld-linux*) - libc.so.6 - libthread_db.so.1 - libquadmath.so.0.0.0 - libstdc++.so.6.0.29 - libitm.so.1.0.0 - libatomic.so.1.2.0" - -cd /usr/lib - -for LIB in $save_usrlib; do - objcopy --only-keep-debug $LIB $LIB.dbg - cp $LIB /tmp/$LIB - strip --strip-unneeded /tmp/$LIB - objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB - install -vm755 /tmp/$LIB /usr/lib - rm /tmp/$LIB -done - -online_usrbin="bash find strip" -online_usrlib="libbfd-2.38.so - libhistory.so.8.1 - libncursesw.so.6.3 - libm.so.6 - libreadline.so.8.1 - libz.so.1.2.11 - $(cd /usr/lib; find libnss*.so* -type f)" - -for BIN in $online_usrbin; do - cp /usr/bin/$BIN /tmp/$BIN - strip --strip-unneeded /tmp/$BIN - install -vm755 /tmp/$BIN /usr/bin - rm /tmp/$BIN -done - -for LIB in $online_usrlib; do - cp /usr/lib/$LIB /tmp/$LIB - strip --strip-unneeded /tmp/$LIB - install -vm755 /tmp/$LIB /usr/lib - rm /tmp/$LIB -done - -for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \ - $(find /usr/lib -type f -name \*.a) \ - $(find /usr/{bin,sbin,libexec} -type f); do - case "$online_usrbin $online_usrlib $save_usrlib" in - *$(basename $i)* ) - ;; - * ) strip --strip-unneeded $i - ;; - esac -done - -unset BIN LIB save_usrlib online_usrbin online_usrlib - - Um número grande de arquivos serão relatados como tendo o formato de - arquivo deles não reconhecido. Esses avisos podem ser seguramente - ignorados. Eles indicam que aqueles arquivos são scripts em vez de - binários. - -8.79. Limpando - - Finalmente, limpe alguns arquivos extra deixados pela execução de - testes: -rm -rf /tmp/* - - Existem também muitos arquivos instalados nos diretórios /usr/lib e - /usr/libexec com uma extensão de nome de arquivo de .la. Esses são - arquivos "libtool archive". Como já dito, eles somente são úteis quando - vincular com bibliotecas estáticas. Eles são desnecessários, e - potencialmente danosos, quando se usar bibliotecas compartilhadas - dinâmicas, especialmente quando se usar também sistemas de construção - não autotools. Para remover eles, execute: -find /usr/lib /usr/libexec -name \*.la -delete - - Para mais informação acerca de arquivos libtool archive, veja a - [595]seção de BLFS "About Libtool Archive (.la) files". - - O compilador construído em [596]Capítulo 6 e [597]Capítulo 7 ainda está - instalado parcialmente e não é mais necessário. Remova ele com: -find /usr -depth -name $(uname -m)-lfs-linux-gnu\* | xargs rm -rf - - Por fim, remova a conta de usuária(o) 'tester' temporária criada no - início do capítulo anterior. -userdel -r tester - -Capítulo 9. Configuração do Sistema - -9.1. Introdução - - Este capítulo discute arquivos de configuração e serviços do systemd. - Primeiro, os arquivos de configuração gerais necessários para - configurar rede são apresentados. - * [598]Seção 9.2, “Configuração de Rede Geral.†- * [599]Seção 9.2.3, “Configurando o nome de dispositivo do sistema.†- * [600]Seção 9.2.4, “Personalizando o Arquivo /etc/hosts.†- - Segundo, problemas que afetam a configuração adequada de dispositivos - são discutidos. - * [601]Seção 9.3, “Visão Geral do Manuseio de Dispositivos e - Módulos.†- * [602]Seção 9.4, “Gerenciando Dispositivos.†- - Terceiro, configurar o relógio do sistema e esquema de teclado é - mostrado. - * [603]Seção 9.5, “Configurando o relógio do sistema.†- * [604]Seção 9.6, “Configurando o Console do Linux.†- - Quarto, uma introdução breve aos scripts e arquivos de configuração - usados quando a(o) usuária(o) se loga no sistema é apresentado. - * [605]Seção 9.7, “Configurando o Locale do Sistema.†- * [606]Seção 9.8, “Criando o Arquivo /etc/inputrc.†- - E finalmente, configurar o comportamento do systemd é discutido. - * [607]Seção 9.10, “Uso e Configuração do Systemd.†- -9.2. Configuração de Rede Geral - - Esta seção somente se aplica se uma placa de rede é para ser - configurada. - -9.2.1. Arquivos de Configuração de Interface de Rede - - Iniciando com a versão 209, o systemd envia um daemon de configuração - de rede chamado systemd-networkd o qual pode ser usado para - configuração de rede básica. Adicionalmente, desde a versão 213, - resolução de nome de DNS pode ser lidada por systemd-resolved em lugar - de um arquivo /etc/resolv.conf estático. Ambos os serviços são - habilitados por padrão. - - Arquivos de configuração para systemd-networkd (e systemd-resolved) - podem ser colocados em /usr/lib/systemd/network ou - /etc/systemd/network. Arquivos em /etc/systemd/network tem uma - prioridade mais alta que aqueles em /usr/lib/systemd/network. Existem - três tipos de arquivos de configuração: arquivos .link, .netdev e - .network. Para descrições detalhadas e conteúdo de exemplo desses - arquivos de configuração, consulte as páginas de manual - systemd-link(5), systemd-netdev(5) e systemd-network(5). - -9.2.1.1. Nomeando Dispositivo de Rede - - Udev normalmente atribui nomes de interface de placa de rede baseados - em características de sistema físicas tais como enp2s1. Se você não - está certa(o) acerca do que é o nome de sua interface, então você - sempre pode executar ip link após você ter inicializado seu sistema. - -Nota - - Os nomes de interface dependem da implementação e configuração do - daemon udev em execução no sistema. O daemon udev para LFS - (systemd-udevd, instalado na [608]Seção 8.71, “Systemd-250â€), não - executará a menos que o sistema LFS seja inicializado. Assim, não é - confiável determinar os nomes de interface sendo usados no sistema LFS - executando aqueles comandos na distribuição anfitriã, mesmo que você - esteja no ambiente chroot. - - Para a maioria dos sistemas, existe apenas uma interface de rede para - cada tipo de conexão. Por exemplo, o nome de interface clássico para - uma conexão com fios é eth0. Uma conexão sem fios usualmente terá o - nome wifi0 ou wlan0. - - Se você preferir usar os nomes de interface de rede clássicos ou - personalizados, então existem três caminhos alternativos para fazer - isso: - * Mascarar o arquivo .link do udev para a política padrão: -ln -s /dev/null /etc/systemd/network/99-default.link - * Criar um esquema de nomenclatura manual, por exemplo nomeando as - interfaces com alguma coisa como "internet0", "dmz0" ou "lan0". - Para fazer isso, crie arquivos .link em /etc/systemd/network/ que - selecionem um nome explícito ou um esquema de nomenclatura melhor - para suas interfaces de rede. Por exemplo: -cat > /etc/systemd/network/10-ether0.link << "EOF" -[Match] -# Change the MAC address as appropriate for your network device -MACAddress=12:34:45:78:90:AB - -[Link] -Name=ether0 -EOF - Veja a página de manual systemd.link(5) para mais informação. - * Em /boot/grub/grub.cfg, passe a opção net.ifnames=0 na linha de - comando do kernel. - -9.2.1.2. Configuração de IP Estático - - O comando abaixo cria um arquivo de configuração básico para uma - configuração de IP Estático (usando ambos systemd-networkd e - systemd-resolved): -cat > /etc/systemd/network/10-eth-static.network << "EOF" -[Match] -Name= - -[Network] -Address=192.168.0.2/24 -Gateway=192.168.0.1 -DNS=192.168.0.1 -Domains= -EOF - - Múltiplas entradas de DNS podem ser adicionadas se você tiver mais que - um servidor de DNS. Não inclua entradas de DNS ou Domínios se você - pretende usar um arquivo /etc/resolv.conf estático. - -9.2.1.3. Configuração de DHCP - - O comando abaixo cria um arquivo de configuração básico para uma - configuração de DHCP IPv4: -cat > /etc/systemd/network/10-eth-dhcp.network << "EOF" -[Match] -Name= - -[Network] -DHCP=ipv4 - -[DHCP] -UseDomains=true -EOF - -9.2.2. Criando o Arquivo /etc/resolv.conf - - Se o sistema será conectado à Internet, então ele precisará de alguns - meios de resolução de nome do Domain Name Service (DNS) para resolver - nomes de domínio da Internet para endereços de IP e vice versa. Isso é - melhor alcançado colocando-se o endereço de IP do servidor de DNS, - disponível a partir do ISP ou administradora(r) de rede, no - /etc/resolv.conf. - -9.2.2.1. Configuração do systemd-resolved - -Nota - - Se usar métodos incompatíveis com systemd-resolved para configurar suas - interfaces de rede (ex.: ppp, etc.); ou se usar qualquer tipo de - resolvedor local (ex.: bind, dnsmasq, unbound, etc.); ou qualquer outro - aplicativo que gere um /etc/resolv.conf (ex.: um aplicativo resolvconf - outro diferente daquele fornecido pelo systemd), então o serviço - systemd-resolved não deveria ser usado. - - Para desabilitar systemd-resolved, execute o seguinte comando: -systemctl disable systemd-resolved - - Quando se usa o systemd-resolved para configuração de DNS, ele cria o - arquivo /run/systemd/resolve/stub-resolv.conf. E, se /etc/resolv.conf - não existir, ele será criado pelo systemd-resolved como um link - simbólico para /run/systemd/resolve/stub-resolv.conf. Então, é - desnecessário criar um /etc/resolv.conf manualmente. - -9.2.2.2. Configuração resolv.conf Estática - - Se um /etc/resolv.conf estático for desejado, então crie ele executando - o seguinte comando: -cat > /etc/resolv.conf << "EOF" -# Begin /etc/resolv.conf - -domain -nameserver -nameserver - -# End /etc/resolv.conf -EOF - - A declaração domain pode ser omitida ou substituída com uma declaração - search. Veja-se a página de manual para resolv.conf para mais detalhes. - - Substitua com o endereço de IP do - servidor DNS mais apropriado para sua configuração. Frequentemente - existirá mais que uma entrada (exigências demandam servidores - secundários para capacidade de substituto). Se você precisa ou quer - apenas um servidor DNS, então remova a segunda linha nameserver do - arquivo. O endereço de IP também talvez seja um roteador na rede local. - Outra opção é usar o serviço de DNS Google Public usando os endereços - de IP abaixo como servidores de nome. - -Nota - - Os endereços DNS IPv4 do Google Public são 8.8.8.8 e 8.8.4.4 para IPv4; - e 2001:4860:4860::8888 e 2001:4860:4860::8844 para IPv6. - -9.2.3. Configurando o nome de dispositivo do sistema - - Durante o processo de inicialização, o arquivo /etc/hostname é usado - para estabelecer o nome de dispositivo do sistema. - - Crie o arquivo /etc/hostname e informe um nome de dispositivo - executando: -echo "" > /etc/hostname - - precisa ser substituído com o nome dado para o computador. Não - informe o Fully Qualified Domain Name (FQDN) aqui. Essa informação é - colocada no arquivo /etc/hosts. - -9.2.4. Personalizando o Arquivo /etc/hosts - - Decida acerca de um fully-qualified domain name (FQDN), e possíveis - apelidos para uso no arquivo /etc/hosts. Se usar endereços de IP - estáticos, então você também precisará decidir acerca de um endereço de - IP. A sintaxe para uma entrada de arquivo hosts é: -IP_address myhost.example.org aliases - - A menos que o computador seja para estar visível para a Internet (por - exemplo, existe um domínio registrado e um bloco válido de endereços de - IP atribuídos—a maioria das(os) usuárias(os) não tem isso), assegure-se - de que o endereço de IP está no intervalo de endereço de IP de rede - privado. Intervalos válidos são: -Intervalo de Endereço de Rede Privado Prefixo Normal -10.0.0.1 - 10.255.255.254 8 -172.x.0.1 - 172.x.255.254 16 -192.168.y.1 - 192.168.y.254 24 - - x pode ser qualquer número no intervalo 16-31. y pode ser qualquer - número no intervalo 0-255. - - Um endereço de IP privado válido poderia ser 192.168.1.1. Um FQDN - válido para esse IP poderia ser lfs.example.org. - - Mesmo se não se usar uma placa de rede, um FQDN válido ainda é exigido. - Isso é necessário para determinados aplicativos, tais como MTAs, - operarem adequadamente. - - Crie o arquivo /etc/hosts usando o seguinte comando: -cat > /etc/hosts << "EOF" -# Begin /etc/hosts - -127.0.0.1 localhost.localdomain localhost -127.0.1.1 -<192.168.0.2> [alias1] [alias2] ... -::1 localhost ip6-localhost ip6-loopback -ff02::1 ip6-allnodes -ff02::2 ip6-allrouters - -# End /etc/hosts -EOF - - Os valores <192.168.0.2>, e precisam ser mudados para - usuárias(os) ou exigências específicas(os) (se atribuído um endereço de - IP por uma(m) administradora(r) de rede/sistema e a máquina estará - conectada a uma rede existente). O(s) nome(s) de apelido(s) - opcional(is) pode(m) ser omitido(s), e a linha <192.168.0.2> pode ser - omitida se você estiver usando uma conexão configurada com DHCP ou IPv6 - Autoconfiguration. - - A entrada ::1 é o homônimo IPv6 do 127.0.0.1 e representa a interface - de loopback IPv6. 127.0.1.1 é uma entrada de loopback reservada - especificamente para o FQDN. - -9.3. Visão Geral do Manuseio de Dispositivos e Módulos - - No [609]Capítulo 8, nós instalamos o pacote udev quando systemd foi - construído. Antes de entrarmos em detalhes referentes a como isso - funciona, um histórico breve dos métodos anteriores de manuseio de - dispositivos é oportuno. - - Sistemas Linux em geral tradicionalmente usavam um método de criação de - dispositivo estático, pelo qual muitos nós de dispositivos eram criados - sob /dev (as vezes literalmente milhares de nós), independente de se os - dispositivos de hardware correspondentes atualmente existissem. Isso - tipicamente era feito via um script MAKEDEV, o qual contém um número de - chamadas ao aplicativo mknod com os números de dispositivo principal e - secundário relevantes para cada dispositivo possível que pudesse - existir no mundo. - - Usando o método udev, somente aqueles dispositivos os quais são - detectados pelo kernel obtém nós de dispositivo criados para eles. Como - esses nós de dispositivo serão criados a cada vez que o sistema - inicializar, eles serão armazenados em um sistema de arquivos devtmpfs - (um sistema de arquivos virtual que reside inteiramente na memória do - sistema). Nós de dispositivo não exigem muito espaço, de forma que a - memória que é usada é insignificante. - -9.3.1. Histórico - - Em fevereiro 2000, um novo sistema de arquivos chamado devfs foi - mesclado no kernel 2.3.46 e foi feito disponível durante as séries 2.4 - de kernels estáveis. Embora ele estivesse presente no próprio fonte do - kernel, esse método de criar dispositivos dinamicamente nunca recebeu - suporte decisivo das(os) desenvolvedoras(es) do kernel centrais. - - O problema principal com a abordagem adotada pelo devfs era a maneira - como ele lidava com detecção, criação e nomenclatura de dispositivo. O - último problema, esse da nomenclatura de nó de dispositivo, era talvez - o mais crítico. É aceito geralmente que, se nomes de dispositivo são - passíveis de serem configuráveis, então a política de nomenclatura de - dispositivo esteja a cargo de uma(m) administradora(r) do sistema, não - imposta sobre elas(es) por (quais)qualquer desenvolvedoras(r(es)) - específicas(o(s)). O sistema de arquivos devfs também sofria com - algumas condições que eram inerentes ao projeto dele e não poderiam ser - consertadas sem uma revisão substancial do kernel. Ele ficou marcado - como obsoleto por um longo período – e foi finalmente removido do - kernel em junho de 2006. - - Com o desenvolvimento da árvore do kernel 2.5 instável, liberada - posteriormente como as séries 2.6 dos kernels estáveis, um novo sistema - de arquivos virtual chamado sysfs veio a existir. O trabalho do sysfs é - o de exportar uma visão da configuração de hardware do sistema para - processos de espaço de usuária(o). Com essa representação visível ao - espaço de usuária(o), a possibilidade de desenvolvimento de um - substituto de espaço de usuária(o) para o devfs tornou-se muito mais - realista. - -9.3.2. Implementação do Udev - -9.3.2.1. Sysfs - - O sistema de arquivos sysfs foi mencionado brevemente acima. Alguém - talvez questione como o sysfs sabe sobre os dispositivos presentes em - um sistema e quais números de dispositivo deveriam ser usados para - eles. Controladores que tenham sido compilados diretamente no kernel - registram os objetos deles com um sysfs (devtmpfs internamente) assim - que eles são detectados pelo kernel. Para controladores compilados como - módulos, esse registro acontecerá quando o módulo for carregado. Assim - que o sistema de arquivos sysfs for montado (em /sys), os dados os - quais os controladores registram com sysfs ficam disponíveis para os - processos de espaço de usuária(o) e para udevd para processamento - (incluindo modificações para nós de dispositivo). - -9.3.2.2. Criação de Nó de Dispositivo - - Arquivos de dispositivo são criados pelo kernel por meio do sistema de - arquivos devtmpfs. Qualquer controlador que deseje registrar um nó de - dispositivo usará o devtmpfs (via o núcleo do controlador) para - fazê-lo. Quando uma instância do devtmpfs é montada em /dev, o nó de - dispositivo inicialmente será criado com um nome, permissões e - proprietária(o) fixos. - - Pouco tempo depois, o kernel enviará um uevent para udevd. Baseado nas - regras especificadas nos arquivos dentro dos diretórios - /etc/udev/rules.d, /usr/lib/udev/rules.d e /run/udev/rules.d, udevd - criará links simbólicos adicionais para o nó de dispositivo, ou mudará - as permissões, proprietária(o), ou grupo deles, ou modificará a entrada - de banco de dados do udevd interna (nome) para aquele objeto. - - As regras nesses três diretórios são numeradas e todos os três - diretórios são mesclados. Se udevd não puder encontrar uma regra para o - dispositivo que ele está criando, então ele deixará as permissões e - propriedade no que devtmpfs usou inicialmente. - -9.3.2.3. Carregamento de Módulo - - Controladores de dispositivo compilados como módulos talvez tenham - apelidos construídos dentro deles. Apelidos são visíveis na saída do - aplicativo modinfo e geralmente estão relacionados aos identificadores - específicos ao barramento dos dispositivos suportados por um módulo. - Por exemplo, o controlador snd-fm801 suporta dispositivos PCI com ID de - fornecedor 0x1319 e ID de dispositivo 0x0801, e tem um apelido de - “pci:v00001319d00000801sv*sd*bc04sc01i*â€. Para a maioria dos - dispositivos, o controlador de barramento exporta o apelido do - controlador que lidaria com o dispositivo via sysfs. Por exemplo, o - arquivo /sys/bus/pci/devices/0000:00:0d.0/modalias pode conter a - sequência de caracteres - “pci:v00001319d00000801sv00001319sd00001319bc04sc01i00â€. As regras - padrão fornecidas com udev causarão udevd chamar /sbin/modprobe com o - conteúdo da variável de ambiente do uevent MODALIAS (o qual deveria ser - o mesmo que o conteúdo do arquivo modalias em sysfs), dessa forma - carregando todos os módulos cujos apelidos correspondem a essa - sequência de caracteres depois da expansão de carácter curinga. - - Nesse exemplo, isso significa que, em adição a snd-fm801, o obsoleto (e - indesejado) controlador forte será carregado se ele estiver disponível. - Veja abaixo maneiras pelas quais o carregamento de controladores - indesejados pode ser evitado. - - O próprio kernel também é capaz de carregar módulos para protocolos de - rede, sistemas de arquivos e suporte NLS sob demanda. - -9.3.2.4. Lidando com Dispositivos Plugáveis a Quente/Dinâmicos - - Quando você conecta um dispositivo, como um tocador de MP3 Universal - Serial Bus (USB), o kernel reconhece que o dispositivo agora está - conectado e gera um uevent. Esse uevent é então tratado pelo udevd como - descrito acima. - -9.3.3. Problemas ao Carregar Módulos e Criar Dispositivos - - Existem uns poucos possíveis problemas quando se trata de criar - automaticamente nós de dispositivos. - -9.3.3.1. Um módulo do kernel não é carregado automaticamente - - O Udev só carregará um módulo se ele tiver um apelido específico a - barramento e o controlador de barramento exportar adequadamente os - apelidos necessários para sysfs. Em outros casos, deve-se organizar o - carregamento de módulo por outros meios. Com o Linux-5.16.9, udev é - conhecido por carregar controladores escritos adequadamente para - dispositivos INPUT, IDE, PCI, USB, SCSI, SERIO e FireWire. - - Para determinar se o controlador de dispositivo que você exige tem o - suporte necessário para udev, execute modinfo com o nome de módulo como - o argumento. Agora tente localizar o diretório de dispositivo sob - /sys/bus e verifique se existe um arquivo modalias lá. - - Se o arquivo modalias existir em sysfs, então o controlador suporta o - dispositivo e pode falar com ele diretamente, mas não tem o apelido, - isso é um defeito no controlador. Carregue o controlador sem a ajuda do - udev e espere que o problema seja consertado posteriormente. - - Se não existir arquivo modalias no diretório relevante sob /sys/bus, - então isso significa que as(os) desenvolvedoras(es) do kernel ainda não - adicionaram suporte modalias para esse tipo de barramento. Com - Linux-5.16.9, esse é o caso com barramentos ISA. Espere que esse - problema seja consertado em versões do kernel posteriores. - - Udev não é planejado para carregar controladores “encapsuladoresâ€, tais - como snd-pcm-oss, e controladores não hardware, tais como loop, de - maneira alguma. - -9.3.3.2. Um módulo do kernel não é carregado automaticamente, e udev não é -planejado para carregar ele - - Se o módulo “encapsulador†apenas aprimora a funcionalidade fornecida - por algum outro módulo (por exemplo, snd-pcm-oss aprimora a - funcionalidade de snd-pcm tornando as placas de som disponíveis para - aplicações OSS), então configure modprobe para carregar o encapsulador - após o udev carregar o módulo encapsulado. Para fazer isso, adicione - uma linha “softdep†ao arquivo /etc/modprobe.d/.conf - correspondente. Por exemplo: -softdep snd-pcm post: snd-pcm-oss - - Observe que o comando “softdep†também permite dependências pre:, ou - uma mistura de ambas as dependências pre: e post:. Veja-se a página de - manual modprobe.d(5) para mais informação sobre a sintaxe e capacidades - “softdepâ€. - -9.3.3.3. Udev carrega algum módulo indesejado - - Ou não construa o módulo, ou coloque-o na lista negra em um arquivo - /etc/modprobe.d/blacklist.conf como feito com o módulo forte no exemplo - abaixo: -blacklist forte - - Módulos em listas negras ainda podem ser carregados manualmente com o - comando explícito modprobe. - -9.3.3.4. Udev cria um dispositivo incorretamente, ou faz um link simbólico -errado - - Isso geralmente acontece se uma regra inesperadamente corresponder com - um dispositivo. Por exemplo, uma regra mal escrita pode corresponder - com ambos um disco SCSI (como desejado) e o dispositivo genérico SCSI - correspondente (incorretamente) pelo fornecedor. Encontre a regra - infratora e torne-a mais específica, com a ajuda do comando udevadm - info. - -9.3.3.5. Regra do Udev funciona de forma não confiável - - Isso talvez seja outra manifestação do problema anterior. Se não, e sua - regra usar atributos do sysfs, então isso talvez seja um problema de - temporização do kernel, a ser consertado em kernels posteriores. Por - hora, você pode contornar ele criando uma regra que aguarda o atributo - do sysfs usado e adiciona ele ao arquivo - /etc/udev/rules.d/10-wait_for_sysfs.rules (crie esse arquivo se ele não - existir). Por favor notifique a lista LFS Development se você o fizer e - isso ajudar. - -9.3.3.6. Udev não cria um dispositivo - - O texto adicional assume que o driver está construído estaticamente - dentro do kernel ou já carregado como um módulo, e que você já - verificou que o udev não cria um dispositivo mal nomeado. - - Udev não tem informação necessária para criar um nó de dispositivo se - um controlador de kernel não exportar os dados dele para o sysfs. Isso - é mais comum com controladores terceirizados oriundos de fora da árvore - do kernel. Crie um nó de dispositivo estático em /usr/lib/udev/devices - com os números principal/secundário apropriados (veja o arquivo - devices.txt dentro da documentação do kernel ou a documentação - fornecida pela(o) fornecedora(r) de controlador terceirizado). O nó de - dispositivo estático será copiado para /dev por udev. - -9.3.3.7. Ordem de nomenclatura de dispositivo muda aleatoriamente após -reinicializar - - Isso é devido ao fato de o udev, pelo projeto, lidar com uevents e - carregar módulos em paralelo, e assim em uma ordem imprevisível. Isso - nunca será “consertadoâ€. Você não deveria confiar que os nomes de - dispositivos do kernel sejam estáveis. Em vez disso, crie suas próprias - regras que fazem links simbólicos com nomes estáveis baseados em alguns - atributos estáveis do dispositivo, tais como um número de série ou a - saída dos vários utilitários *_id instalados pelo udev. Veja-se a - [610]Seção 9.4, “Gerenciando Dispositivos†e [611]Seção 9.2, - “Configuração de Rede Geral†para exemplos. - -9.3.4. Leitura Útil - - Documentação útil adicional está disponível nos seguintes sítios: - * A Userspace Implementation of devfs - [612]http://www.kroah.com/linux/talks/ols_2003_udev_paper/Reprint-K - roah-Hartman-OLS2003.pdf - * The sysfs Filesystem - [613]http://www.kernel.org/pub/linux/kernel/people/mochel/doc/paper - s/ols-2005/mochel.pdf - -9.4. Gerenciando Dispositivos - -9.4.1. Lidando com dispositivos duplicados - - Como explicado na [614]Seção 9.3, “Visão Geral do Manuseio de - Dispositivos e Módulosâ€, a ordem na qual dispositivos com a mesma - função aparecem em /dev é essencialmente aleatória. Por exemplo, se - você tem uma câmera web USB e um sintonizador de TV, as vezes - /dev/video0 se refere à câmera e /dev/video1 se refere ao sintonizador, - e as vezes após uma reinicialização a ordem muda. Para todas as classes - de hardware, exceto placas de som e placas de rede, isso é consertável - criando regras do udev para links simbólicos persistentes - personalizados. O caso das placas de rede é abordado separadamente na - [615]Seção 9.2, “Configuração de Rede Geralâ€, e configuração de placa - de som pode ser encontrado em [616]BLFS. - - Para cada um dos seus dispositivos que é provável ter esse problema - (mesmo que o problema não exista em sua distribuição Linux atual), - encontre o diretório correspondente sob /sys/class ou /sys/block. Para - dispositivos de vídeo, isso talvez seja /sys/class/video4linux/videoX. - Descubra os atributos que identificam o dispositivo de maneira única - (geralmente, IDs de fornecedor e produto e (ou) números seriais - funcionam): -udevadm info -a -p /sys/class/video4linux/video0 - - Então escreva regras que criam os links simbólicos, por exemplo: -cat > /etc/udev/rules.d/83-duplicate_devs.rules << "EOF" - -# Persistent symlinks for webcam and tuner -KERNEL=="video*", ATTRS{idProduct}=="1910", ATTRS{idVendor}=="0d81", SYMLINK+="w -ebcam" -KERNEL=="video*", ATTRS{device}=="0x036f", ATTRS{vendor}=="0x109e", SYMLINK+="t -vtuner" - -EOF - - O resultado é que os dispositivos /dev/video0 e /dev/video1 ainda se - referem aleatoriamente ao sintonizador e à câmera web (e, portanto, - nunca deveriam ser usados diretamente), mas existem links simbólicos - /dev/tvtuner e /dev/webcam que sempre apontam para o dispositivo - correto. - -9.5. Configurando o relógio do sistema - - Esta seção discute como configurar o serviço de sistema - systemd-timedated, o qual configura o relógio e fuso horário do - sistema. - - Se você não conseguir se lembrar se ou não o relógio do hardware está - configurado para UTC, [então] descubra executando o comando hwclock - --localtime --show. Isso mostrará o que a hora atual é de acordo com o - relógio do hardware. Se essa hora corresponder à que o seu relógio diz, - então o relógio do hardware está configurado para hora local. Se a - saída originária do hwclock não for a hora local, [então] as chances - são que ele esteja configurado para hora UTC. Verifique isso - adicionando ou subtraindo a quantidade apropriada de horas para o fuso - horário à (da) hora mostrada pelo hwclock. Por exemplo, se você estiver - atualmente no fuso horário MST, o qual é conhecido também como GMT - -0700, [então] adicione sete horas à hora local. - - O systemd-timedated lê /etc/adjtime, e, dependendo do conteúdo do - arquivo, configura o relógio para ou UTC ou hora local. - - Crie o arquivo /etc/adjtime com o seguinte conteúdo se seu relógio do - hardware estiver configurado para hora local: -cat > /etc/adjtime << "EOF" -0.0 0 0.0 -0 -LOCAL -EOF - - Se /etc/adjtime não estiver presente na primeira inicialização, [então] - systemd-timedated assumirá que o relógio do hardware está configurado - para UTC e ajustará o arquivo de acordo com isso. - - Você também pode usar o utilitário timedatectl para dizer ao - systemd-timedated se o seu relógio do hardware está configurado para - UTC ou hora local: -timedatectl set-local-rtc 1 - - O timedatectl também pode ser usado para mudar a hora e fuso horário do - sistema. - - Para mudar sua atual hora do sistema, emita: -timedatectl set-time YYYY-MM-DD HH:MM:SS - - O relógio do hardware também será atualizado de acordo. - - Para mudar seu atual fuso horário, emita: -timedatectl set-timezone TIMEZONE - - Você pode obter uma lista dos fusos horários disponíveis executando: -timedatectl list-timezones - -Nota - - Por favor observe que o comando timedatectl não funciona no ambiente - chroot. Ele somente pode ser usado depois que o sistema LFS for - inicializado com o systemd. - -9.5.1. Sincronização da Hora da Rede - - Iniciando com a versão 213, o systemd envia um daemon chamado - systemd-timesyncd o qual pode ser usado para sincronizar a hora do - sistema com servidores do NTP remotos. - - O daemon não é concebido como um substituto para o bem estabelecido - daemon do NTP, porém como uma implementação somente cliente do - protocolo SNTP o qual pode ser usado para tarefas menos avançadas e em - sistemas de recurso limitado. - - Iniciando com o systemd versão 216, o daemon systemd-timesyncd está - habilitado por padrão. Se você desejar desabilitar ele, [então] emita o - seguinte comando: -systemctl disable systemd-timesyncd - - O arquivo /etc/systemd/timesyncd.conf pode ser usado para mudar os - servidores do NTP que o systemd-timesyncd sincroniza com. - - Por favor observe que, quando o relógio do sistema estiver configurado - para Hora Local, [então] o systemd-timesyncd não atualizará o relógio - do hardware. - -9.6. Configurando o Console do Linux - - Esta seção discute como configurar o serviço de sistema - systemd-vconsole-setup, o qual configura a fonte de console virtual e - mapa de tecla de console. - - O serviço systemd-vconsole-setup lê o arquivo /etc/vconsole.conf para - informação de configuração. Decida qual mapa de tecla e fonte de tela - será usada. Vários HOWTOs específicos de idioma também podem ajudar com - isso, veja-se - [617]http://www.tldp.org/HOWTO/HOWTO-INDEX/other-lang.html. Examine a - saída de localectl list-keymaps para uma lista dos mapas de tecla de - console válidos. Olhe no diretório /usr/share/consolefonts para fontes - de tela válidas. - - O arquivo /etc/vconsole.conf deveria conter linhas da forma: - VARIÃVEL="valor". As seguintes variáveis são reconhecidas: - - KEYMAP - Essa variável especifica a tabela de mapeamento de tecla para o - teclado. Se desconfigurada, [então] ela padroniza para us. - - KEYMAP_TOGGLE - Essa variável pode ser usada para configurar um segundo mapa de - tecla de alternância e é desconfigurada por padrão. - - FONT - Essa variável especifica a fonte usada pelo console virtual. - - FONT_MAP - Essa variável especifica o mapa de console para ser usado. - - FONT_UNIMAP - Essa variável especifica o mapa de fonte Unicode. - - Um exemplo para um teclado e console alemão é dado abaixo: -cat > /etc/vconsole.conf << "EOF" -KEYMAP=de-latin1 -FONT=Lat2-Terminus16 -EOF - - Você pode mudar o valor KEYMAP em tempo de execução usando o utilitário - localectl: -localectl set-keymap MAP - -Nota - - Por favor observe que o comando localectl não funciona no ambiente - chroot. Ele somente pode ser usado depois que o sistema LFS for - inicializado com o systemd. - - Você também pode usar o utilitário localectl com os parâmetros - correspondentes para mudar o esquema, modelo, variante e opções de - teclado do X11: -localectl set-x11-keymap LAYOUT [MODEL] [VARIANT] [OPTIONS] - - Para listar possíveis valores para os parâmetros do localectl - set-x11-keymap, execute localectl com os parâmetros listados abaixo: - - list-x11-keymap-models - Mostra modelos de mapeamento de teclado do X11 conhecidos. - - list-x11-keymap-layouts - Mostra esquemas de mapeamento de teclado do X11 conhecidos. - - list-x11-keymap-variants - Mostra variantes de mapeamento de teclado do X11 conhecidas. - - list-x11-keymap-options - Mostra opções de mapeamento de teclado do X11 conhecidas. - -Nota - - Usar quaisquer dos parâmetros listados acima exige o pacote - XKeyboard-Config originário do BLFS. - -9.7. Configurando o Locale do Sistema - - O arquivo /etc/locale.conf abaixo configura algumas variáveis de - ambiente necessárias para suporte de idioma nativo. Configurar elas - adequadamente resulta em: - * A saída de aplicativos sendo traduzida para seu idioma nativo - * A classificação correta de caracteres em letras, dígitos e outras - classes. Isso é necessário para o bash aceitar adequadamente - caracteres não ASCII em linhas de comando em locales não ingleses - * A sequência de ordenação alfabética correta para o país - * Tamanho de papel padrão apropriado - * Formatação correta de valores monetário, hora e data - - Substitua abaixo com o código de duas letras para seu idioma - desejado (por exemplo, “enâ€) e com o código de duas letras para o - país apropriado (por exemplo, “GBâ€). deveria ser substituído - com o mapa de caracteres canônico para seu locale escolhido. - Modificadores opcionais, tais como “@euroâ€, talvez também estejam - presentes. - - A lista de todos os locales suportados pela Glibc pode ser obtida - executando o seguinte comando: -locale -a - - Mapas de caracteres podem ter um número de apelidos, por exemplo, - “ISO-8859-1†também é referenciado como “iso8859-1†e “iso88591â€. - Alguns aplicativos não podem lidar com os vários sinônimos corretamente - (por exemplo, exigem que “UTF-8†seja escrito como “UTF-8â€, não - “utf8â€), de forma que é mais seguro, na maioria dos casos, escolher o - nome canônico para um locale particular. Para determinar o nome - canônico, execute o seguinte comando, onde é a saída dada - por locale -a para seu locale preferido (“en_GB.iso88591†no nosso - exemplo). -LC_ALL= locale charmap - - Para o locale “en_GB.iso88591â€, o comando acima imprimirá: -ISO-8859-1 - - Isso resulta em uma configuração de locale final de “en_GB.ISO-8859-1â€. - É importante que o locale encontrado usando a heurística acima seja - testado antes que ele seja adicionado aos arquivos de inicialização do - Bash: -LC_ALL= locale language -LC_ALL= locale charmap -LC_ALL= locale int_curr_symbol -LC_ALL= locale int_prefix - - Os comandos acima deveriam imprimir o nome do idioma, a codificação de - caracteres usada pelo locale, a moeda local, e o prefixo para discar - antes do número de telefone para se alcançar o país. Se quaisquer dos - comandos acima falharem com uma mensagem similar àquela mostrada - abaixo, [então] isso significa que seu locale ou não foi instalado no - Capítulo 8 ou não é suportado pela instalação padrão da Glibc. -locale: Cannot set LC_* to default locale: No such file or directory - - Se isso acontecer, [então] você deveria instalar o locale desejado - usando o comando localedef, ou considere escolher um locale diferente. - As instruções posteriores assumem que não existem tais mensagens de - erro originárias da Glibc. - - Alguns pacotes além do LFS também talvez careçam de suporte para seu - locale escolhido. Um exemplo é a biblioteca do X (parte do X Window - System), a qual externaliza a seguinte mensagem de erro se o locale não - corresponder exatamente a um dos nomes de mapa de carácter nos arquivos - internos dela: -Warning: locale not supported by Xlib, locale set to C - - Em muitos casos, a Xlib presume que o mapa de carácter será listado em - notação de letras maiúsculas com hífens canônicos. Por exemplo, - "ISO-8859-1" em vez de "iso88591". Também é possível encontrar uma - especificação apropriada removendo-se a parte de mapa de carácter da - especificação de locale. Isso pode ser verificado executando-se o - comando locale charmap em ambos os locales. Por exemplo, alguém poderia - ter que mudar "de_DE.ISO-8859-15@euro" para "de_DE@euro" para conseguir - que esse locale fosse reconhecido pela Xlib. - - Outros pacotes também podem funcionar incorretamente (mas talvez não - necessariamente exibam quaisquer mensagens de erro) se o nome do locale - não corresponder às expectativas deles. Nesses casos, investigar como - outras distribuições do Linux suportam seu locale poderia fornecer - alguma informação útil. - - Uma vez que as configurações de locale adequadas tenham sido - determinadas, crie o arquivo /etc/locale.conf: -cat > /etc/locale.conf << "EOF" -LANG=_.<@modifiers> -EOF - - Observe que você pode modificar o /etc/locale.conf com o utilitário - localectl do systemd. Para usar o localectl para o exemplo acima, - execute: -localectl set-locale LANG="_.<@modifiers>" - - Você também pode especificar outras variáveis de ambiente específicas - de idioma, tais como LANG; LC_CTYPE; LC_NUMERIC; ou qualquer outra - variável de ambiente oriunda da saída de locale. Apenas separe elas com - um espaço. Um exemplo onde LANG é configurada como en_US.UTF-8, porém - LC_CTYPE é configurada apenas como en_US é: -localectl set-locale LANG="en_US.UTF-8" LC_CTYPE="en_US" - -Nota - - Por favor observe que o comando localectl não funciona no ambiente - chroot. Ele somente pode ser usado depois que o sistema LFS for - inicializado com o systemd. - - Os locales “C†(padrão) e “en_US†(aquele recomendado para usuárias(os) - do inglês dos Estados Unidos da América do Norte) são diferentes. “C†- usa o conjunto de caracteres de 7 bits US-ASCII, e trata bytes com o - bit alto configurado como caracteres inválidos. Esse é o porquê, por - exemplo, do comando ls substituir eles com pontos de interrogação nesse - locale. Também, uma tentativa de enviar correio com tais caracteres a - partir do Mutt ou Pine resulta em mensagens de não conformidade com RFC - sendo enviadas (o conjunto de caracteres no correio de saída é indicado - como “unknown 8-bitâ€). É sugerido que você use o locale “C†apenas se - você tiver certeza de que nunca precisará de caracteres de 8 bits. - -9.8. Criando o Arquivo /etc/inputrc - - O arquivo inputrc é o arquivo de configuração para a biblioteca - readline, a qual fornece capacidades de edição enquanto a(o) usuária(o) - estiver digitando uma linha a partir do terminal. Ele funciona - traduzindo entradas de teclado em ações específicas. Readline é usada - pelo bash e maioria dos outros shells, bem como muitos outros - aplicativos. - - A maioria das pessoas não necessita de funcionalidade específica de - usuária(o), de forma que o comando abaixo cria um /etc/inputrc global - usado por qualquer uma(m) que se logue. Se você mais tarde decidir que - você precisa sobrepor os padrões em uma base por usuária(o), [então] - você pode criar um arquivo .inputrc no diretório home da(o) usuária(o) - com os mapeamentos modificados. - - Para mais informação sobre como editar o arquivo inputrc, veja-se info - bash sob a seção Readline Init File. info readline é também uma boa - fonte de informação. - - Abaixo está um inputrc global genérico junto com comentários para - explicar o que as várias opções fazem. Observe que comentários não - podem estar na mesma linha que comandos. Crie o arquivo usando o - seguinte comando: -cat > /etc/inputrc << "EOF" -# Begin /etc/inputrc -# Modified by Chris Lynn - -# Allow the command prompt to wrap to the next line -set horizontal-scroll-mode Off - -# Enable 8bit input -set meta-flag On -set input-meta On - -# Turns off 8th bit stripping -set convert-meta Off - -# Keep the 8th bit for display -set output-meta On - -# none, visible or audible -set bell-style none - -# All of the following map the escape sequence of the value -# contained in the 1st argument to the readline specific functions -"\eOd": backward-word -"\eOc": forward-word - -# for linux console -"\e[1~": beginning-of-line -"\e[4~": end-of-line -"\e[5~": beginning-of-history -"\e[6~": end-of-history -"\e[3~": delete-char -"\e[2~": quoted-insert - -# for xterm -"\eOH": beginning-of-line -"\eOF": end-of-line - -# for Konsole -"\e[H": beginning-of-line -"\e[F": end-of-line - -# End /etc/inputrc -EOF - -9.9. Criando o Arquivo /etc/shells - - O arquivo shells contém uma lista dos shells de login no sistema. Os - aplicativos usam esse arquivo para determinar quando um shell é válido. - Para cada shell, uma linha única deveria estar presente, consistindo do - caminho do shell relativo à raiz da estrutura de diretório (/). - - Por exemplo, esse arquivo é consultado pelo chsh para determinar quando - uma usuária desprivilegiada possa mudar o shell de login para a própria - conta dela. Se o nome de comando não estiver listado, [então] a usuária - terá negada a habilidade de mudar shells. - - É uma exigência para aplicativos tais como GDM o qual não publiciza o - navegador de face se ele não puder encontrar /etc/shells, ou daemons do - FTP os quais tradicionalmente proíbem acesso a usuárias(os) com shells - não incluídos nesse arquivo. -cat > /etc/shells << "EOF" -# Begin /etc/shells - -/bin/sh -/bin/bash - -# End /etc/shells -EOF - -9.10. Uso e Configuração do Systemd - -9.10.1. Configuração Básica - - O arquivo /etc/systemd/system.conf contém um conjunto de opções para - controlar as operações do systemd básicas. O arquivo padrão tem todas - as entradas comentadas com as configurações padrão indicadas. Esse - arquivo é onde o nível de registro talvez seja mudado, bem como algumas - configurações de registro básicas. Veja-se a página de manual - systemd-system.conf(5) para detalhes sobre cada opção de configuração. - -9.10.2. Desabilitando a Limpeza da Tela em Tempo de Inicialização - - O comportamento normal para o systemd é o de limpar a tela ao final da - sequência de inicialização. Se desejado, esse comportamento talvez seja - mudado executando o seguinte comando: -mkdir -pv /etc/systemd/system/getty@tty1.service.d - -cat > /etc/systemd/system/getty@tty1.service.d/noclear.conf << EOF -[Service] -TTYVTDisallocate=no -EOF - - As mensagens de inicialização podem sempre ser revistas usando o - comando journalctl -b como a(o) usuária(o) root. - -9.10.3. Desabilitando tmpfs para /tmp - - Por padrão, /tmp é criado como um tmpfs. Se isso não for desejado, - [então] ele pode ser sobreposto executando o seguinte comando: -ln -sfv /dev/null /etc/systemd/system/tmp.mount - - Alternativamente, se uma partição separada para /tmp for desejada, - [então] especifique essa partição em uma entrada do /etc/fstab. - -Atenção - - Não crie o link simbólico acima se uma partição separada for usada para - o /tmp. Isso impedirá o sistema de arquivos raiz (/) de ser remontado - leitura/escrita e tornará o sistema inutilizável quando inicializado. - -9.10.4. Configurando a Criação e Deleção de Arquivo Automática - - Existem vários serviços que criam ou deletam arquivos ou diretórios: - * systemd-tmpfiles-clean.service - * systemd-tmpfiles-setup-dev.service - * systemd-tmpfiles-setup.service - - O local de sistema para os arquivos de configuração é - /usr/lib/tmpfiles.d/*.conf. Os arquivos de configuração locais estão em - /etc/tmpfiles.d. Os arquivos em /etc/tmpfiles.d sobrepõem os arquivos - com o mesmo nome em /usr/lib/tmpfiles.d. Veja-se a página de manual - tmpfiles.d(5) para detalhes do formato de arquivo. - - Observe que a sintaxe para os arquivos /usr/lib/tmpfiles.d/*.conf pode - ser confusa. Por exemplo, a deleção de arquivos padrão no diretório - /tmp está localizada em /usr/lib/tmpfiles.d/tmp.conf com a linha: -q /tmp 1777 root root 10d - - O campo tipo, q, discute criar um sub-volume com cotas, o qual - realmente é aplicável apenas para sistemas de arquivos btrfs. Ele - referencia tipo v, o qual sequencialmente referencia tipo d - (diretório). Isso então cria o diretório especificado se ele não - estiver presente e ajusta as permissões e propriedade como - especificado. O conteúdo do diretório estará sujeito a limpeza baseada - em hora se o argumento idade for especificado. - - Se os parâmetros padrão não forem desejados, então o arquivo deveria - ser copiado para /etc/tmpfiles.d e editado conforme desejado. Por - exemplo: -mkdir -p /etc/tmpfiles.d -cp /usr/lib/tmpfiles.d/tmp.conf /etc/tmpfiles.d - -9.10.5. Sobrepondo o Comportamento de Serviços Padrão - - Os parâmetros de uma unidade podem ser sobrepostos criando-se um - diretório e um arquivo de configuração em /etc/systemd/system. Por - exemplo: -mkdir -pv /etc/systemd/system/foobar.service.d - -cat > /etc/systemd/system/foobar.service.d/foobar.conf << EOF -[Service] -Restart=always -RestartSec=30 -EOF - - Veja-se a página de manual systemd.unit(5) para mais informação. Depois - de criar o arquivo de configuração, execute systemctl daemon-reload e - systemctl restart foobar para ativar as mudanças para um serviço. - -9.10.6. Depurando a Sequência de Inicialização - - Em vez de scripts de shell simples usados nos sistemas de inicialização - estilo SysVinit ou BSD, o systemd usa um formato unificado para tipos - diferentes dos arquivos de inicialização (ou unidades). O comando - systemctl é usado para habilitar; desabilitar; controlar estado; e - obter a situação dos arquivos de unidade. Aqui estão alguns exemplos - dos comandos usados frequentemente: - * systemctl list-units -t [--all]: lista os arquivos de - unidade carregados do tipo serviço. - * systemctl list-units -t [--all]: lista os arquivos de - unidade carregados do tipo alvo. - * systemctl show -p Wants : mostra todas as - unidades que dependem do alvo multi-user. Alvos são arquivos de - unidade especiais que são análogos a níveis de execução sob o - SysVinit. - * systemctl status : mostra a situação do - serviço nomeserviço. A extensão .service pode ser omitida se não - existirem outros arquivos de unidade com o mesmo nome, tais como - arquivos .socket (os quais criam um soquete de escuta que fornece - funcionalidade similar ao inetd/xinetd). - -9.10.7. Trabalhando com o Diário do Systemd - - O registro em um sistema inicializado com o systemd é manejado com o - systemd-journald (por padrão), em vez de um daemon syslog Unix típico. - Você também pode adicionar um daemon syslog normal e ter ambos operando - lado a lado se desejado. O aplicativo systemd-journald armazena - entradas de diário em um formato binário, em vez de um arquivo de - registro de texto simples. Para auxiliar na análise do arquivo, o - comando journalctl é fornecido. Aqui estão alguns exemplos dos comandos - usados frequentemente: - * journalctl -r: mostra todo o conteúdo do diário em ordem - cronológica reversa. - * journalctl -u UNIDADE: mostra as entradas de diário associadas com - o arquivo de UNIDADE especificado. - * journalctl -b[=ID] -r: mostra as entradas de diário desde a mais - recente inicialização bem sucedida (ou para a ID de inicialização) - em ordem cronológica reversa. - * journalctl -f: fornece funcionalidade similar ao tail -f (seguir). - -9.10.8. Trabalhando com Despejos de Núcleo - - Despejos de núcleo são úteis para depurar aplicativos quebrados, - especialmente quando um processo de daemon quebra. Em sistemas - inicializados do systemd, o despejamento de núcleo é manejado pelo - systemd-coredump. Ele registrará o despejo de núcleo no diário e - armazenará o próprio despejo de núcleo em /var/lib/systemd/coredump. - Para recuperar e processar despejos de núcleo, a ferramenta coredumpctl - é fornecida. Aqui estão alguns exemplos de comandos usados - frequentemente: - * coredumpctl -r: lista todos os despejos de núcleo em ordem - cronológica reversa. - * coredumpctl -1 info: mostra a informação a partir do mais recente - despejo de núcleo. - * coredumpctl -1 debug: carrega o mais recente despejo de núcleo no - [618]GDB. - - Despejos de núcleo talvez usem um monte de espaço de disco. O espaço de - disco máximo usado por despejos de núcleo pode ser limitado criando-se - um arquivo de configuração em /etc/systemd/coredump.conf.d. Por - exemplo: -mkdir -pv /etc/systemd/coredump.conf.d - -cat > /etc/systemd/coredump.conf.d/maxuse.conf << EOF -[Coredump] -MaxUse=5G -EOF - - Vejam-se as páginas de manual systemd-coredump(8); coredumpctl(1); e - coredump.conf.d(5) para mais informação. - -9.10.9. Processos de Execução Longa - - Iniciando com o systemd-230, todos os processos de usuária(o) são - finalizados quando uma sessão de usuária(o) for terminada, mesmo se - nohup for usado, ou o processo usar as funções daemon() ou setsid(). - Isso é uma mudança deliberada de um ambiente permissivo historicamente - para um mais restritivo. O novo comportamento talvez cause problemas se - você depender de aplicativos de execução longa (por exemplo, screen ou - tmux) para continuarem ativos depois de terminar sua sessão de - usuária(o). Existem três maneiras de habilitar processos persistentes - para continuarem depois que uma sessão de usuária(o) for terminada. - * Habilitar persistência de processo apenas para usuárias(os) - selecionadas(os): Usuárias(os) normais tem permissão para habilitar - persistência de processo com o comando loginctl enable-linger para - as(os) próprias(os) usuárias(os) delas(es). Administradoras(es) de - sistema podem usar o mesmo comando com um argumento user ao - habilitar para uma(m) usuária(o). Essa(e) usuária(o) pode então - usar o comando systemd-run para iniciar processos de execução - longa. Por exemplo: systemd-run --scope --user /usr/bin/screen. Se - você habilitar a persistência para sua(eu) usuária(o), [então] a - user@.service continuará, mesmo depois que todas as sessões de - login forem fechadas, e automaticamente iniciará na inicialização - do sistema. Isso tem a vantagem de explicitamente permitir e - proibir processos para execução depois que a sessão de usuária(o) - for terminada, porém quebra retrocompatibilidade com ferramentas - como nohup e utilitários que usam daemon(). - * Habilitar persistência de processo no âmbito do sistema: Você pode - configurar KillUserProcesses=no em /etc/systemd/logind.conf para - habilitar a persistência de processo globalmente para todas(os) - as(os) usuárias(os). Isso tem o benefício de deixar o método antigo - disponível para todas(os) as(os) usuárias(os) à custa do controle - explícito. - * Desabilitar em tempo de construção: Você pode desabilitar a - persistência por padrão enquanto construir o systemd adicionando a - chave -Ddefault-kill-user-processes=false ao comando meson para o - systemd. Isso desabilita completamente a habilidade do systemd para - finalizar processos de usuária(o) ao fim de sessão. - -Capítulo 10. Tornando o Sistema LFS Inicializável - -10.1. Introdução - - É hora de tornar o sistema LFS inicializável. Este capítulo discute a - criação do arquivo /etc/fstab; construção de um kernel para o novo - sistema LFS; e instalação do carregador de inicialização GRUB, de modo - que o sistema LFS possa ser selecionado para iniciar durante a - inicialização. - -10.2. Criando o Arquivo /etc/fstab - - O arquivo /etc/fstab é usado por alguns aplicativos para determinar - onde sistemas de arquivos são para serem montados por padrão; em qual - ordem; e quais precisam ser verificados (para erros de integridade) - antes da montagem. Crie uma nova tabela de sistemas de arquivos como - esta: -cat > /etc/fstab << "EOF" -# Begin /etc/fstab - -# file system mount-point type options dump fsck -# order - -/dev/ / defaults 1 1 -/dev/ swap swap pri=1 0 0 - -# End /etc/fstab -EOF - - Substitua ; ; e com os valores apropriados para o - sistema, por exemplo, sda2; sda5; e ext4. Para detalhes sobre os seis - campos nesse arquivo, veja-se man 5 fstab. - - Sistemas de arquivos com origem MS-DOS ou Windows (isto é, vfat, ntfs, - smbfs, cifs, iso9660, udf) precisam de uma opção especial, utf8, para a - finalidade de caracteres não ASCII nos nomes de arquivo serem - interpretados corretamente. Para locales não UTF-8, o valor de - iocharset deveria ser configurado para ser o mesmo que o conjunto de - caracteres do locale, ajustado de tal maneira que o kernel o entenda. - Isso funciona se a definição de conjunto de caracteres relevante - (encontrada sob File systems -> Native Language Support quando da - configuração do kernel) tenha sido compilada no kernel ou construída - como um módulo. Entretanto, se o conjunto de caracteres do locale for - UTF-8, [então] a correspondente opção iocharset=utf8 tornaria o sistema - de arquivo sensível a maiúsculas e minúsculas. Para consertar isso, use - a opção especial utf8 em vez de iocharset=utf8, para locales UTF-8. A - opção “codepage†também é necessária para sistemas de arquivos vfat e - smbfs. Ela deveria ser configurada para o número da página de código - usada sob MS-DOS em seu país. Por exemplo, para montar controladores - flash USB, uma(m) usuária(o) do ru_RU.KOI8-R precisaria do seguinte na - porção de opções da linha mount dele em /etc/fstab: -noauto,user,quiet,showexec,codepage=866,iocharset=koi8r - - O correspondente fragmento das opções para usuárias(os) do ru_RU.UTF-8 - é: -noauto,user,quiet,showexec,codepage=866,utf8 - - Observe que usar iocharset é o padrão para iso8859-1 (a qual mantém o - sistema de arquivo insensível a maiúsculas e minúsculas), e a opção - utf8 diz ao kernel para converter os nomes de arquivo usando UTF-8, de - forma que eles podem ser interpretados no locale UTF-8. - - É possível também especificar os valores de página de código e - iocharset padrão para alguns sistemas de arquivos durante a - configuração do kernel. Os parâmetros relevantes são chamados de - “Default NLS Option†(CONFIG_NLS_DEFAULT); “Default Remote NLS Option†- (CONFIG_SMB_NLS_DEFAULT); “Default codepage for FAT†- (CONFIG_FAT_DEFAULT_CODEPAGE); e “Default iocharset for FAT†- (CONFIG_FAT_DEFAULT_IOCHARSET). Não há maneira de especificar essas - configurações para o sistema de arquivos ntfs em tempo de compilação do - kernel. - - É possível tornar o sistema de arquivos ext3 confiável em casos de - falhas de eletricidade para alguns tipos de disco rígido. Para fazer - isso, adicione a opção de montagem barrier=1 para a entrada apropriada - em /etc/fstab. Para verificar se o controlador de disco suporta essa - opção, execute [619]hdparm no controlador de disco aplicável. Por - exemplo, se: -hdparm -I /dev/sda | grep NCQ - - retornar uma saída não vazia, [então] a opção é suportada. - - Nota: partições baseadas em Logical Volume Management (LVM) não podem - usar a opção barrier. - -10.3. Linux-5.16.9 - - O pacote Linux contém o kernel do Linux. - Tempo aproximado de construção: 1,5 - 130,0 UPC (tipicamente cerca de - 12 UPC) - Espaço em disco exigido: 1200 - 8800 MB (tipicamente cerca de 1700 MB) - -10.3.1. Instalação do kernel - - Construir o kernel envolve uns poucos passos—configuração; compilação; - e instalação. Leia o arquivo README na árvore do fonte do kernel para - métodos alternativos à maneira que este livro configura o kernel. - - Prepare para compilação executando o seguinte comando: -make mrproper - - Isso garante que a árvore do kernel esteja absolutamente limpa. O time - do kernel recomenda que esse comando seja executado antes de cada - compilação do kernel. Não confie que a árvore do fonte esteja limpa - após descompactar. - - Existem muitas maneiras de configurar as opções do kernel. Usualmente, - isso é feito por meio de uma interface controlada por menu, por - exemplo: -make menuconfig - - O significado das variáveis de ambiente do make opcionais: - - LANG= LC_ALL= - Isso estabelece a configuração do locale para aquela usada no - anfitrião. Isso talvez seja necessário para um adequado desenho - de linha da interface ncurses do menuconfig em um console de - texto linux UTF-8. - - Se usada, [então] assegure-se de substituir - pelo valor da variável $LANG oriunda do seu anfitrião. Você - pode, alternativamente, usar, em vez disso, o valor do anfitrião - de $LC_ALL ou $LC_CTYPE. - - make menuconfig - Isso lança uma interface controlada por menu ncurses. Para - outras (gráficas) interfaces, digite make help. - - Para informação geral sobre configuração do kernel, veja-se - [620]https://www.linuxfromscratch.org/hints/downloads/files/kernel-conf - iguration.txt. O BLFS tem alguma informação relativa a exigências de - configuração do kernel particulares de pacotes que estão fora do LFS em - [621]https://www.linuxfromscratch.org/blfs/view/stable-systemd/longinde - x.html#kernel-config-index. Informação adicional sobre configurar e - construir o kernel pode ser encontrada em - [622]http://www.kroah.com/lkn/ - -Nota - - Um bom ponto de partida para configurar a configuração do kernel é - executar make defconfig. Isso configurará a configuração base para um - bom estado que leve a sua atual arquitetura de sistema em conta. - - Assegure-se de habilitar/desabilitar/configurar as seguintes - características ou o sistema poderia não funcionar corretamente ou - inicializar de forma alguma: -General setup --> - [ ] Auditing Support [CONFIG_AUDIT] - < > Enable kernel headers through /sys/kernel/kheaders.tar.xz [CONFIG_IKHEADE -RS] - [*] Control Group support [CONFIG_CGROUPS] ---> - [*] Memory controller [CONFIG_MEMCG] - [ ] Enable deprecated sysfs features to support old userspace tools [CONFIG_S -YSFS_DEPRECATED] - [*] Configure standard kernel features (expert users) [CONFIG_EXPERT] ---> - [*] open by fhandle syscalls [CONFIG_FHANDLE] - CPU/Task time and stats accounting ---> - [*] Pressure stall information tracking [CONFIG_PSI] -General architecture-dependent options ---> - [*] Enable seccomp to safely compute untrusted bytecode [CONFIG_SECCOMP] -Networking support ---> - Networking options ---> - <*> The IPv6 protocol [CONFIG_IPV6] -Device Drivers ---> - Firmware Drivers ---> - [*] Export DMI identification via sysfs to userspace [CONFIG_DMIID] - Graphics support ---> - Frame buffer Devices ---> - [*] Support for frame buffer devices ---- - Generic Driver Options ---> - [ ] Support for uevent helper [CONFIG_UEVENT_HELPER] - [*] Maintain a devtmpfs filesystem to mount at /dev [CONFIG_DEVTMPFS] - Firmware Loader ---> - [ ] Enable the firmware sysfs fallback mechanism [CONFIG_FW_LOADER_USER_HE -LPER] -File systems ---> - [*] Inotify support for userspace [CONFIG_INOTIFY_USER] - Pseudo filesystems ---> - [*] Tmpfs POSIX Access Control Lists [CONFIG_TMPFS_POSIX_ACL] - -Nota - - Enquanto que "The IPv6 Protocol" não é estritamente exigido, ela é - altamente recomendada pelas(os) desenvolvedoras(es) do systemd. - -Nota - - Se seu hardware do anfitrião estiver usando UEFI e você desejar - inicializar o sistema LFS com ela, [então] você deveria ajustar alguma - configuração do kernel seguindo [623]a página do BLFS. - - A justificativa para os itens de configuração acima: - - Enable kernel headers through /sys/kernel/kheaders.tar.xz - Isso exigirá cpio ao se construir o kernel. cpio não é instalado - por LFS. - - Support for uevent helper - Ter essa opção configurada talvez interfira com o gerenciamento - de dispositivo quando se usar Udev/Eudev. - - Maintain a devtmpfs - Isso criará nós de dispositivos automatizados os quais são - povoados pelo kernel, mesmo sem o Udev executando. O Udev então - executa no topo disso, gerenciando permissões e adicionando - links simbólicos. Esse item de configuração é exigido para - todas(os) as(os) usuárias(os) do Udev/Eudev. - - Alternativamente, make oldconfig talvez seja mais apropriado em algumas - situações. Veja-se o arquivo README para mais informação. - - Se desejado, [então] pule a configuração do kernel copiando o arquivo - config do kernel, .config, a partir do sistema anfitrião (assumindo que - ele esteja disponível) para o diretório linux-5.16.9 desempacotado. - Entretanto, nós não recomendamos essa opção. Frequentemente é melhor - explorar todos os menus de configuração e criar a configuração do - kernel a partir do zero. - - Compile a imagem do kernel e módulos: -make - - Se usar módulos do kernel, [então] a configuração do módulo em - /etc/modprobe.d talvez seja exigida. Informação pertinente à - configuração de módulos e kernel está localizada na [624]Seção 9.3, - “Visão Geral do Manuseio de Dispositivos e Módulos†e na documentação - do kernel no diretório linux-5.16.9/Documentation. Também, - modprobe.d(5) talvez seja de interesse. - - A menos que o suporte de módulo tenha sido desabilitado na configuração - do kernel, instale os módulos com: -make modules_install - - Depois que a compilação do kernel estiver completa, passos adicionais - são exigidos para completar a instalação. Alguns arquivos precisam ser - copiados para o diretório /boot. - -Cuidado - - Se o sistema anfitrião tiver uma partição /boot separada, [então] os - arquivos copiados abaixo deveriam ir para lá. A maneira mais fácil de - fazer isso é vincular /boot no anfitrião (do lado de fora do chroot) à - /mnt/lfs/boot antes de prosseguir. Como a(o) usuária(o) root no sistema - anfitrião: -mount --bind /boot /mnt/lfs/boot - - O caminho para a imagem do kernel talvez varie, dependendo da - plataforma sendo usada. O nome de arquivo abaixo pode ser mudado para - se adequar ao seu gosto, porém o tronco do nome de arquivo deveria ser - vmlinuz para ser compatível com a configuração automática do processo - de inicialização descrito na próxima seção. O seguinte comando assume - uma arquitetura x86: -cp -iv arch/x86/boot/bzImage /boot/vmlinuz-5.16.9-lfs-11.1-systemd - - System.map é um arquivo de símbolo para o kernel. Ele mapeia os pontos - de entrada de função de cada função na API do kernel, assim como os - endereços das estruturas de dados do kernel para o kernel em execução. - Ele é usado como um recurso quando se investigar problemas do kernel. - Emita o seguinte comando para instalar o arquivo de mapa: -cp -iv System.map /boot/System.map-5.16.9 - - O arquivo de configuração do kernel .config produzido pelo passo make - menuconfig acima contém todas as seleções de configuração para o kernel - que foi recém compilado. É uma boa ideia manter esse arquivo para - futura referência: -cp -iv .config /boot/config-5.16.9 - - Instale a documentação para o kernel do Linux: -install -d /usr/share/doc/linux-5.16.9 -cp -r Documentation/* /usr/share/doc/linux-5.16.9 - - É importante observar que os arquivos no diretório do fonte do kernel - não são de propriedade da(o) root. Sempre que um pacote é desempacotado - como a(o) usuária(o) root (como nós fizemos dentro do chroot), os - arquivos tem os IDs de usuária(o) e grupo do que quer que fossem no - computador da(o) empacotadora(r). Isso geralmente não é um problema - para qualquer outro pacote ser instalado, pois a árvore do fonte é - removida depois da instalação. Entretanto, a árvore do fonte do Linux - frequentemente é mantida por um longo tempo. Devido a isso, existe uma - chance de que qualquer ID de usuária(o) que a(o) empacotadora(r) usou - será atribuído para alguém na máquina. Essa pessoa então teria acesso - de escrita ao fonte do kernel. - -Nota - - Em muitos casos, a configuração do kernel precisará ser atualizada para - pacotes que serão instalados posteriormente em BLFS. Diferente de - outros pacotes, não é necessário remover a árvore do fonte do kernel - depois que o recém construído kernel for instalado. - - Se a árvore do fonte do kernel será mantida, [então] execute chown -R - 0:0 no diretório linux-5.16.9 para assegurar que todos os arquivos são - de propriedade da(o) usuária(o) root. - -Atenção - - Alguma documentação do kernel recomenda criar um link simbólico a - partir de /usr/src/linux apontando para o diretório do fonte do kernel. - Isso é específico para kernels anteriores à série 2.6 e precisa não ser - criado em um sistema LFS, uma vez que ele pode causar problemas para - pacotes que você talvez deseje construir tão logo seu sistema LFS base - esteja completo. - -Atenção - - Os cabeçalhos no diretório include do sistema (/usr/include) deveriam - sempre ser aqueles contra os quais a Glibc foi compilada, isto é, os - cabeçalhos sanitizados instalados na [625]Seção 5.4, “Cabeçalhos da API - do Linux-5.16.9â€. Portanto, eles nunca deveriam ser substituídos tanto - pelos cabeçalhos do kernel crus quanto por quaisquer outros cabeçalhos - sanitizados do kernel. - -10.3.2. Configurando a Ordem de Carregamento de Módulos do Linux - - Na maior parte do tempo, os módulos do Linux são carregados - automaticamente, porém algumas vezes precisa-se de alguma direção - específica. O aplicativo que carrega os módulos, modprobe ou insmod, - usa /etc/modprobe.d/usb.conf para esse propósito. Esse arquivo precisa - ser criado, de forma que, se os controladores do USB (ehci_hcd, - ohci_hcd e uhci_hcd) tiverem sido construídos como módulos, [então] - eles serão carregados na ordem correta; ehci_hcd precisa ser carregado - antes de ohci_hcd e uhci_hcd para evitar um aviso sendo produzido em - tempo de inicialização. - - Crie um novo arquivo /etc/modprobe.d/usb.conf executando o seguinte: -install -v -m755 -d /etc/modprobe.d -cat > /etc/modprobe.d/usb.conf << "EOF" -# Begin /etc/modprobe.d/usb.conf - -install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true -install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i uhci_hcd ; true - -# End /etc/modprobe.d/usb.conf -EOF - -10.3.3. Conteúdo do Linux - - Arquivos instalados: config-5.16.9, vmlinuz-5.16.9-lfs-11.1-systemd e - System.map-5.16.9 - Diretórios instalados: /lib/modules e /usr/share/doc/linux-5.16.9 - -Descrições Curtas - - config-5.16.9 - - Contém todas as seleções de configuração para o kernel - - vmlinuz-5.16.9-lfs-11.1-systemd - - O motor do sistema Linux. Quando se liga o computador, o kernel é a - primeira parte do sistema operacional que se torna carregada. Ele - detecta e inicializa todos os componentes do hardware do computador, - então torna esses componentes disponíveis como uma árvore de arquivos - para o software e transforma uma CPU individual em uma máquina - multitarefa capaz de executar dezenas de aplicativos aparentemente ao - mesmo tempo - - System.map-5.16.9 - - Uma lista de endereços e símbolos; ele mapeia os pontos de entrada e - endereços de todas as funções e estruturas de dados no kernel - -10.4. Usando o GRUB para Configurar o Processo de Inicialização - -Nota - - Se seu sistema tiver suporte UEFI e você desejar inicializar o LFS com - UEFI, [então] você deveria pular esta página, e configurar o GRUB com - suporte UEFI usando as instruções fornecidas na [626]página do BLFS. - -10.4.1. Introdução - -Atenção - - Configurar o GRUB incorretamente pode tornar seu sistema inoperável sem - um dispositivo de inicialização alternativo, como um CD-ROM ou unidade - USB inicializável. Esta seção não é exigida para inicializar seu - sistema LFS. Você talvez apenas queira modificar seu carregador de - inicialização atual, por exemplo, Grub-Legacy, GRUB2 ou LILO. - - Certifique-se de que um disco de inicialização de emergência esteja - pronto para “resgatar†o computador se o computador se tornar - inutilizável (não inicializável). Se você ainda não tem um dispositivo - de inicialização, [então] você pode criar um. Para que o procedimento - abaixo funcione, você precisa saltar para a frente para o BLFS e - instalar xorriso oriundo do pacote [627]libisoburn. -cd /tmp -grub-mkrescue --output=grub-img.iso -xorriso -as cdrecord -v dev=/dev/cdrw blank=as_needed grub-img.iso - -10.4.2. Convenções de Nomenclatura do GRUB - - O GRUB usa estrutura de nomenclatura própria dele para unidades e - partições na forma de (hdn,m), onde n é o número da unidade rígida e m - é o número da partição. O número da unidade rígida começa do zero, - porém o número da partição inicia do um para partições normais e cinco - para partições estendidas. Observe que isso é diferente de versões - anteriores onde ambos os números começavam do zero. Por exemplo, a - partição sda1 é (hd0,1) para o GRUB e sdb3 é (hd1,3). Em contraste com - o Linux, GRUB não considera unidades de CD-ROM como unidades rígidas. - Por exemplo, se usar um CD em hdb e uma segunda unidade rígida em hdc, - [então] aquela segunda unidade rígida ainda seria (hd1). - -10.4.3. Definindo a Configuração - - O GRUB funciona escrevendo dados para a primeira trilha física do disco - rígido. Essa área não é parte de nenhum sistema de arquivos. Os - aplicativos lá acessam módulos do GRUB na partição de inicialização. O - local padrão é /boot/grub/. - - O local da partição de inicialização é uma escolha da(o) usuária(o) que - afeta a configuração. Uma recomendação é ter uma partição pequena - (tamanho sugerido é 200 MB) separada somente para informação de - inicialização. Dessa forma, cada construção, seja LFS ou alguma - distribuição comercial, pode acessar os mesmos arquivos de - inicialização e o acesso pode ser feito a partir de qualquer sistema - inicializado. Se você escolher fazer isso, [então] você precisará - montar a partição separada, mover todos os arquivos no diretório /boot - atual (por exemplo, o kernel linux que você recém construiu na seção - anterior) para a nova partição. Você precisará então desmontar a - partição e remontar ela como /boot. Se você fizer isso, [então] tenha - certeza de atualizar /etc/fstab. - - Usar a partição lfs atual também funcionará, porém a configuração para - múltiplos sistemas é mais complicada. - - Usando a informação acima, determine o designador apropriado para a - partição raiz (ou partição de inicialização, se uma separada for - usada). Para o exemplo seguinte, é assumido que a partição raiz (ou - inicialização separada) é sda2. - - Instale os arquivos do GRUB em /boot/grub e configure a trilha de - inicialização: - -Atenção - - O seguinte comando sobrescreverá o carregador de inicialização atual. - Não execute o comando de isso não for desejado, por exemplo, se usar um - gerenciador de inicialização de terceiro para gerenciar o Master Boot - Record (MBR). -grub-install /dev/sda - -Nota - - Se o sistema tiver sido inicializado usando UEFI, [então] o - grub-install tentará instalar arquivos para o alvo x86_64-efi, porém - aqueles arquivos não foram instalados no [628]Capítulo 8. Se esse for o - caso, [então] adicione --target i386-pc ao comando acima. - -10.4.4. Criando o Arquivo de Configuração do GRUB - - Gere o /boot/grub/grub.cfg: -cat > /boot/grub/grub.cfg << "EOF" -# Begin /boot/grub/grub.cfg -set default=0 -set timeout=5 - -insmod ext2 -set root=(hd0,2) - -menuentry "GNU/Linux, Linux 5.16.9-lfs-11.1-systemd" { - linux /boot/vmlinuz-5.16.9-lfs-11.1-systemd root=/dev/sda2 ro -} -EOF - -Nota - - A partir da perspectiva do GRUB, os arquivos do kernel são relativos à - partição usada. Se você usou uma partição /boot separada, [então] - remova /boot da linha linux acima. Você também precisará mudar a linha - set root para apontar para a partição de inicialização. - - O GRUB é um aplicativo extremamente poderoso e ele fornece um tremendo - número de opções para inicializar a partir de uma ampla variedade de - dispositivos, sistemas operacionais e tipos de partição. Existem também - muitas opções para personalização, tais como telas splash gráficas; - reprodução de sons; entrada de mouse; etc. Os detalhes dessas opções - estão além do escopo desta introdução. - -Cuidado - - Existe um comando, grub-mkconfig, que pode escrever um arquivo de - configuração automaticamente. Ele usa um conjunto de scripts em - /etc/grub.d/ e destruirá quaisquer personalizações que você fizer. - Esses scripts são projetados primariamente para distribuições não fonte - e não são recomendados para o LFS. Se você instalar uma distribuição do - Linux comercial, [então] existe uma boa chance de que esse aplicativo - será executado. Tenha certeza de produzir uma cópia de segurança do seu - arquivo grub.cfg. - -Capítulo 11. O Fim - -11.1. O Fim - - Muito bem! O novo sistema LFS está instalado! Nós desejamos a você - muito sucesso com seu novo e brilhante sistema Linux construído sob - medida. - - Talvez seja uma boa ideia criar um arquivo /etc/lfs-release. Tendo esse - arquivo, é muito fácil para você (e para nós se você precisar pedir por - ajuda em algum ponto) descobrir qual versão do LFS está instalada no - sistema. Crie esse arquivo executando: -echo 11.1-systemd > /etc/lfs-release - - Dois arquivos descrevendo o sistema instalado talvez sejam usados por - pacotes que podem ser instalados no sistema posteriormente, ou em forma - de binário ou construindo eles. - - O primeiro deles mostra a situação do seu novo sistema com respeito ao - Linux Standards Base (LSB). Para criar esse arquivo, execute: -cat > /etc/lsb-release << "EOF" -DISTRIB_ID="Linux From Scratch" -DISTRIB_RELEASE="11.1-systemd" -DISTRIB_CODENAME="" -DISTRIB_DESCRIPTION="Linux From Scratch" -EOF - - O segundo deles contém aproximadamente a mesma informação, e é usado - pelo systemd e alguns ambientes de área de trabalho gráficos. Para - criar esse arquivo, execute: -cat > /etc/os-release << "EOF" -NAME="Linux From Scratch" -VERSION="11.1-systemd" -ID=lfs -PRETTY_NAME="Linux From Scratch 11.1-systemd" -VERSION_CODENAME="" -EOF - - Tenha certeza de colocar algum tipo de personalização para os campos - 'DISTRIB_CODENAME' e 'VERSION_CODENAME' para tornar o sistema - unicamente seu. - -11.2. Seja Contado - - Agora que você terminou o livro, você quer ser contada(o) como uma(m) - usuária(o) do LFS? Vá para - [629]https://www.linuxfromscratch.org/cgi-bin/lfscounter.php e - registre-se como uma(m) usuária(o) do LFS fornecendo seu nome e a - primeira versão do LFS que você usou. - - Vamos reinicializar no LFS agora. - -11.3. Reinicializando o Sistema - - Agora que todo o software foi instalado, é hora de reinicializar seu - computador. Entretanto, você deveria estar ciente de umas poucas - coisas. O sistema que você criou neste livro é bastante mínimo, e - provavelmente não terá a funcionalidade que você precisaria para ser - capaz de seguir em frente. Instalando uns poucos pacotes extras a - partir do livro BLFS enquanto ainda em seu ambiente chroot atual, você - pode deixar-se em uma posição muito melhor para continuar tão logo você - reinicialize em sua nova instalação do LFS. Aqui estão algumas - sugestões: - * Um navegador de modo de texto como o [630]Lynx permitirá que você - facilmente visualize o livro BLFS em um terminal virtual, enquanto - constrói pacotes em outro. - * O pacote [631]make-ca permitirá que você configure certificados de - âncora confiáveis locais, permitindo que o sistema verifique - certificados SSL fornecidos por servidores remotos (por exemplo, um - sítio da web usando o HTTPS). - * O pacote [632]GPM permitirá que você realize ações de copiar/colar - em seus terminais virtuais. - * Instalar [633]sudo talvez seja útil para construir pacotes como - uma(m) usuária(o) não root e facilmente instalar os pacotes - resultantes em seu novo sistema. - * Se você quiser acessar seu novo sistema a partir de um sistema - remoto dentro de um ambiente GUI confortável, [então] instale - [634]openssh. - * Para tornar a obtenção de arquivos por meio da Internet mais fácil, - instale [635]wget. - * Para se conectar a um ponto de acesso sem fios para rede, instale - [636]wpa_supplicant. - * Finalmente, uma revisão dos seguintes arquivos de configuração - também é apropriada neste ponto. - + /etc/bashrc - + /etc/dircolors - + /etc/fstab - + /etc/hosts - + /etc/inputrc - + /etc/profile - + /etc/resolv.conf - + /etc/vimrc - + /root/.bash_profile - + /root/.bashrc - - Agora que nós dissemos isso, vamos em frente para inicializar nossa - brilhante e nova instalação do LFS pela primeira vez! Primeiro saia do - ambiente chroot: -logout - - Então desmonte os sistemas de arquivos virtuais: -umount -v $LFS/dev/pts -umount -v $LFS/dev -umount -v $LFS/run -umount -v $LFS/proc -umount -v $LFS/sys - - Se múltiplas partições foram criadas, [então] desmonte as outras - partições antes de desmontar a principal, como isto: -umount -v $LFS/usr -umount -v $LFS/home -umount -v $LFS - - Desmonte o próprio sistema de arquivos do LFS: -umount -v $LFS - - Agora, reinicialize o sistema com: -shutdown -r now - - Assumindo que o carregador de inicialização GRUB foi configurado como - destacado anteriormente, o menu está configurado para inicializar o LFS - 11.1-systemd automaticamente. - - Quando a reinicialização estiver completa, o sistema LFS estará pronto - para uso e mais software talvez seja adicionado para suprir suas - necessidades. - -11.4. E agora? - - Obrigado por ler este livro LFS. Nós esperamos que você tenha achado - este livro útil e tenha aprendido mais sobre o processo de criação do - sistema. - - Agora que o sistema LFS está instalado, você talvez esteja se - perguntando: “E depois?†Para responder a essa pergunta, nós compilamos - uma lista de recursos para você. - * Manutenção - Notificações de defeitos e segurança são relatadas regularmente - para todo software. Uma vez que um sistema LFS é compilado a partir - do fonte, cabe a você se manter a par de tais relatórios. Existem - vários recursos online que rastreiam tais relatórios, alguns dos - quais estão mostrados abaixo: - + [637]CERT (Computer Emergency Response Team) - O CERT tem uma lista de discussão que publica alertas de - segurança a respeito de vários sistemas operacionais e - aplicativos. Informação de assinatura está disponível em - [638]http://www.us-cert.gov/cas/signup.html. - + Bugtraq - Bugtraq é uma lista de discussão de segurança de computador de - divulgação completa. Ela publica problemas de segurança - descobertos recentemente, e ocasionalmente consertos - potenciais para eles. Informação de assinatura está disponível - em [639]http://www.securityfocus.com/archive. - * Beyond Linux From Scratch - O livro Beyond Linux From Scratch cobre procedimentos de instalação - para uma ampla gama de software além do escopo do Livro LFS. O - projeto BLFS está localizado em - [640]https://www.linuxfromscratch.org/blfs/view/stable-systemd/. - * LFS Hints - As Dicas do LFS são uma coleção de documentos educacionais - submetidos por voluntários na comunidade do LFS. As dicas estão - disponíveis em - [641]https://www.linuxfromscratch.org/hints/downloads/files/. - * Listas de discussão - Existem várias listas de discussão do LFS que você talvez assine se - você estiver necessitada(o) de ajuda; quiser se manter - atualizada(o) com os mais recentes desenvolvimentos; quiser - contribuir para o projeto; e mais. Veja-se [642]Capítulo 1 - Listas - de Discussão para mais informação. - * The Linux Documentation Project - O objetivo do The Linux Documentation Project (TLDP) é o de - colaborar em todos os problemas de documentação do Linux. O TLDP - apresenta uma grande coleção de HOWTOs, guias e páginas de manual. - Ele está localizado em [643]http://www.tldp.org/. - -Parte V. Anexos - -Apêndice A. Siglas e Termos - - ABI - - Application Binary Interface - - ALFS - - Automated Linux From Scratch - - API - - Application Programming Interface - - ASCII - - American Standard Code for Information Interchange - - BIOS - - Basic Input/Output System - - BLFS - - Beyond Linux From Scratch - - BSD - - Berkeley Software Distribution - - chroot - - change root - - CMOS - - Complementary Metal Oxide Semiconductor - - COS - - Class Of Service - - CPU - - Central Processing Unit - - CRC - - Cyclic Redundancy Check - - CVS - - Concurrent Versions System - - DHCP - - Dynamic Host Configuration Protocol - - DNS - - Domain Name Service - - EGA - - Enhanced Graphics Adapter - - ELF - - Executable and Linkable Format - - EOF - - End of File - - EQN - - equation - - ext2 - - second extended file system - - ext3 - - third extended file system - - ext4 - - fourth extended file system - - FAQ - - Frequently Asked Questions - - FHS - - Filesystem Hierarchy Standard - - FIFO - - First-In, First Out - - FQDN - - Fully Qualified Domain Name - - FTP - - File Transfer Protocol - - GB - - Gigabytes - - GCC - - GNU Compiler Collection - - GID - - Group Identifier - - GMT - - Greenwich Mean Time - - HTML - - Hypertext Markup Language - - IDE - - Integrated Drive Electronics - - IEEE - - Institute of Electrical and Electronic Engineers - - IO - - Input/Output - - IP - - Internet Protocol - - IPC - - Inter-Process Communication - - IRC - - Internet Relay Chat - - ISO - - International Organization for Standardization - - ISP - - Internet Service Provider - - KB - - Kilobytes - - LED - - Light Emitting Diode - - LFS - - Linux From Scratch - - LSB - - Linux Standard Base - - MB - - Megabytes - - MBR - - Master Boot Record - - MD5 - - Message Digest 5 - - NIC - - Network Interface Card - - NLS - - Native Language Support - - NNTP - - Network News Transport Protocol - - NPTL - - Native POSIX Threading Library - - OSS - - Open Sound System - - PCH - - Pre-Compiled Headers - - PCRE - - Perl Compatible Regular Expression - - PID - - Process Identifier - - PTY - - pseudo terminal - - QOS - - Quality Of Service - - RAM - - Random Access Memory - - RPC - - Remote Procedure Call - - RTC - - Real Time Clock - - SBU - - Standard Build Unit - - SCO - - The Santa Cruz Operation - - SHA1 - - Secure-Hash Algorithm 1 - - TLDP - - The Linux Documentation Project - - TFTP - - Trivial File Transfer Protocol - - TLS - - Thread-Local Storage - - UID - - User Identifier - - umask - - user file-creation mask - - USB - - Universal Serial Bus - - UTC - - Coordinated Universal Time - - UUID - - Universally Unique Identifier - - VC - - Virtual Console - - VGA - - Video Graphics Array - - VT - - Virtual Terminal - -Apêndice B. Reconhecimentos - - Nós gostaríamos de agradecer às seguintes pessoas e organizações por - suas contribuições para o Projeto Linux From Scratch. - * [644]Gerard Beekmans – Criador - do LFS - * [645]Bruce Dubbs – - Editor-chefe do LFS - * [646]Jim Gifford – Colíder do - Projeto CLFS - * [647]Pierre Labastie – Editor - do BLFS e Líder do ALFS - * [648]DJ Lucas – Editor do LFS e - BLFS - * [649]Ken Moffat – Editor do BLFS - * Incontáveis outras pessoas nas várias listas de discussão do LFS e - BLFS que ajudaram a tornar este livro possível dando suas - sugestões; testando o livro; e submetendo relatórios de defeitos; - instruções; e suas experiências com a instalação de vários pacotes. - -Tradutoras(es) - - * [650]Manuel Canales Esparcia – - Projeto de tradução do LFS para espanhol - * [651]Johan Lenglet – Projeto de - tradução do LFS para francês até 2008 - * [652]Jean-Philippe Mengual – - Projeto de tradução do LFS para francês 2008-2016 - * [653]Julien Lepiller – - Projeto de tradução do LFS para francês 2017-presente - * [654]Anderson Lizardo – - Projeto de tradução do LFS para português - * [655]Thomas Reitelbach – Projeto de - tradução do LFS para alemão - * [656]Anton Maisak – - Projeto de tradução do LFS para russo - * [657]Elena Shevcova – - Projeto de tradução do LFS para russo - -Mantenedoras(es) de Espelhos - -Espelhos da América do Norte - - * [658]Scott Kveton – espelho - lfs.oregonstate.edu - * [659]William Astle – espelho - ca.linuxfromscratch.org - * [660]Eujon Sellers – espelho - lfs.introspeed.com - * [661]Justin Knierim – espelho lfs-matrix.net - -Espelhos da América do Sul - - * [662]Manuel Canales Esparcia – - espelho lfsmirror.lfs-es.info - * [663]Luis Falcon – espelho torredehanoi.org - -Espelhos Europeus - - * [664]Guido Passet – espelho - nl.linuxfromscratch.org - * [665]Bastiaan Jacques – espelho - lfs.pagefault.net - * [666]Sven Cranshoff – espelho - lfs.lineo.be - * Scarlet Belgium – espelho lfs.scarlet.be - * [667]Sebastian Faulborn – espelho - lfs.aliensoft.org - * [668]Stuart Fox – espelho lfs.dontuse.ms - * [669]Ralf Uhlemann – espelho - lfs.oss-mirror.org - * [670]Antonin Sprinzl - – espelho at.linuxfromscratch.org - * [671]Fredrik Danerklint – espelho - se.linuxfromscratch.org - * [672]Franck – espelho - lfs.linuxpourtous.com - * [673]Philippe Baque – espelho lfs.cict.fr - * [674]Vitaly Chekasin – espelho - lfs.pilgrims.ru - * [675]Benjamin Heil – espelho - lfs.wankoo.org - * [676]Anton Maisak – - espelho linuxfromscratch.org.ru - -Espelhos Asiáticos - - * [677]Satit Phermsawang – espelho - lfs.phayoune.org - * [678]Shizunet Co.,Ltd. – espelho - lfs.mirror.shizu-net.jp - * [679]Init World – espelho - lfs.initworld.com - -Espelhos da Austrália - - * [680]Jason Andrade – espelho - au.linuxfromscratch.org - -Ex-membros da Equipe do Projeto - - * [681]Christine Barczak – - Editor do Livro LFS - * Archaic – Escritor/Editor Técnico do - LFS (Dicas e Patches); Líder do Projeto HLFS; Editor do BLFS; - Mantenedor do Projeto Dicas e Patches - * [682]Matthew Burgess – Líder - de Projeto do LFS; Escritor/Editor Técnico do LFS - * [683]Nathan Coulson – - Mantenedor de Scripts de Inicialização do LFS - * Timothy Bauscher - * Robert Briggs - * Ian Chilton - * [684]Jeroen Coumans – - Desenvolvedor de Sítio da Web; Mantenedor de FAQ - * [685]Manuel Canales Esparcia – - Mantenedor de XML e XSL do LFS/BLFS/HLFS - * Alex Groenewoud – Escritor Técnico do LFS - * Marc Heerdink - * [686]Jeremy Huntwork – - Escritor Técnico do LFS; Mantenedor de LiveCD do LFS - * [687]Bryan Kadzban – Escritor - Técnico do LFS - * Mark Hymers - * Seth W. Klein – Mantenedor do FAQ - * [688]Nicholas Leippe – - Mantenedor da Wiki - * [689]Anderson Lizardo – - Mantenedor de Scripts de Infraestrutura de Sítio Web - * [690]Randy McMurchy – Líder de - Projeto do BLFS; Editor do LFS - * [691]Dan Nicholson – - Editor do LFS e BLFS - * [692]Alexander E. Patrakov - – Escritor Técnico do LFS; Editor de Internacionalização do LFS; - Mantenedor de Live CD do LFS - * Simon Perreault - * [693]Scot Mc Pherson – - Mantenedor do Gateway NNTP do LFS - * [694]Douglas R. Reno – Editor - do Systemd - * [695]Ryan Oliver – Colíder de - Projeto do CLFS - * [696]Greg Schafer – Escritor - Técnico do LFS e Arquiteto do Método de Construção de Habilitação - de 64 bits de Próxima Geração - * Jesse Tie-Ten-Quee – Escritor Técnico do LFS - * [697]James Robertson – - Mantenedor do Bugzilla - * [698]Tushar Teredesai – Editor - do Livro BLFS; Líder de Projeto de Dicas e Patches - * [699]Jeremy Utley – Escritor - Técnico do LFS; Mantenedor do Bugzilla; Mantenedor de Scripts de - Inicialização do LFS - * [700]Zack Winkles – Escritor Técnico do - LFS - -Apêndice C. Dependências - - Cada pacote construído no LFS depende de um ou mais outros pacotes para - construir e instalar adequadamente. Alguns pacotes até participam em - dependências circulares, isto é, o primeiro pacote depende do segundo o - qual, na sequência, depende do primeiro. Por causa dessas dependências, - a ordem na qual pacotes são construídos no LFS é muito importante. O - propósito desta página é o de documentar as dependências de cada pacote - construído no LFS. - - Para cada pacote que é construído, existem três, e as vezes até cinco - tipos de dependências listadas abaixo. A primeira lista que outros - pacotes necessitam estar disponíveis para compilar e instalar o pacote - em questão. A segunda lista os pacotes que precisam estar disponíveis - quando quaisquer aplicativos ou bibliotecas oriundos do pacote forem - usados em tempo de execução. A terceira lista que pacotes, em adição - àqueles na primeira lista, necessitam estar disponíveis para executar - as suítes de teste. A quarta lista de dependências são pacotes que - exigem que esse pacote esteja construído e instalado no local final - dele antes que eles sejam construídos e instalados. Na maioria dos - casos, isso é porque esses pacotes codificarão rigidamente caminhos - para binários dentro dos scripts deles. Se não for construído em uma - certa ordem, [então] isso poderia resultar em caminhos como - /tools/bin/[binário] sendo colocados dentro de scripts instalados para - o sistema final. Isso obviamente não é desejável. - - A última lista de dependências são pacotes opcionais que não são - endereçados no LFS, porém poderiam ser úteis para a(o) usuária(o). - Esses pacotes talvez tenham dependências obrigatórias ou opcionais - adicionais deles próprios. Para essas dependências, a prática - recomendada é a de instalá-las depois de completar o livro LFS e então - voltar e reconstruir o pacote LFS. Em muitos casos, a reinstalação é - endereçada no BLFS. - -Acl - - Instalação depende de: Attr, Bash, Binutils, Coreutils, GCC, Gettext, - Grep, M4, Make, Perl, Sed e Texinfo - Exigido em tempo de execução: Attr e Glibc - Suíte de teste depende de: Automake, Diffutils, Findutils e Libtool - Precisa ser instalado antes de: Coreutils, Sed, Tar e Vim - Dependências opcionais: Nenhuma - -Attr - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, M4, Make, Perl, Sed e Texinfo - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Automake, Diffutils, Findutils e Libtool - Precisa ser instalado antes de: Acl e Libcap - Dependências opcionais: Nenhuma - -Autoconf - - Instalação depende de: Bash, Coreutils, Grep, M4, Make, Perl, Sed e - Texinfo - Exigido em tempo de execução: Bash, Coreutils, Grep, M4, Make, Sed e - Texinfo - Suíte de teste depende de: Automake, Diffutils, Findutils, GCC e - Libtool - Precisa ser instalado antes de: Automake - Dependências opcionais: [701]Emacs - -Automake - - Instalação depende de: Autoconf, Bash, Coreutils, Gettext, Grep, M4, - Make, Perl, Sed e Texinfo - Exigido em tempo de execução: Bash, Coreutils, Grep, M4, Sed e Texinfo - Suíte de teste depende de: Binutils, Bison, Bzip2, DejaGNU, Diffutils, - Expect, Findutils, Flex, GCC, Gettext, Gzip, Libtool e Tar - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Bash - - Instalação depende de: Bash, Binutils, Bison, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, Make, Ncurses, Patch, Readline, Sed e Texinfo - Exigido em tempo de execução: Glibc, Ncurses e Readline - Suíte de teste depende de: Expect e Shadow - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [702]Xorg - -Bc - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Grep e - Make - Exigido em tempo de execução: Glibc, Ncurses e Readline - Suíte de teste depende de: Gawk - Precisa ser instalado antes de: Linux - Dependências opcionais: Nenhuma - -Binutils - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, File, - Flex, Gawk, GCC, Glibc, Grep, Make, Perl, Sed, Texinfo e Zlib - Exigido em tempo de execução: Glibc e Zlib - Suíte de teste depende de: DejaGNU e Expect - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [703]Elfutils - -Bison - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, M4, Make, Perl e Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Diffutils, Findutils e Flex - Precisa ser instalado antes de: Kbd e Tar - Dependências opcionais: [704]Doxygen - -Bzip2 - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, - Glibc, Make e Patch - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: File - Dependências opcionais: Nenhuma - -Check - - Instalação depende de: Gawk, GCC, Grep, Make, Sed e Texinfo - Exigido em tempo de execução: Bash e Gawk - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Coreutils - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - GMP, Grep, Libcap, Make, OpenSSL, Patch, Perl, Sed e Texinfo - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Diffutils, E2fsprogs, Findutils, Shadow e - Util-linux - Precisa ser instalado antes de: Bash, Diffutils, Eudev, Findutils e - Man-DB - Dependências opcionais: [705]Expect.pm e [706]IO::Tty - -DejaGNU - - Instalação depende de: Bash, Coreutils, Diffutils, Expect, GCC, Grep, - Make, Sed e Texinfo - Exigido em tempo de execução: Expect e Bash - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Diffutils - - Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, Gettext, - Glibc, Grep, Make, Sed e Texinfo - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Perl - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -E2fsprogs - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, - Glibc, Grep, Gzip, Make, Sed, Texinfo e Util-linux - Exigido em tempo de execução: Glibc e Util-linux - Suíte de teste depende de: Procps-ng e Psmisc - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Eudev - - Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, Glibc, - Grep, Gperf, Make, Sed e Util-linux - Exigido em tempo de execução: Glibc, Kmod, Xz, Util-linux e Zlib - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Expat - - Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, Glibc, - Grep, Make e Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Python e XML::Parser - Dependências opcionais: Nenhuma - -Expect - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, - Glibc, Grep, Make, Patch, Sed e Tcl - Exigido em tempo de execução: Glibc e Tcl - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [707]Tk - -File - - Instalação depende de: Bash, Binutils, Bzip2, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, Make, Sed, Xz e Zlib - Exigido em tempo de execução: Glibc, Bzip2, Xz e Zlib - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [708]libseccomp - -Findutils - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, Make, Sed e Texinfo - Exigido em tempo de execução: Bash e Glibc - Suíte de teste depende de: DejaGNU, Diffutils e Expect - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Flex - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, M4, Make, Patch, Sed e Texinfo - Exigido em tempo de execução: Bash, Glibc e M4 - Suíte de teste depende de: Bison e Gawk - Precisa ser instalado antes de: Binutils, IProute2, Kbd, Kmod e Man-DB - Dependências opcionais: Nenhuma - -Gawk - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - GMP, Grep, Make, MPFR, Patch, Readline, Sed e Texinfo - Exigido em tempo de execução: Bash, Glibc e Mpfr - Suíte de teste depende de: Diffutils - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [709]libsigsegv - -GCC - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Findutils, - Gawk, GCC, Gettext, Glibc, GMP, Grep, M4, Make, MPC, MPFR, Patch, Perl, - Sed, Tar, Texinfo e Zstd - Exigido em tempo de execução: Bash, Binutils, Glibc, Mpc e Python - Suíte de teste depende de: DejaGNU, Expect e Shadow - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [710]GNAT e [711]ISL - -GDBM - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, Grep, - Make e Sed - Exigido em tempo de execução: Bash, Glibc e Readline - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Gettext - - Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, Glibc, - Grep, Make, Ncurses, Sed e Texinfo - Exigido em tempo de execução: Acl, Bash, Gcc e Glibc - Suíte de teste depende de: Diffutils, Perl e Tcl - Precisa ser instalado antes de: Automake e Bison - Dependências opcionais: Nenhuma - -Glibc - - Instalação depende de: Bash, Binutils, Bison, Coreutils, Diffutils, - Gawk, GCC, Gettext, Grep, Gzip, Cabeçalhos da API do Linux, Make, Perl, - Python, Sed e Texinfo - Exigido em tempo de execução: Nenhuma - Suíte de teste depende de: File - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -GMP - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, - Glibc, Grep, M4, Make, Sed e Texinfo - Exigido em tempo de execução: GCC e Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: MPFR e GCC - Dependências opcionais: Nenhuma - -Gperf - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc e Make - Exigido em tempo de execução: GCC e Glibc - Suíte de teste depende de: Diffutils e Expect - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Grep - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, - Gettext, Glibc, Grep, Make, Patch, Sed e Texinfo - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Gawk - Precisa ser instalado antes de: Man-DB - Dependências opcionais: [712]PCRE e [713]libsigsegv - -Groff - - Instalação depende de: Bash, Binutils, Bison, Coreutils, Gawk, GCC, - Glibc, Grep, Make, Patch, Sed e Texinfo - Exigido em tempo de execução: GCC, Glibc e Perl - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Man-DB e Perl - Dependências opcionais: [714]ghostscript e [715]Uchardet - -GRUB - - Instalação depende de: Bash, Binutils, Bison, Coreutils, Diffutils, - GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed, Texinfo e Xz - Exigido em tempo de execução: Bash, GCC, Gettext, Glibc, Xz e Sed - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Gzip - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Grep, - Make, Sed e Texinfo - Exigido em tempo de execução: Bash e Glibc - Suíte de teste depende de: Diffutils e Less - Precisa ser instalado antes de: Man-DB - Dependências opcionais: Nenhuma - -Iana-Etc - - Instalação depende de: Coreutils - Exigido em tempo de execução: Nenhuma - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Perl - Dependências opcionais: Nenhuma - -Inetutils - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Grep, - Make, Ncurses, Patch, Sed, Texinfo e Zlib - Exigido em tempo de execução: GCC, Glibc, Ncurses e Readline - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Tar - Dependências opcionais: Nenhuma - -Intltool - - Instalação depende de: Bash, Gawk, Glibc, Make, Perl, Sed e XML::Parser - Exigido em tempo de execução: Autoconf, Automake, Bash, Glibc, Grep, - Perl e Sed - Suíte de teste depende de: Perl - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -IProute2 - - Instalação depende de: Bash, Bison, Coreutils, Flex, GCC, Glibc, Make, - Libcap, Libelf, Cabeçalhos da API do Linux e Zlib - Exigido em tempo de execução: Bash, Coreutils, Glibc, Libcap, Libelf e - Zlib - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [716]Berkeley DB e [717]iptables - -Jinja2 - - Instalação depende de: MarkupSafe e Python - Exigido em tempo de execução: MarkupSafe e Python - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Systemd - Dependências opcionais: Nenhuma - -Kbd - - Instalação depende de: Bash, Binutils, Bison, Check, Coreutils, Flex, - GCC, Gettext, Glibc, Gzip, Make, Patch e Sed - Exigido em tempo de execução: Bash, Coreutils e Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Kmod - - Instalação depende de: Bash, Binutils, Bison, Coreutils, Flex, GCC, - Gettext, Glibc, Gzip, Make, OpenSSL, Pkg-config, Sed, Xz e Zlib - Exigido em tempo de execução: Glibc, Xz e Zlib - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Eudev - Dependências opcionais: Nenhuma - -Less - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, - Glibc, Grep, Make, Ncurses e Sed - Exigido em tempo de execução: Glibc e Ncurses - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Gzip - Dependências opcionais: [718]PCRE - -Libcap - - Instalação depende de: Attr, Bash, Binutils, Coreutils, GCC, Glibc, - Perl, Make e Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: IProute2 e Shadow - Dependências opcionais: [719]Linux-PAM - -Libelf - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc e Make - Exigido em tempo de execução: Glibc e Zlib - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: IProute2 e Linux - Dependências opcionais: Nenhuma - -Libffi - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Make e - Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: DejaGnu - Precisa ser instalado antes de: Python - Dependências opcionais: Nenhuma - -Libpipeline - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, - Glibc, Grep, Make, Sed e Texinfo - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Check - Precisa ser instalado antes de: Man-DB - Dependências opcionais: Nenhuma - -Libtool - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, - Glibc, Grep, Make, Sed e Texinfo - Exigido em tempo de execução: Autoconf, Automake, Bash, Binutils, - Coreutils, File, GCC, Glibc, Grep, Make e Sed - Suíte de teste depende de: Autoconf, Automake e Findutils - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Linux - - Instalação depende de: Bash, Bc, Binutils, Coreutils, Diffutils, - Findutils, GCC, Glibc, Grep, Gzip, Kmod, Libelf, Make, Ncurses, - OpenSSL, Perl e Sed - Exigido em tempo de execução: Nenhuma - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [720]cpio - -Cabeçalhos da API do Linux - - Instalação depende de: Bash, Binutils, Coreutils, Findutils, GCC, - Glibc, Grep, Gzip, Make, Perl e Sed - Exigido em tempo de execução: Nenhuma - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -M4 - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Grep, - Make, Sed e Texinfo - Exigido em tempo de execução: Bash e Glibc - Suíte de teste depende de: Diffutils - Precisa ser instalado antes de: Autoconf e Bison - Dependências opcionais: [721]libsigsegv - -Make - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, Make, Sed e Texinfo - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Perl e Procps-ng - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [722]Guile - -Man-DB - - Instalação depende de: Bash, Binutils, Bzip2, Coreutils, Flex, GCC, - GDBM, Gettext, Glibc, Grep, Groff, Gzip, Less, Libpipeline, Make, Sed e - Xz - Exigido em tempo de execução: Bash, GDBM, Groff, Glibc, Gzip, Less, - Libpipeline e Zlib - Suíte de teste depende de: Util-linux - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [723]libseccomp - -Man-Pages - - Instalação depende de: Bash, Coreutils e Make - Exigido em tempo de execução: Nenhuma - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -MarkupSafe - - Instalação depende de: Python - Exigido em tempo de execução: Python - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Jinja2 - Dependências opcionais: Nenhuma - -Meson - - Instalação depende de: Ninja e Python - Exigido em tempo de execução: Python - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Systemd - Dependências opcionais: Nenhuma - -MPC - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, - Glibc, Grep, GMP, Make, MPFR, Sed e Texinfo - Exigido em tempo de execução: Glibc, GMP e MPFR - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: GCC - Dependências opcionais: Nenhuma - -MPFR - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, - Glibc, Grep, GMP, Make, Sed e Texinfo - Exigido em tempo de execução: Glibc e GMP - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Gawk e GCC - Dependências opcionais: Nenhuma - -Ncurses - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, - Glibc, Grep, Make, Patch e Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Bash, GRUB, Inetutils, Less, Procps-ng, - Psmisc, Readline, Texinfo, Util-linux e Vim - Dependências opcionais: Nenhuma - -Ninja - - Instalação depende de: Binutils, Coreutils, GCC e Python - Exigido em tempo de execução: GCC e Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Meson - Dependências opcionais: [724]Asciidoc, [725]Doxygen, [726]Emacs e - [727]re2c - -OpenSSL - - Instalação depende de: Binutils, Coreutils, GCC, Make e Perl - Exigido em tempo de execução: Glibc e Perl - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Coreutils, Kmod e Linux - Dependências opcionais: Nenhuma - -Patch - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Grep, - Make e Sed - Exigido em tempo de execução: Glibc e Patch - Suíte de teste depende de: Diffutils - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [728]Ed - -Perl - - Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, GDBM, - Glibc, Grep, Groff, Make, Sed e Zlib - Exigido em tempo de execução: GDBM e Glibc - Suíte de teste depende de: Iana-Etc, Less e Procps-ng - Precisa ser instalado antes de: Autoconf - Dependências opcionais: [729]Berkeley DB - -Pkg-config - - Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, Glibc, - Grep, Make, Popt e Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Kmod - Dependências opcionais: [730]Glib2 - -Procps-ng - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Make e - Ncurses - Exigido em tempo de execução: Glibc - Suíte de teste depende de: DejaGNU - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Psmisc - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, Make, Ncurses e Sed - Exigido em tempo de execução: Glibc e Ncurses - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Python - - Instalação depende de: Bash, Binutils, Coreutils, Expat, GCC, Gdbm, - Gettext, Glibc, Grep, Libffi, Make, Ncurses, OpenSSL, Sed e Util-linux - Exigido em tempo de execução: Bzip2, Expat, Gdbm, Glibc, Libffi, - Ncurses, OpenSSL e Zlib - Suíte de teste depende de: GDB e Valgrind - Precisa ser instalado antes de: Ninja - Dependências opcionais: [731]Berkeley DB, [732]libnsl, [733]SQLite e - [734]Tk - -Readline - - Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, Glibc, - Grep, Make, Ncurses, Patch, Sed e Texinfo - Exigido em tempo de execução: Glibc e Ncurses - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Bash e Gawk - Dependências opcionais: Nenhuma - -Sed - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, Make, Sed e Texinfo - Exigido em tempo de execução: Acl, Attr e Glibc - Suíte de teste depende de: Diffutils e Gawk - Precisa ser instalado antes de: E2fsprogs, File, Libtool e Shadow - Dependências opcionais: Nenhuma - -Shadow - - Instalação depende de: Acl, Attr, Bash, Binutils, Coreutils, Diffutils, - Findutils, Gawk, GCC, Gettext, Glibc, Grep, Libcap, Make e Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Coreutils - Dependências opcionais: [735]CrackLib e [736]Linux-PAM - -Sysklogd - - Instalação depende de: Binutils, Coreutils, GCC, Glibc, Make e Patch - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Systemd - - Instalação depende de: Acl, Attr, Bash, Binutils, Coreutils, Diffutils, - Expat, Gawk, GCC, Glibc, Gperf, Grep, Jinja2, Libcap, Meson, Sed, - Util-linux e Zstd - Exigido em tempo de execução: Acl, Attr, Glibc, Libcap e Util-linux - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [737]btrfs-progs, [738]cURL, [739]cryptsetup, - [740]docbook-xml, [741]docbook-xsl-nons, [742]elfutils, [743]Git, - [744]gnu-efi, [745]GnuTLS, [746]iptables, [747]kexec-tools, - [748]libfido2, [749]libgcrypt, [750]libidn2, [751]Libmicrohttpd, - [752]libpwquality, [753]libseccomp, [754]libxkbcommon, [755]libxslt, - [756]Linux-PAM, [757]lxml, [758]LZ4, [759]make-ca, [760]p11-kit, - [761]PCRE2, [762]Polkit, [763]qemu, [764]qrencode, [765]quota-tools, - [766]rsync, [767]Sphinx, [768]tpm2-tss, [769]Valgrind e [770]zsh - -Sysvinit - - Instalação depende de: Binutils, Coreutils, GCC, Glibc, Make e Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Tar - - Instalação depende de: Acl, Attr, Bash, Binutils, Bison, Coreutils, - GCC, Gettext, Glibc, Grep, Inetutils, Make, Sed e Texinfo - Exigido em tempo de execução: Acl, Attr, Bzip2, Glibc, Gzip e Xz - Suíte de teste depende de: Autoconf, Diffutils, Findutils, Gawk e Gzip - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Tcl - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, - Glibc, Grep, Make e Sed - Exigido em tempo de execução: Glibc e Zlib - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Texinfo - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, Make, Ncurses, Patch e Sed - Exigido em tempo de execução: Glibc e Ncurses - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Util-linux - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Eudev, - Findutils, Gawk, GCC, Gettext, Glibc, Grep, Libcap, Make, Ncurses, Sed - e Zlib - Exigido em tempo de execução: Glibc, Libcap, Ncurses, Readline e Zlib - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [771]Linux-PAM e [772]smartmontools - -Vim - - Instalação depende de: Acl, Attr, Bash, Binutils, Coreutils, Diffutils, - GCC, Glibc, Grep, Make, Ncurses e Sed - Exigido em tempo de execução: Acl, Attr, Glibc, Python, Ncurses e Tcl - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [773]Xorg, [774]GTK+2, [775]LessTif, [776]Ruby - e [777]GPM - -XML::Parser - - Instalação depende de: Bash, Binutils, Coreutils, Expat, GCC, Glibc, - Make e Perl - Exigido em tempo de execução: Expat, Glibc e Perl - Suíte de teste depende de: Perl - Precisa ser instalado antes de: Intltool - Dependências opcionais: Nenhuma - -Xz - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc - e Make - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Eudev, File, GRUB, Kmod e Man-DB - Dependências opcionais: Nenhuma - -Zlib - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Make e - Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: File, Kmod, Perl e Util-linux - Dependências opcionais: Nenhuma - -Zstd - - Instalação depende de: Binutils, Coreutils, GCC, Glibc, Gzip, Make e Xz - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: GCC e Systemd - Dependências opcionais: [778]LZ4 - -Apêndice D. Licenças do LFS - - Este livro [escrito originalmente em inglês] está licenciado sob a - licença da Creative Commons Attribution-NonCommercial-ShareAlike 2.0. - - A "versão modificada" do livro (traduzida para o idioma português - escrito e falado no Brasil) ("Obra derivada") está licenciada sob a - Licença de Documentação Livre GNU, versão 1.3 ou qualquer versão - posterior publicada pela Free Software Foundation. - - As instruções de computador tem permissão para serem extraídas a partir - do livro sob a Licença do MIT. - -D.1. Licença da Creative Commons - - Creative Commons Legal Code - - Atribuição - Uso não-Comercial - Compartilhamento pela mesma licença - 2.0 - -Importante - - A INSTITUIÇÃO CREATIVE COMMONS NÃO É UM ESCRITÓRIO DE ADVOCACIA E NÃO - PRESTA SERVIÇOS JURÃDICOS. A DISTRIBUIÇÃO DESTA LICENÇA NÃO ESTABELECE - QUALQUER RELAÇÃO ADVOCATÃCIA. O CREATIVE COMMONS DISPONIBILIZA ESTA - INFORMAÇÃO "NO ESTADO EM QUE SE ENCONTRA". O CREATIVE COMMONS NÃO FAZ - QUALQUER GARANTIA QUANTO ÀS INFORMAÇÕES DISPONIBILIZADAS E SE EXONERA - DE QUALQUER RESPONSABILIDADE POR DANOS RESULTANTES DO SEU USO. - - Licença - - A OBRA (CONFORME DEFINIDA ABAIXO) É DISPONIBILIZADA DE ACORDO COM OS - TERMOS DESTA LICENÇA PÚBLICA CREATIVE COMMONS ("CCPL" OU "LICENÇA"). A - OBRA É PROTEGIDA POR DIREITO AUTORAL E/OU OUTRAS LEIS APLICÃVEIS. - QUALQUER USO DA OBRA QUE NÃO O AUTORIZADO SOB ESTA LICENÇA OU PELA - LEGISLAÇÃO AUTORAL É PROIBIDO. - - AO EXERCER QUAISQUER DOS DIREITOS À OBRA AQUI CONCEDIDOS, VOCÊ ACEITA E - CONCORDA FICAR OBRIGADO NOS TERMOS DESTA LICENÇA. O LICENCIANTE CONCEDE - A VOCÊ OS DIREITOS AQUI CONTIDOS EM CONTRAPARTIDA À SUA ACEITAÇÃO - DESTES TERMOS E CONDIÇÕES. - 1. Definições - 1. "Obra Coletiva" significa uma obra, tal como uma edição - periódica, antologia ou enciclopédia, na qual a Obra em sua - totalidade e de forma inalterada, em conjunto com um número de - outras contribuições, constituindo obras independentes e - separadas em si mesmas, são agregadas em um trabalho coletivo. - Uma obra que constitua uma Obra Coletiva não será considerada - Obra Derivada (conforme definido abaixo) para os propósitos - desta licença. - 2. "Obra Derivada" significa uma obra baseada sobre a Obra ou - sobre a Obra e outras obras pré-existentes, tal como uma - tradução, arranjo musical, dramatização, romantização, versão - de filme, gravação de som, reprodução de obra artística, - resumo, condensação ou qualquer outra forma na qual a Obra - possa ser refeita, transformada ou adaptada, com a exceção de - que uma obra que constitua uma Obra Coletiva não será - considerada Obra Derivada para fins desta licença. Para evitar - dúvidas, quando a Obra for uma composição musical ou gravação - de som, a sincronização da Obra em relação cronometrada com - uma imagem em movimento (“synchingâ€) será considerada uma Obra - Derivada para os propósitos desta licença. - 3. "Licenciante" significa a pessoa física ou a jurídica que - oferece a Obra sob os termos desta licença. - 4. "Autor Original" significa a pessoa física ou jurídica que - criou a Obra. - 5. "Obra" significa a obra autoral, passível de proteção pelo - direito autoral, oferecida sob os termos desta licença. - 6. "Você" significa a pessoa física ou jurídica exercendo - direitos sob esta Licença que não tenha previamente violado os - termos desta Licença com relação à Obra, ou que tenha recebido - permissão expressa do Licenciante para exercer direitos sob - esta Licença apesar de uma violação prévia. - 7. "Elementos da Licença" significa os principais atributos da - licença correspondente, conforme escolhidos pelo licenciante e - indicados no título desta licença: Atribuição, - Compartilhamento pela Mesma Licença. - 2. Direitos de Uso Legítimo. Nada nesta licença deve ser interpretado - de modo a reduzir, limitar ou restringir quaisquer direitos - relativos ao uso legítimo, ou outras limitações sobre os direitos - exclusivos do titular de direitos autorais sob a legislação autoral - ou quaisquer outras leis aplicáveis. - 3. Concessão da Licença. O Licenciante concede a Você uma licença de - abrangência mundial, sem royalties, não-exclusiva, perpétua (pela - duração do direito autoral aplicável), sujeita aos termos e - condições desta Licença, para exercer os direitos sobre a Obra - definidos abaixo: - 1. reproduzir a Obra, incorporar a Obra em uma ou mais Obras - Coletivas e reproduzir a Obra quando incorporada em Obra - Coletiva; - 2. criar e reproduzir Obras Derivadas; - 3. distribuir cópias ou gravações da Obra, exibir publicamente, - executar publicamente e executar publicamente por meio de uma - transmissão de áudio digital a Obra, inclusive quando - incorporada em Obras Coletivas; - 4. distribuir cópias ou gravações de Obras Derivadas, exibir - publicamente, executar publicamente e executar publicamente - por meio de uma transmissão digital de áudio Obras Derivadas. - Os direitos acima podem ser exercidos em todas as mídias e - formatos, independente de serem conhecidos agora ou concebidos - posteriormente. Os direitos acima incluem o direito de fazer - modificações que forem tecnicamente necessárias para exercer os - direitos em outras mídias, meios e formatos. Todos os direitos não - concedidos expressamente pelo Licenciante ficam aqui reservados, - incluindo, mas não se limitando, os direitos definidos nas Seções - 4(e) e 4(f). - 4. Restrições. A licença concedida na Seção 3 acima está expressamente - sujeita e limitada aos seguintes termos: - 1. Você pode distribuir, exibir publicamente, executar - publicamente ou executar publicamente por meios digitais a - Obra apenas sob os termos desta Licença, e Você deve incluir - uma cópia desta licença, ou o Identificador Uniformizado de - Recursos (Uniform Resource Identifier) para esta Licença, com - cada cópia ou gravação da Obra que Você distribuir, exibir - publicamente, executar publicamente, ou executar publicamente - por meios digitais. Você não poderá oferecer ou impor - quaisquer termos sobre a Obra que alterem ou restrinjam os - termos desta Licença ou o exercício dos direitos aqui - concedidos aos destinatários. Você não poderá sub-licenciar a - Obra. Você deverá manter intactas todas as informações que se - referem a esta Licença e à exclusão de garantias. Você não - pode distribuir, exibir publicamente, executar publicamente ou - executar publicamente por meios digitais a Obra com qualquer - medida tecnológica que controle o acesso ou o uso da Obra de - maneira inconsistente com os termos deste Acordo de Licença. O - disposto acima se aplica à Obra enquanto incorporada em uma - Obra Coletiva, mas isto não requer que a Obra Coletiva, à - parte da Obra em si, esteja sujeita aos termos desta Licença. - Se Você criar uma Obra Coletiva, em havendo notificação de - qualquer Licenciante, Você deve, na medida do razoável, - remover da Obra Coletiva qualquer referência a este - Licenciante ou Autor Original, conforme solicitado. Se você - criar uma Obra Derivada, em havendo notificação de qualquer - Licenciante, Você deve, na medida do razoável, remover da Obra - Derivada qualquer referência a este Licenciante ou ao Autor - Original, conforme solicitado. - 2. Você pode distribuir, exibir publicamente, executar - publicamente ou executar publicamente por meios digitais uma - Obra Derivada somente sob os termos desta Licença, ou de uma - versão posterior desta licença com os mesmos Elementos da - Licença desta licença, ou de uma licença do internacional do - Creative Commons (iCommons) que contenha os mesmos Elementos - da Licença desta Licença (por exemplo, Atribuição, Uso Não - Comercial, Compartilhamento pela Mesma Licença Japão). Você - deve incluir uma cópia desta licença ou de outra licença - especificada na sentença anterior, ou o Identificador - Uniformizado de Recursos (Uniform Resource Identifier) para - esta licença ou de outra licença especificada na sentença - anterior, com cada cópia ou gravação de cada Obra Derivada que - Você distribuir, exibir publicamente, executar publicamente ou - executar publicamente por meios digitais. Você não poderá - oferecer ou impor quaisquer termos sobre a Obra Derivada que - alterem ou restrinjam os termos desta Licença ou o exercício - dos direitos aqui concedidos aos destinatários, e Você deverá - manter intactas todas as informações que se refiram a esta - Licença e à exclusão de garantias. Você não poderá distribuir, - exibir publicamente, executar publicamente ou executar - publicamente por meios digitais a Obra Derivada com qualquer - medida tecnológica que controle o acesso ou o uso da Obra de - maneira inconsistente com os termos deste Acordo de Licença. O - disposto acima se aplica à Obra Derivada quando incorporada em - uma Obra Coletiva, mas isto não requer que a Obra Coletiva, à - parte da Obra em si, esteja sujeita aos termos desta Licença. - 3. Você não poderá exercer nenhum dos direitos acima concedidos a - Você na Seção 3 de qualquer maneira que seja predominantemente - intencionada ou direcionada à obtenção de vantagem comercial - ou compensação monetária privada. A troca da Obra por outros - materiais protegidos por direito autoral através de - compartilhamento digital de arquivos ou de outras formas não - deverá ser considerada como intencionada ou direcionada à - obtenção de vantagens comerciais ou compensação monetária - privada, desde que não haja pagamento de nenhuma compensação - monetária com relação à troca de obras protegidas por direito - de autor. - 4. Se Você distribuir, exibir publicamente, executar publicamente - ou executar publicamente por meios digitais a Obra ou qualquer - Obra Derivada ou Obra Coletiva, Você deve manter intactas - todas as informações relativas a direitos autorais sobre a - Obra e atribuir ao Autor Original crédito razoável com relação - ao meio ou mídia que Você está utilizando, através da - veiculação do nome (ou pseudônimo, se for o caso) do Autor - Original, se fornecido; o título da Obra, se fornecido; na - medida do razoável, o Identificador Uniformizado de Recursos - (URI) que o Licenciante especificar para estar associado à - Obra, se houver, exceto se o URI não se referir ao aviso de - direitos autorais ou à informação sobre o regime de - licenciamento da Obra; e no caso de Obra Derivada, crédito - identificando o uso da Obra na Obra Derivada (exemplo: - "Tradução Francesa da Obra de Autor Original", ou "Roteiro - baseado na Obra original de Autor Original"). Tal crédito pode - ser implementado de qualquer forma razoável; entretanto, no - caso de Obra Derivada ou Obra Coletiva, este crédito aparecerá - no mínimo onde qualquer outro crédito comparável de autoria - aparece e de modo ao menos tão proeminente quanto este outro - crédito de autoria comparável. - 5. De modo a tornar claras estas disposições, quando uma Obra for - uma composição musical: - 1. Royalties e execução pública. O Licenciante reserva o seu - direito exclusivo de coletar, seja individualmente ou - através de entidades coletoras de direitos de execução - (por exemplo, ECAD, ASCAP, BMI, SESAC), o valor dos seus - direitos autorais pela execução pública da obra ou - execução pública digital (por exemplo, webcasting) da - Obra se esta execução for predominantemente intencionada - ou direcionada à obtenção de vantagem comercial ou - compensação monetária privada. - 2. Royalties e Direitos fonomecânicos. O Licenciante reserva - o seu direito exclusivo de coletar, seja individualmente - ou através de uma entidade designada como seu agente (por - exemplo, a agência Harry Fox), royalties relativos a - quaisquer gravações que Você criar da Obra (por exemplo, - uma versão “coverâ€) e distribuir, conforme as disposições - aplicáveis de direito autoral, se a distribuição feita - por Você de versão “cover†for predominantemente - intencionada ou direcionada à obtenção de vantagem - comercial ou compensação monetária privada. - 6. Direitos de Execução Digital pela Internet (Webcasting) e - royalties. De modo a evitar dúvidas, quando a Obra for uma - gravação de som, o Licenciante reserva o seu direito exclusivo - de coletar, seja individualmente ou através de entidades - coletoras de direitos de execução (por exemplo, SoundExchange - ou ECAD), royalties e direitos autorais pela execução digital - pública (por exemplo, Webcasting) da Obra, conforme as - disposições aplicáveis de direito autoral, se a execução - digital pública feita por Você for predominantemente - intencionada ou direcionada à obtenção de vantagem comercial - ou compensação monetária privada. - 5. Declarações, Garantias e Exoneração - EXCETO QUANDO FOR DE OUTRA FORMA MUTUAMENTE ACORDADO PELAS PARTES - POR ESCRITO, O LICENCIANTE OFERECE A OBRA “NO ESTADO EM QUE SE - ENCONTRA†(AS IS) E NÃO PRESTA QUAISQUER GARANTIAS OU DECLARAÇÕES - DE QUALQUER ESPÉCIE RELATIVAS À OBRA, SEJAM ELAS EXPRESSAS OU - IMPLÃCITAS, DECORRENTES DA LEI OU QUAISQUER OUTRAS, INCLUINDO, SEM - LIMITAÇÃO, QUAISQUER GARANTIAS SOBRE A TITULARIDADE DA OBRA, - ADEQUAÇÃO PARA QUAISQUER PROPÓSITOS, NÃO-VIOLAÇÃO DE DIREITOS, OU - INEXISTÊNCIA DE QUAISQUER DEFEITOS LATENTES, ACURACIDADE, PRESENÇA - OU AUSÊNCIA DE ERROS, SEJAM ELES APARENTES OU OCULTOS. EM - JURISDIÇÕES QUE NÃO ACEITEM A EXCLUSÃO DE GARANTIAS IMPLÃCITAS, - ESTAS EXCLUSÕES PODEM NÃO SE APLICAR A VOCÊ. - 6. Limitação de Responsabilidade. EXCETO NA EXTENSÃO EXIGIDA PELA LEI - APLICÃVEL, EM NENHUMA CIRCUNSTÂNCIA O LICENCIANTE SERà RESPONSÃVEL - PARA COM VOCÊ POR QUAISQUER DANOS, ESPECIAIS, INCIDENTAIS, - CONSEQUENCIAIS, PUNITIVOS OU EXEMPLARES, ORIUNDOS DESTA LICENÇA OU - DO USO DA OBRA, MESMO QUE O LICENCIANTE TENHA SIDO AVISADO SOBRE A - POSSIBILIDADE DE TAIS DANOS. - 7. Terminação - 1. Esta Licença e os direitos aqui concedidos terminarão - automaticamente no caso de qualquer violação dos termos desta - Licença por Você. Pessoas físicas ou jurídicas que tenham - recebido Obras Derivadas ou Obras Coletivas de Você sob esta - Licença, entretanto, não terão suas licenças terminadas desde - que tais pessoas físicas ou jurídicas permaneçam em total - cumprimento com essas licenças. As Seções 1, 2, 5, 6, 7 e 8 - subsistirão a qualquer terminação desta Licença. - 2. Sujeito aos termos e condições dispostos acima, a licença aqui - concedida é perpétua (pela duração do direito autoral - aplicável à Obra). Não obstante o disposto acima, o - Licenciante reserva-se o direito de difundir a Obra sob termos - diferentes de licença ou de cessar a distribuição da Obra a - qualquer momento; desde que, no entanto, quaisquer destas - ações não sirvam como meio de retratação desta Licença (ou de - qualquer outra licença que tenha sido concedida sob os termos - desta Licença, ou que deva ser concedida sob os termos desta - Licença) e esta Licença continuará válida e eficaz a não ser - que seja terminada de acordo com o disposto acima. - 8. Outras Disposições - 1. Cada vez que Você distribuir ou executar publicamente por - meios digitais a Obra ou uma Obra Coletiva, o Licenciante - oferece ao destinatário uma licença da Obra nos mesmos termos - e condições que a licença concedida a Você sob esta Licença. - 2. Cada vez que Você distribuir ou executar publicamente por - meios digitais uma Obra Derivada, o Licenciante oferece ao - destinatário uma licença à Obra original nos mesmos termos e - condições que foram concedidos a Você sob esta Licença. - 3. Se qualquer disposição desta Licença for tida como inválida ou - não-executável sob a lei aplicável, isto não afetará a - validade ou a possibilidade de execução do restante dos termos - desta Licença e, sem a necessidade de qualquer ação adicional - das partes deste acordo, tal disposição será reformada na - mínima extensão necessária para tal disposição tornar-se - válida e executável. - 4. Nenhum termo ou disposição desta Licença será considerado - renunciado e nenhuma violação será considerada consentida, a - não ser que tal renúncia ou consentimento seja feito por - escrito e assinado pela parte que será afetada por tal - renúncia ou consentimento. - 5. Esta Licença representa o acordo integral entre as partes com - respeito à Obra aqui licenciada. Não há entendimentos, acordos - ou declarações relativas à Obra que não estejam especificadas - aqui. O Licenciante não será obrigado por nenhuma disposição - adicional que possa aparecer em quaisquer comunicações - provenientes de Você. Esta Licença não pode ser modificada sem - o mútuo acordo, por escrito, entre o Licenciante e Você. - -Importante - - O Creative Commons não é uma parte desta Licença e não presta qualquer - garantia relacionada à Obra. O Creative Commons não será responsável - perante Você ou qualquer outra parte por quaisquer danos, incluindo, - sem limitação, danos gerais, especiais, incidentais ou consequentes, - originados com relação a esta licença. Não obstante as duas frases - anteriores, se o Creative Commons tiver expressamente se identificado - como o Licenciante, ele deverá ter todos os direitos e obrigações do - Licenciante. - - Exceto para o propósito delimitado de indicar ao público que a Obra é - licenciada sob a CCPL (Licença Pública Creative Commons), nenhuma parte - deverá utilizar a marca "Creative Commons" ou qualquer outra marca ou - logo relacionado ao Creative Commons sem consentimento prévio e por - escrito do Creative Commons. Qualquer uso permitido deverá ser de - acordo com as diretrizes do Creative Commons de utilização da marca - então válidas, conforme sejam publicadas em seu website ou de outro - modo disponibilizadas periodicamente mediante solicitação. - - O Creative Commons pode ser contactado pelo endereço: - [779]http://creativecommons.org/. - -D.2. A Licença do MIT - - Direitos autorais © 1999-2022 Gerard Beekmans - - Permissão é aqui concedida, gratuitamente, para qualquer pessoa que - obtenha uma cópia deste software e arquivos de documentação associados - (o "Software"), para lidar com o Software sem restrição, incluindo, sem - limitação, os direitos para usar, copiar, modificar, mesclar, publicar, - distribuir, sublicenciar, e (ou) vender cópias do Software, e para - permitir para as pessoas para quem o Software é fornecido para fazer o - mesmo, sujeito às seguintes condições: - - O aviso de direitos autorais acima e este aviso de permissão deveria - ser incluído em todas as cópias ou porções substanciais do Software. - - O SOFTWARE É FORNECIDO “NO ESTADO EM QUE SE ENCONTRAâ€, SEM GARANTIAS DE - QUALQUER ESPÉCIE, EXPLÃCITAS OU IMPLÃCITAS, INCLUINDO, PORÉM NÃO - LIMITADA A, AS GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO PARA UM - PROPÓSITO PARTICULAR E NÃO-VIOLAÇÃO. EM NENHUMA CIRCUNSTÂNCIA OS - AUTORES OU TITULARES DE DIREITOS AUTORAIS SERÃO RESPONSÃVEIS POR - QUAISQUER ALEGAÇÕES, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM UMA AÇÃO - DE CONTRATO, ATO ILÃCITO OU DE OUTRA FORMA, DECORRENTE DE, OU EM - CONEXÃO COM, O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO SOFTWARE. - -D.3. A Licença de Documentação Livre GNU - - Direitos autorais © 1999-2022 Jamenson Espindula - - Versão 1.3, 03 de novembro de 2008 - - Direitos autorais © 2000, 2001, 2002, 2007, 2008 Free Software - Foundation, Inc. http://fsf.org/ - - A qualquer pessoa é permitido copiar e distribuir cópias literais deste - documento de licença, porém modificá-lo não é permitido. - 1. PREÂMBULO - O propósito desta licença é tornar um manual, livro de texto, ou - outro documento funcional e útil livre no sentido da liberdade: - para assegurar a qualquer pessoa a liberdade efetiva para copiar e - redistribuí-lo, com ou sem modificações, ambos comercialmente ou - não comercialmente. Secundariamente, esta Licença preserva para o - autor e editor uma maneira de obter crédito pelos seus trabalhos, - ao mesmo tempo não sendo considerado responsável por modificações - feitas por outros. Esta Licença é uma espécie de “copyleft†- (“esquerdos autoraisâ€), o que significa que trabalhos derivados do - documento devem necessariamente eles mesmos serem livres no mesmo - sentido. Ela complementa a Licença Pública Geral GNU, a qual é uma - licença de esquerdos autorais projetada para software livre. Nós - projetamos esta Licença para utilizá-la para manuais para software - livre, porque software livre precisa de documentação livre: um - programa livre deveria vir com manuais provendo as mesmas - liberdades que o software provê. Porém esta Licença não é limitada - a manuais de software; ela pode ser utilizada para qualquer - trabalho textual, independentemente de questões de assunto ou se o - trabalho textual for publicado como um livro impresso. Nós - recomendamos esta Licença principalmente para trabalhos cujo - propósito seja instrução ou referência. - 2. APLICABILIDADE E DEFINIÇÕES - Esta Licença se aplica a qualquer manual ou outro trabalho, em - qualquer meio, que contenha um aviso colocado pelo detentor dos - direitos autorais dizendo que ele pode ser distribuído sob os - termos desta Licença. Tal aviso concede uma licença mundial, livre - de patente, ilimitada na duração, para utilizar aquele trabalho sob - as condições nela declaradas. O “Documentoâ€, abaixo, se refere a - quaisquer desses manuais ou trabalhos. Qualquer membro do publico é - um titular da licença, e é mencionado como “vocêâ€. Você aceita a - licença se você copiar, modificar ou distribuir o trabalho em uma - forma que exija permissão sob lei de direitos autorais. Uma “Versão - Modificada†do Documento significa qualquer trabalho contendo o - Documento ou uma porção dele, seja literalmente copiado, ou com - modificações e/ou traduzido em outra língua. Uma “Seção Secundária†- é um apêndice nomeado ou uma seção pré-textual do Documento que - lida exclusivamente com o relacionamento dos editores ou autores do - Documento para com o assunto global do Documento (ou com questões - relacionadas) e não contém nada que possa se conformar diretamente - com aquele assunto global. (Assim, se o Documento for em parte um - livro texto de matemática, uma Seção Secundária não pode explanar - nada acerca de cálculos matemáticos). O relacionamento poderia ser - uma questão de conexão histórica com o assunto ou com questões - relacionadas, ou de posicionamento legal, comercial, filosófico, - ético ou político respeitante a eles. As “Seções Invariantes†são - certas Seções Secundárias cujos títulos são projetados, como sendo - aqueles de Seções Invariantes, no aviso que diz que o Documento é - publicado sob esta Licença. Se uma seção não se encaixa na - definição de Secundária acima, então a seção não está autorizada a - ser designada como Invariante. O Documento pode conter zero Seções - Invariantes. Se o Documento não identifica quaisquer Seções - Invariantes, então não existe nenhuma. Os “Textos de Capa†são - certas passagens curtas de texto que são listadas, como Textos de - Primeira Capa ou Textos de Quarta-Capa, no aviso que diz que o - Documento é publicado sob esta Licença. Um Texto de Primeira Capa - pode ter no máximo cinco (05) palavras, e um Texto de Quarta Capa - pode ter no máximo vinte e cinco (25) palavras. Uma cópia - “Transparente†do Documento significa uma cópia legível por - máquina, representada em um formato cuja especificação está - disponível para o público em geral, que é adequada para revisar o - documento diretamente com editores de texto genéricos ou (para - imagens compostas de pixeis) programas de pintura genéricos ou - (para desenhos) algum editor de desenho disponível amplamente, e - que seja adequado para entrada a formatadores de texto ou para - tradução automática a uma variedade de formatos próprios para - entrada a formatadores de texto. Uma cópia feita em um formato de - arquivo contrário ao Transparente, cuja linguagem de marcação, ou - ausência de linguagem de marcação, tenha sido organizada para - frustrar ou desencorajar modificações subsequentes por leitores, - não é Transparente. Um formato de imagem não é Transparente se - utilizado para qualquer quantidade substancial de texto. Uma cópia - que não é “Transparente†é chamada “Opacaâ€. Exemplos de formatos - adequados para cópias Transparentes incluem ASCII puro sem - marcações; formato de entrada Texinfo; formato de entrada LaTeX; - SGML ou XML utilizando um DTD disponível publicamente; HTML simples - conformante com o padrão; PostScript ou PDF projetado para - modificação humana. Exemplos de formatos transparantes de imagens - incluem PNG, XCF e JPG. Formatos opacos incluem formatos - proprietários que podem ser lidos e editados somente por - processadores proprietários de palavra; SGML ou XML para os quais o - DTD e/ou as ferramentas de processamentos não estejam disponíveis - genericamente; e o HTML gerado por máquina; PostScript ou PDF - produzidos por alguns processadores de palavra apenas para - propósitos de saída. A “Página de Título†significa, para um livro - impresso, a própria página de título, mais tantas páginas seguintes - quantas sejam necessárias para manter, legivelmente, o material que - esta Licença exige para aparecer na página de título. Para - trabalhos em formatos que não tenham qualquer página de título como - tal, “Página de Título†significa o texto próximo da mais - proeminente aparição do título do trabalho, precedendo o início do - corpo do texto. O “editor†significa qualquer pessoa ou entidade - que distribui cópias do Documento ao público. Uma seção “Intitulada - XYZ†significa uma subunidade nomeada do Documento cujo título ou é - precisamente XYZ ou contém XYZ entre parênteses seguinte ao texto - que traduz XYZ em outra linguagem. (Aqui XYZ significa um nome - específico de seção mencionado abaixo, tais como “Agradecimentosâ€; - “Dedicatóriasâ€; “Patrocíniosâ€; ou “Históricoâ€). “Preservar o - Título†de tal seção quando você modificar o Documento significa - que ele permanece uma seção “Intitulada XYZ†de acordo com essa - definição. O Documento pode incluir Declarações de Garantia - próximas ao aviso que declara que esta Licença se aplica ao - Documento. Essas Declarações de Garantia são consideradas como - inclusas por referência nesta Licença, porém somente com relação à - negação de garantias: qualquer outra implicação que essas - Declarações de Garantia possam ter é inválida e não tem efeito - sobre o significado desta Licença. - 3. CÓPIA LITERAL - Você pode copiar e distribuir o Documento em qualquer meio, ambos - comercialmente e não comercialmente, contanto que esta Licença, os - avisos de direitos autorais, e o aviso de licença dizendo que esta - Licença se aplica ao Documento estejam reproduzidas em todas as - cópias, e que você não adiciona quaisquer outras condições, - quaisquer que sejam, àquelas desta Licença. Você não pode utilizar - medidas técnicas para obstruir ou controlar a leitura ou - posteriores cópias das cópias que você fizer ou distribuir. - Entretanto, você pode aceitar remuneração em troca das cópias. Se - você distribui um número de cópias grande o suficiente, você deve - necessariamente também seguir as condições na seção três (3). Você - também pode ceder cópias, sob as mesmas condições declaradas acima, - e você pode publicamente exibir cópias. - 4. CÓPIAS EM QUANTIDADE - Se você publicar cópias impressas (ou cópias em mídia que - geralmente tem capas impressas) do Documento, em número maior que - cem (100), e o aviso de licença do Documento exigir Textos de Capa, - você deve necessariamente encartar as cópias em capas que - transportem, claramente e legivelmente, todos estes Textos de Capa: - Textos de Primeira Capa na primeira capa, e Textos de Quarta Capa - na capa traseira. Ambas as capas devem necessariamente também - claramente e legivelmente identificar você como o editor dessas - cópias. A capa frontal deve necessariamente apresentar o título - completo com todas as palavras do título igualmente proeminentes e - visíveis. Você pode adicionar outros materiais nas capas - adicionalmente. As cópias com modificações limitadas às capas, - tanto quanto preservem o título do Documento e satisfaçam essas - condições, podem ser tratadas como cópias literais em relação a - outros aspectos. Se os textos exigidos para ambas as capas forem - muito volumosos para caber legivelmente, você deveria colocar os - primeiros listados (tantos quantos caibam razoavelmente) na capa - atual, e continuar o restante em páginas adjacentes. Se você - publicar ou distribuir cópias Opacas do Documento em número maior - que cem (100), você deve necessariamente ou incluir uma cópia - Transparente, legível por máquina, junto com cada cópia Opaca, ou - declarar, na ou com cada cópia Opaca, uma localização de rede de - computador, a partir da qual o público usuário de rede geral tenha - acesso para baixar, utilizando protocolos de rede de padrão - público, uma cópia Transparente completa do Documento, livre do - material adicionado. Se você se utilizar da última opção, você deve - necessariamente adotar razoavelmente passos prudentes, quando você - iniciar a distribuição de cópias Opacas em quantidade, para se - assegurar que essa cópia Transparente permanecerá então acessível - na localização declarada até pelo menos um ano após a última vez - que você distribuiu uma cópia Opaca (diretamente ou por intermédio - dos seus agentes ou varejistas) daquela edição ao público. É - pedido, mas não exigido, que você contate os autores do Documento - bem antes de redistribuir qualquer número grande de cópias, para - dá-los a oportunidade de lhe fornecer uma versão atualizada do - Documento. - 5. MODIFICAÇÕES - Você pode copiar e distribuir uma Versão Modificada do Documento - sob as condições das seções dois (2) e três (3) acima, contanto que - você publique a Versão Modificada precisamente sob esta Licença, - com a Versão Modificada preenchendo a função do Documento, portanto - licenciando a distribuição e modificação da Versão Modificada a - quem quer que possua uma cópia dela. Adicionalmente, você deve - necessariamente fazer estas coisas na Versão Modificada: - 1. Utilize na Página de Título (e nas capas, se existentes) um - título distinto daquele do Documento, e daqueles das versões - prévias (as quais deveriam, se existiu alguma, serem listadas - na seção Histórico do Documento). Você pode utilizar o mesmo - título que uma versão prévia, se o editor original daquela - versão conceder permissão. - 2. Liste na Página de Título, como autores, uma ou mais pessoas - ou entidades responsáveis pela autoria das modificações na - Versão Modificada, junto com ao menos cinco dos autores - principais do Documento (todos os autores principais, se tiver - menos que cinco), a menos que eles liberem você dessa - exigência. - 3. Declare na Página de Título o nome do editor da Versão - Modificada, como o editor. - 4. Preserve todos os avisos de direitos autorais do Documento. - 5. Adicione um aviso apropriado de direitos autorais para suas - modificações, adjacente aos outros avisos de direitos - autorais. - 6. Inclua, imediatamente após os avisos de direitos autorais, um - aviso de licença concedendo ao público permissão para utilizar - a Versão Modificada sob os termos desta Licença, na forma - mostrada no Adendo abaixo. - 7. Preserve, naquele aviso de licença, as listas completas de - Seções Invariantes e Textos de Capa exigidos dados no aviso de - licença do Documento. - 8. Inclua uma cópia inalterada desta Licença. - 9. Preserve a seção intitulada “Históricoâ€, Preserve seu Título, - e adicione a ele um item declarando ao menos o título, ano, - novos autores, e editor da Versão Modificada, conforme dado na - Página de Título. Se não existir uma seção intitulada - “Histórico†no Documento, crie uma declarando o título, ano, - autores, e editor do Documento, conforme dado em sua Página de - Título, então adicione um item descrevendo a Versão - Modificada, conforme declarado na frase prévia. - 10. Preserve a localização de rede, se existente, dada no - Documento para acesso público a uma cópia Transparente do - Documento, e da mesma forma as localizações de rede dadas no - Documento para versões prévias nas quais foi baseado. Essas - podem ser colocadas na seção “Históricoâ€. Você pode omitir uma - localização de rede para um trabalho que foi publicado nos - últimos quatro anos anteriores à publicação do próprio do - Documento, ou se o editor original da versão à qual a - localização de rede se refere conceder permissão. - 11. Para cada seção Intitulada “Agradecimentos†ou “Dedicatóriasâ€, - Preserve o Título da seção, e preserve na seção toda a - substância e tonalidade de cada um dos agradecimentos a - contribuidores e/ou dedicatórias dadas nela. - 12. Preserve todas as Seções Invariantes do Documento, inalteradas - em seus textos e em seus títulos. Os números de Seção ou o - equivalente não são considerados parte dos títulos de seção. - 13. Delete quaisquer seções Intituladas “Patrocíniosâ€. Tal seção - não pode ser incluída na Versão Modificada. - 14. Não reintitule qualquer seção existente para Intitulada - “Patrocínios†ou para conflitar no título com qualquer Seção - Invariante. - 15. Preserve quaisquer Declarações de Garantia. - Se a Versão Modificada incluir novas seções pré textuais ou - apêndices que se qualifiquem como Seções Secundárias e não - contenham material copiado a partir do Documento, você pode, a sua - escolha, designar algumas ou todas essas seções como Invariantes. - Para fazer isso, adicione seus títulos à lista das Seções - Invariantes no aviso de licença da Versão Modificada. Esses títulos - devem necessariamente serem distintos de quaisquer outros títulos - de seções. Você pode adicionar uma seção Intitulada “Patrocíniosâ€, - contanto que ela não contenha nada além de patrocínios da sua - Versão Modificada por vários patrocinadores—por exemplo, - declarações de avaliadores ou aquelas de que o texto foi aprovado - por uma organização como a definição autorizativa de um padrão. - Você pode adicionar uma passagem de até cinco palavras, como um - Texto de Primeira Capa, e uma passagem de até vinte e cinco - palavras, como um Texto de Quarta Capa, ao final da lista dos - Textos de Capa na Versão Modificada. Somente uma passagem de Texto - de Primeira Capa e uma de Texto de Quarta Capa podem ser - adicionadas por (ou mediante acordos feitos por) qualquer uma - entidade. Se o Documento já inclui um texto de capa para a mesma - capa, previamente adicionado por você ou por acordo feito pela - mesma entidade pela qual você está atuando, você não pode adicionar - outro; porém você pode substituir o antigo, na permissão explícita - do editor prévio que adicionou o antigo. O(s) autor(s) e editor(s) - do Documento, por esta Licença, não concedem permissão para - utilizar seus nomes para publicidade para ou para afirmar ou - implicar patrocínio de qualquer Versão Modificada. - 6. COMBINANDO DOCUMENTOS - Você pode combinar o Documento com outros documentos publicados sob - esta Licença, sob os termos definidos na seção quatro (4) acima - para versões modificadas, contanto que você inclua na combinação - todas as Seções Invariantes de todos os documentos originais, não - modificados, e listá-los todos como Seções Invariantes do seu - trabalho combinado no seu aviso de licença, e você preserva todas - as Declarações de Garantias deles. O trabalho combinado precisa - conter somente uma cópia desta Licença, e múltiplas Seções - Invariantes idênticas podem ser substituídas por uma cópia única. - Se existirem múltiplas Seções Invariantes com o mesmo nome, mas - conteúdos diferentes, torne o título de cada uma de tal seção único - adicionando ao final dele, entre parênteses, o nome do autor ou - editor original daquela seção se conhecido, ou, do contrário, um - número único. Faça o mesmo ajuste aos títulos da seção na lista de - Seções Invariantes no aviso de licença do trabalho combinado. Na - combinação, você deve necessariamente combinar quaisquer seções - Intituladas “Histórico†nos vários documentos originais, formando - uma seção Intitulada “Históricoâ€; de mesma maneira, combine - quaisquer seções Intituladas “Agradecimentosâ€, e quaisquer seções - Intituladas “Dedicatóriasâ€. Você deve necessariamente deletar todas - as seções Intituladas “Patrocíniosâ€. - 7. COLEÇÕES DE DOCUMENTOS - Você pode produzir uma coleção consistente do Documento e outros - documentos publicados sob esta Licença, e substitua as cópias - individuais desta Licença nos vários documentos por uma cópia única - que esteja incluída na coleção, contanto que você siga as regras - desta Licença para cópias literais de cada um dos documentos em - todos os outros aspectos. Você pode extrair um documento único de - tal coleção, e distribuí-lo individualmente sob esta Licença, - contanto que você insira uma cópia desta Licença no documento - extraído, e siga esta Licença em todos os outros aspectos relativos - à cópias literais daquele documento. - 8. AGREGAÇÃO COM TRABALHOS INDEPENDENTES - Uma compilação do Documento ou seus derivados com outros documentos - separados e independentes ou trabalhos, dentro ou junto a volume de - armazenamento ou meio de distribuição, é chamado em “agregado†se - os direitos autorais resultantes da compilação não forem utilizados - para limitar os direitos legais dos usuários da compilação além do - que os trabalhos individuais permitem. Quando o Documento for - incluído em um agregado, esta Licença não se aplica aos outros - trabalhos no agregado, os quais não são eles próprios trabalhos - derivados do Documento. Se a exigência do Texto de Capa da seção - três (3) for aplicável a essas cópias do Documento, então se o - Documento for menor que a metade do agregado inteiro, os Textos de - Capa do Documento podem ser colocados em capas que encartem o - Documento dentro do agregado, ou o equivalente eletrônico de capas - se o Documento estiver em formato eletrônico. Do contrário, eles - devem necessariamente aparecer nas capas impressas que encartem o - agregado inteiro. - 9. TRADUÇÃO - Tradução é considerada um tipo de modificação, de forma que você - pode distribuir traduções do Documento sob os termos da seção - quatro (4). A substituição de Seções Invariantes por traduções - exige permissão especial de seus detentores dos direitos autorais, - porém você pode incluir traduções de algumas ou todas as Seções - Invariantes adicionalmente às versões originais dessas Seções - Invariantes. Você pode incluir uma tradução desta Licença, e todos - os avisos de licença no Documento, e quaisquer Declarações de - Garantia, contanto que você inclua também a versão original em - Inglês desta Licença e as versões originais daqueles avisos e - declarações. No caso de uma divergência entre a tradução e a versão - original desta Licença ou um aviso ou declaração, a versão original - prevalecerá. Se uma seção no Documento for Intitulada - “Agradecimentosâ€, “Dedicatóriasâ€, ou “Históricoâ€, a exigência - (seção 4) de Preservar seu Título (seção 1) tipicamente exigirá a - modificação do título atual. - 10. FINALIZAÇÃO - Você não pode copiar, modificar, sublicenciar, ou distribuir o - Documento, exceto conforme expressamente provido sob esta Licença. - Qualquer tentativa clandestina de copiar, modificar, sublicenciar, - ou distribuir o Documento é inválida, e automaticamente finalizará - seus direitos sob esta Licença. Entretanto, se você cessar todas as - violações a esta Licença, então a sua licença oriunda de um - detentor de direitos autorais em particular está restabelecida (a) - provisoriamente, a menos e até que o detentor dos direitos autorais - explicita e finalmente cancele sua licença; e (b) permanentemente, - se o detentor dos direitos autorais falhar em notificar você da - violação, por algum meio razoável, antes de sessenta (60) dias após - a cessação. Além disso, a sua licença oriunda de um detentor de - direitos autorais em particular está restabelecida permanentemente - se o detentor dos direitos autorais notificar você sobre a violação - por algum meio razoável, essa for a primeira vez que você recebeu - um aviso de violação desta Licença (para qualquer trabalho) oriunda - daquele detentor de direitos autorais, e você sanar a violação - antes de decorridos trinta (30) dias após o seu recebimento do - aviso. A finalização dos seus direitos sob esta seção não finaliza - as licenças de varejistas que tenham recebido cópias ou direitos de - você sob esta Licença. Se os seus direitos tiverem sido finalizados - e não permanentemente restabelecidos, o recebimento de uma cópia de - algum ou de tudo do mesmo material não concede a você direitos de - utilizá-lo. - 11. REVISÕES FUTURAS DESTA LICENÇA - A Free Software Foundation pode publicar novas, revisadas versões - da Licença de Documentação Livre GNU de tempos em tempos. Tais - novas versões serão similares na essência à presente versão, porém - podem diferir em detalhes para abarcar novos problemas ou assuntos. - Veja-se http://www.gnu.org/copyleft/. Para cada versão da Licença é - dado um número distintivo de versão. Se o Documento especifica que - uma versão numerada em particular desta Licença “ou qualquer versão - posterior†se aplica a ele, você tem a opção de seguir os termos e - condições ou da versão especificada ou de qualquer versão posterior - que tenha sido publicada (não como um rascunho) pela Free Software - Foundation. Se o Documento não especifica um número de versão desta - Licença, você pode escolher qualquer versão já publicada (não como - um rascunho) pela Free Software Foundation. Se o Documento - especifica que um procurador pode decidir quais versões futuras - desta Licença podem ser utilizadas, essa declaração pública do - procurador de aceitação de uma versão permanentemente autoriza você - a escolher aquela versão para o Documento. - 12. RELICENCIAMENTO - “Sítio de Colaboração Massiva Multi autor†(ou “Sítio MMCâ€) - significa qualquer servidor da Rede Mundial de Computadores que - publica trabalhos sujeitos a direitos autorais e também provê - facilidades proeminentes para qualquer pessoa editar esses - trabalhos. Um wiki público que qualquer pessoa pode editar é um - exemplo de tal servidor. Uma “Colaboração Massiva Multi autor†(ou - “MMCâ€) contida no sítio significa qualquer conjunto de trabalhos - sujeitos a direitos autorais assim publicados no sítio MMC. - “CC-BY-SA†significa a licença Creative Commons Attribution-Share - Alike 3.0 publicada pela Creative Commons Corporation, uma - corporação sem fins lucrativos com seu domicílio empresarial - situado em São Francisco, Califórnia, Estados Unidos da América do - Norte, bem como versões futuras de esquerdos autorais dessa licença - publicadas pela mesma organização. “Incorporar†significa publicar - ou republicar um Documento, no todo ou em parte, como parte de - outro Documento. Um MMC é “elegível para relicenciamento†se ele - for licenciado sob esta Licença, e se todos os trabalhos que foram - primeiro publicados sob esta Licença em algum lugar que não esse - MMC, e subsequentemente incorporados, no todo ou em parte, no MMC, - (1) não tinham textos de capa ou seções invariantes; e (2) estavam - assim incorporados antes de 01 de novembro de 2008. O operador de - um Sítio MMC pode republicar um MMC contido no sítio sob CC-BY-SA, - no mesmo sítio, a qualquer tempo antes de 01 de agosto de 2009, - contanto que o MMC seja elegível para relicenciamento. - - ADENDO: Como utilizar esta Licença para seus documentos - - Para utilizar esta Licença em um documento que você escreveu, inclua - uma cópia da Licença no documento e coloque os seguintes avisos de - direitos autorais e licença pouco depois da página de título: - - Direitos autorais (C) ano seu nome. - Permissão é concedida para copiar, distribuir e/ou modificar este - documento sob os termos da Licença de Documentação Livre GNU, Versão - 1.3 ou qualquer versão posterior publicada pela Free Software - Foundation; sem Seções Invariantes, sem Textos de Primeira Capa, e sem - Textos de Quarta Capa. Uma cópia da licença está inclusa na seção - intitulada ``Licença de Documentação Livre GNU''. - - - Se você tiver Seções Invariantes, Textos de Primeira Capa e Textos de - Quarta Capa, substitua a linha ``sem ... Capa'' por isto: - - com as Seções Invariantes sendo liste seus títulos, com os - Textos de Primeira Capa sendo lista, e com os Textos de Quarta - Capa sendo lista. - - - Se você tiver Seções Invariantes sem Textos de Capa, ou alguma outra - combinação dos três, mescle essas duas alternativas para adequar a - situação. - - Se o seu documento contém exemplos não triviais de código de - programação, nós recomendamos publicar esses exemplos em paralelo, sob - sua escolha de licença de software livre, tal como a Licença Pública - Geral GNU, para permitir seu uso em software livre. - -Ãndice Remissivo - - * Acl: [780]Acl-2.3.1 - * Attr: [781]Attr-2.5.1 - * Autoconf: [782]Autoconf-2.71 - * Automake: [783]Automake-1.16.5 - * Bash: [784]Bash-5.1.16 - + tools: [785]Bash-5.1.16 - * Bc: [786]Bc-5.2.2 - * Binutils: [787]Binutils-2.38 - + tools, pass 1: [788]Binutils-2.38 - Passagem 1 - + tools, pass 2: [789]Binutils-2.38 - Passagem 2 - * Bison: [790]Bison-3.8.2 - + tools: [791]Bison-3.8.2 - * Bzip2: [792]Bzip2-1.0.8 - * Check: [793]Check-0.15.2 - * Coreutils: [794]Coreutils-9.0 - + tools: [795]Coreutils-9.0 - * D-Bus: [796]D-Bus-1.12.20 - * DejaGNU: [797]DejaGNU-1.6.3 - * Diffutils: [798]Diffutils-3.8 - + tools: [799]Diffutils-3.8 - * E2fsprogs: [800]E2fsprogs-1.46.5 - * Expat: [801]Expat-2.4.6 - * Expect: [802]Expect-5.45.4 - * File: [803]File-5.41 - + tools: [804]File-5.41 - * Findutils: [805]Findutils-4.9.0 - + tools: [806]Findutils-4.9.0 - * Flex: [807]Flex-2.6.4 - * Gawk: [808]Gawk-5.1.1 - + tools: [809]Gawk-5.1.1 - * GCC: [810]GCC-11.2.0 - + tools, libstdc++ pass 1: [811]Libstdc++ oriundo de GCC-11.2.0, - Passagem 1 - + tools, libstdc++ pass 2: [812]Libstdc++ oriundo de GCC-11.2.0, - Passagem 2 - + tools, pass 1: [813]GCC-11.2.0 - Passagem 1 - + tools, pass 2: [814]GCC-11.2.0 - Passagem 2 - * GDBM: [815]GDBM-1.23 - * Gettext: [816]Gettext-0.21 - + tools: [817]Gettext-0.21 - * Glibc: [818]Glibc-2.35 - + tools: [819]Glibc-2.35 - * GMP: [820]GMP-6.2.1 - * Gperf: [821]Gperf-3.1 - * Grep: [822]Grep-3.7 - + tools: [823]Grep-3.7 - * Groff: [824]Groff-1.22.4 - * GRUB: [825]GRUB-2.06 - * Gzip: [826]Gzip-1.11 - + tools: [827]Gzip-1.11 - * Iana-Etc: [828]Iana-Etc-20220207 - * Inetutils: [829]Inetutils-2.2 - * Intltool: [830]Intltool-0.51.0 - * IPRoute2: [831]IPRoute2-5.16.0 - * Jinja2: [832]Jinja2-3.0.3 - * Kbd: [833]Kbd-2.4.0 - * Kmod: [834]Kmod-29 - * Less: [835]Less-590 - * Libcap: [836]Libcap-2.63 - * Libelf: [837]Libelf oriundo de Elfutils-0.186 - * libffi: [838]Libffi-3.4.2 - * Libpipeline: [839]Libpipeline-1.5.5 - * Libtool: [840]Libtool-2.4.6 - * Linux: [841]Linux-5.16.9 - + tools, API headers: [842]Cabeçalhos da API do Linux-5.16.9 - * M4: [843]M4-1.4.19 - + tools: [844]M4-1.4.19 - * Make: [845]Make-4.3 - + tools: [846]Make-4.3 - * Man-DB: [847]Man-DB-2.10.1 - * Man-pages: [848]Man-pages-5.13 - * MarkupSafe: [849]MarkupSafe-2.0.1 - * Meson: [850]Meson-0.61.1 - * MPC: [851]MPC-1.2.1 - * MPFR: [852]MPFR-4.1.0 - * Ncurses: [853]Ncurses-6.3 - + tools: [854]Ncurses-6.3 - * Ninja: [855]Ninja-1.10.2 - * OpenSSL: [856]OpenSSL-3.0.1 - * Patch: [857]Patch-2.7.6 - + tools: [858]Patch-2.7.6 - * Perl: [859]Perl-5.34.0 - + tools: [860]Perl-5.34.0 - * Pkgconfig: [861]Pkg-config-0.29.2 - * Procps-ng: [862]Procps-ng-3.3.17 - * Psmisc: [863]Psmisc-23.4 - * Python: [864]Python-3.10.2 - + temporary: [865]Python-3.10.2 - * Readline: [866]Readline-8.1.2 - * Sed: [867]Sed-4.8 - + tools: [868]Sed-4.8 - * Shadow: [869]Shadow-4.11.1 - + configuring: [870]Configurando Shadow - * systemd: [871]Systemd-250 - * Tar: [872]Tar-1.34 - + tools: [873]Tar-1.34 - * Tcl: [874]Tcl-8.6.12 - * Texinfo: [875]Texinfo-6.8 - + temporary: [876]Texinfo-6.8 - * Udev: - + usage: [877]Visão Geral do Manuseio de Dispositivos e Módulos - * Util-linux: [878]Util-linux-2.37.4 - + tools: [879]Util-linux-2.37.4 - * Vim: [880]Vim-8.2.4383 - * XML::Parser: [881]XML::Parser-2.46 - * Xz: [882]Xz-5.2.5 - + tools: [883]Xz-5.2.5 - * Zlib: [884]Zlib-1.2.11 - * zstd: [885]Zstd-1.5.2 - - * [: [886]Coreutils-9.0 -- - * 2to3: [887]Python-3.10.2 - * accessdb: [888]Man-DB-2.10.1 -- - * aclocal: [889]Automake-1.16.5 -- - * aclocal-1.16: [890]Automake-1.16.5 -- - * addftinfo: [891]Groff-1.22.4 -- - * addpart: [892]Util-linux-2.37.4 -- - * addr2line: [893]Binutils-2.38 -- - * afmtodit: [894]Groff-1.22.4 -- - * agetty: [895]Util-linux-2.37.4 -- - * apropos: [896]Man-DB-2.10.1 -- - * ar: [897]Binutils-2.38 -- - * as: [898]Binutils-2.38 -- - * attr: [899]Attr-2.5.1 -- - * autoconf: [900]Autoconf-2.71 -- - * autoheader: [901]Autoconf-2.71 -- - * autom4te: [902]Autoconf-2.71 -- - * automake: [903]Automake-1.16.5 -- - * automake-1.16: [904]Automake-1.16.5 -- - * autopoint: [905]Gettext-0.21 -- - * autoreconf: [906]Autoconf-2.71 -- - * autoscan: [907]Autoconf-2.71 -- - * autoupdate: [908]Autoconf-2.71 -- - * awk: [909]Gawk-5.1.1 -- - * b2sum: [910]Coreutils-9.0 -- - * badblocks: [911]E2fsprogs-1.46.5 -- - * base64: [912]Coreutils-9.0 -- - * basename: [913]Coreutils-9.0 -- - * basenc: [914]Coreutils-9.0 -- - * bash: [915]Bash-5.1.16 -- - * bashbug: [916]Bash-5.1.16 -- - * bc: [917]Bc-5.2.2 -- - * bison: [918]Bison-3.8.2 -- - * blkdiscard: [919]Util-linux-2.37.4 -- - * blkid: [920]Util-linux-2.37.4 -- - * blkzone: [921]Util-linux-2.37.4 -- - * blockdev: [922]Util-linux-2.37.4 -- - * bridge: [923]IPRoute2-5.16.0 -- - * bunzip2: [924]Bzip2-1.0.8 -- - * busctl: [925]Systemd-250 -- - * bzcat: [926]Bzip2-1.0.8 -- - * bzcmp: [927]Bzip2-1.0.8 -- - * bzdiff: [928]Bzip2-1.0.8 -- - * bzegrep: [929]Bzip2-1.0.8 -- - * bzfgrep: [930]Bzip2-1.0.8 -- - * bzgrep: [931]Bzip2-1.0.8 -- - * bzip2: [932]Bzip2-1.0.8 -- - * bzip2recover: [933]Bzip2-1.0.8 -- - * bzless: [934]Bzip2-1.0.8 -- - * bzmore: [935]Bzip2-1.0.8 -- - * c++: [936]GCC-11.2.0 -- - * c++filt: [937]Binutils-2.38 -- - * cal: [938]Util-linux-2.37.4 -- - * capsh: [939]Libcap-2.63 -- - * captoinfo: [940]Ncurses-6.3 -- - * cat: [941]Coreutils-9.0 -- - * catman: [942]Man-DB-2.10.1 -- - * cc: [943]GCC-11.2.0 -- - * cfdisk: [944]Util-linux-2.37.4 -- - * chacl: [945]Acl-2.3.1 -- - * chage: [946]Shadow-4.11.1 -- - * chattr: [947]E2fsprogs-1.46.5 -- - * chcon: [948]Coreutils-9.0 -- - * chcpu: [949]Util-linux-2.37.4 -- - * checkmk: [950]Check-0.15.2 -- - * chem: [951]Groff-1.22.4 -- - * chfn: [952]Shadow-4.11.1 -- - * chgpasswd: [953]Shadow-4.11.1 -- - * chgrp: [954]Coreutils-9.0 -- - * chmem: [955]Util-linux-2.37.4 -- - * chmod: [956]Coreutils-9.0 -- - * choom: [957]Util-linux-2.37.4 -- - * chown: [958]Coreutils-9.0 -- - * chpasswd: [959]Shadow-4.11.1 -- - * chroot: [960]Coreutils-9.0 -- - * chrt: [961]Util-linux-2.37.4 -- - * chsh: [962]Shadow-4.11.1 -- - * chvt: [963]Kbd-2.4.0 -- - * cksum: [964]Coreutils-9.0 -- - * clear: [965]Ncurses-6.3 -- - * cmp: [966]Diffutils-3.8 -- - * col: [967]Util-linux-2.37.4 -- - * colcrt: [968]Util-linux-2.37.4 -- - * colrm: [969]Util-linux-2.37.4 -- - * column: [970]Util-linux-2.37.4 -- - * comm: [971]Coreutils-9.0 -- - * compile_et: [972]E2fsprogs-1.46.5 -- - * coredumpctl: [973]Systemd-250 -- - * corelist: [974]Perl-5.34.0 -- - * cp: [975]Coreutils-9.0 -- - * cpan: [976]Perl-5.34.0 -- - * cpp: [977]GCC-11.2.0 -- - * csplit: [978]Coreutils-9.0 -- - * ctrlaltdel: [979]Util-linux-2.37.4 -- - * ctstat: [980]IPRoute2-5.16.0 -- - * cut: [981]Coreutils-9.0 -- - * c_rehash: [982]OpenSSL-3.0.1 -- - * date: [983]Coreutils-9.0 -- - * dbus-cleanup-sockets: [984]D-Bus-1.12.20 -- - * dbus-daemon: [985]D-Bus-1.12.20 -- - * dbus-launch: [986]D-Bus-1.12.20 -- - * dbus-monitor: [987]D-Bus-1.12.20 -- - * dbus-run-session: [988]D-Bus-1.12.20 -- - * dbus-send: [989]D-Bus-1.12.20 -- - * dbus-test-tool: [990]D-Bus-1.12.20 -- - * dbus-update-activation-environment: [991]D-Bus-1.12.20 -- - * dbus-uuidgen: [992]D-Bus-1.12.20 -- - * dc: [993]Bc-5.2.2 -- - * dd: [994]Coreutils-9.0 -- - * deallocvt: [995]Kbd-2.4.0 -- - * debugfs: [996]E2fsprogs-1.46.5 -- - * dejagnu: [997]DejaGNU-1.6.3 -- - * delpart: [998]Util-linux-2.37.4 -- - * depmod: [999]Kmod-29 -- - * df: [1000]Coreutils-9.0 -- - * diff: [1001]Diffutils-3.8 -- - * diff3: [1002]Diffutils-3.8 -- - * dir: [1003]Coreutils-9.0 -- - * dircolors: [1004]Coreutils-9.0 -- - * dirname: [1005]Coreutils-9.0 -- - * dmesg: [1006]Util-linux-2.37.4 -- - * dnsdomainname: [1007]Inetutils-2.2 -- - * du: [1008]Coreutils-9.0 -- - * dumpe2fs: [1009]E2fsprogs-1.46.5 -- - * dumpkeys: [1010]Kbd-2.4.0 -- - * e2freefrag: [1011]E2fsprogs-1.46.5 -- - * e2fsck: [1012]E2fsprogs-1.46.5 -- - * e2image: [1013]E2fsprogs-1.46.5 -- - * e2label: [1014]E2fsprogs-1.46.5 -- - * e2mmpstatus: [1015]E2fsprogs-1.46.5 -- - * e2scrub: [1016]E2fsprogs-1.46.5 -- - * e2scrub_all: [1017]E2fsprogs-1.46.5 -- - * e2undo: [1018]E2fsprogs-1.46.5 -- - * e4crypt: [1019]E2fsprogs-1.46.5 -- - * e4defrag: [1020]E2fsprogs-1.46.5 -- - * echo: [1021]Coreutils-9.0 -- - * egrep: [1022]Grep-3.7 -- - * eject: [1023]Util-linux-2.37.4 -- - * elfedit: [1024]Binutils-2.38 -- - * enc2xs: [1025]Perl-5.34.0 -- - * encguess: [1026]Perl-5.34.0 -- - * env: [1027]Coreutils-9.0 -- - * envsubst: [1028]Gettext-0.21 -- - * eqn: [1029]Groff-1.22.4 -- - * eqn2graph: [1030]Groff-1.22.4 -- - * ex: [1031]Vim-8.2.4383 -- - * expand: [1032]Coreutils-9.0 -- - * expect: [1033]Expect-5.45.4 -- - * expiry: [1034]Shadow-4.11.1 -- - * expr: [1035]Coreutils-9.0 -- - * factor: [1036]Coreutils-9.0 -- - * faillog: [1037]Shadow-4.11.1 -- - * fallocate: [1038]Util-linux-2.37.4 -- - * false: [1039]Coreutils-9.0 -- - * fdisk: [1040]Util-linux-2.37.4 -- - * fgconsole: [1041]Kbd-2.4.0 -- - * fgrep: [1042]Grep-3.7 -- - * file: [1043]File-5.41 -- - * filefrag: [1044]E2fsprogs-1.46.5 -- - * fincore: [1045]Util-linux-2.37.4 -- - * find: [1046]Findutils-4.9.0 -- - * findfs: [1047]Util-linux-2.37.4 -- - * findmnt: [1048]Util-linux-2.37.4 -- - * flex: [1049]Flex-2.6.4 -- - * flex++: [1050]Flex-2.6.4 -- - * flock: [1051]Util-linux-2.37.4 -- - * fmt: [1052]Coreutils-9.0 -- - * fold: [1053]Coreutils-9.0 -- - * free: [1054]Procps-ng-3.3.17 -- - * fsck: [1055]Util-linux-2.37.4 -- - * fsck.cramfs: [1056]Util-linux-2.37.4 -- - * fsck.ext2: [1057]E2fsprogs-1.46.5 -- - * fsck.ext3: [1058]E2fsprogs-1.46.5 -- - * fsck.ext4: [1059]E2fsprogs-1.46.5 -- - * fsck.minix: [1060]Util-linux-2.37.4 -- - * fsfreeze: [1061]Util-linux-2.37.4 -- - * fstrim: [1062]Util-linux-2.37.4 -- - * ftp: [1063]Inetutils-2.2 -- - * fuser: [1064]Psmisc-23.4 -- - * g++: [1065]GCC-11.2.0 -- - * gawk: [1066]Gawk-5.1.1 -- - * gawk-5.1.1: [1067]Gawk-5.1.1 -- - * gcc: [1068]GCC-11.2.0 -- - * gc-ar: [1069]GCC-11.2.0 -- - * gc-nm: [1070]GCC-11.2.0 -- - * gc-ranlib: [1071]GCC-11.2.0 -- - * gcov: [1072]GCC-11.2.0 -- - * gcov-dump: [1073]GCC-11.2.0 -- - * gcov-tool: [1074]GCC-11.2.0 -- - * gdbmtool: [1075]GDBM-1.23 -- - * gdbm_dump: [1076]GDBM-1.23 -- - * gdbm_load: [1077]GDBM-1.23 -- - * gdiffmk: [1078]Groff-1.22.4 -- - * gencat: [1079]Glibc-2.35 -- - * genl: [1080]IPRoute2-5.16.0 -- - * getcap: [1081]Libcap-2.63 -- - * getconf: [1082]Glibc-2.35 -- - * getent: [1083]Glibc-2.35 -- - * getfacl: [1084]Acl-2.3.1 -- - * getfattr: [1085]Attr-2.5.1 -- - * getkeycodes: [1086]Kbd-2.4.0 -- - * getopt: [1087]Util-linux-2.37.4 -- - * getpcaps: [1088]Libcap-2.63 -- - * getsubids: [1089]Shadow-4.11.1 -- - * gettext: [1090]Gettext-0.21 -- - * gettext.sh: [1091]Gettext-0.21 -- - * gettextize: [1092]Gettext-0.21 -- - * glilypond: [1093]Groff-1.22.4 -- - * gpasswd: [1094]Shadow-4.11.1 -- - * gperf: [1095]Gperf-3.1 -- - * gperl: [1096]Groff-1.22.4 -- - * gpinyin: [1097]Groff-1.22.4 -- - * gprof: [1098]Binutils-2.38 -- - * grap2graph: [1099]Groff-1.22.4 -- - * grep: [1100]Grep-3.7 -- - * grn: [1101]Groff-1.22.4 -- - * grodvi: [1102]Groff-1.22.4 -- - * groff: [1103]Groff-1.22.4 -- - * groffer: [1104]Groff-1.22.4 -- - * grog: [1105]Groff-1.22.4 -- - * grolbp: [1106]Groff-1.22.4 -- - * grolj4: [1107]Groff-1.22.4 -- - * gropdf: [1108]Groff-1.22.4 -- - * grops: [1109]Groff-1.22.4 -- - * grotty: [1110]Groff-1.22.4 -- - * groupadd: [1111]Shadow-4.11.1 -- - * groupdel: [1112]Shadow-4.11.1 -- - * groupmems: [1113]Shadow-4.11.1 -- - * groupmod: [1114]Shadow-4.11.1 -- - * groups: [1115]Coreutils-9.0 -- - * grpck: [1116]Shadow-4.11.1 -- - * grpconv: [1117]Shadow-4.11.1 -- - * grpunconv: [1118]Shadow-4.11.1 -- - * grub-bios-setup: [1119]GRUB-2.06 -- - * grub-editenv: [1120]GRUB-2.06 -- - * grub-file: [1121]GRUB-2.06 -- - * grub-fstest: [1122]GRUB-2.06 -- - * grub-glue-efi: [1123]GRUB-2.06 -- - * grub-install: [1124]GRUB-2.06 -- - * grub-kbdcomp: [1125]GRUB-2.06 -- - * grub-macbless: [1126]GRUB-2.06 -- - * grub-menulst2cfg: [1127]GRUB-2.06 -- - * grub-mkconfig: [1128]GRUB-2.06 -- - * grub-mkimage: [1129]GRUB-2.06 -- - * grub-mklayout: [1130]GRUB-2.06 -- - * grub-mknetdir: [1131]GRUB-2.06 -- - * grub-mkpasswd-pbkdf2: [1132]GRUB-2.06 -- - * grub-mkrelpath: [1133]GRUB-2.06 -- - * grub-mkrescue: [1134]GRUB-2.06 -- - * grub-mkstandalone: [1135]GRUB-2.06 -- - * grub-ofpathname: [1136]GRUB-2.06 -- - * grub-probe: [1137]GRUB-2.06 -- - * grub-reboot: [1138]GRUB-2.06 -- - * grub-render-label: [1139]GRUB-2.06 -- - * grub-script-check: [1140]GRUB-2.06 -- - * grub-set-default: [1141]GRUB-2.06 -- - * grub-setup: [1142]GRUB-2.06 -- - * grub-syslinux2cfg: [1143]GRUB-2.06 -- - * gunzip: [1144]Gzip-1.11 -- - * gzexe: [1145]Gzip-1.11 -- - * gzip: [1146]Gzip-1.11 -- - * h2ph: [1147]Perl-5.34.0 -- - * h2xs: [1148]Perl-5.34.0 -- - * halt: [1149]Systemd-250 -- - * head: [1150]Coreutils-9.0 -- - * hexdump: [1151]Util-linux-2.37.4 -- - * hostid: [1152]Coreutils-9.0 -- - * hostname: [1153]Inetutils-2.2 -- - * hostnamectl: [1154]Systemd-250 -- - * hpftodit: [1155]Groff-1.22.4 -- - * hwclock: [1156]Util-linux-2.37.4 -- - * i386: [1157]Util-linux-2.37.4 -- - * iconv: [1158]Glibc-2.35 -- - * iconvconfig: [1159]Glibc-2.35 -- - * id: [1160]Coreutils-9.0 -- - * idle3: [1161]Python-3.10.2 - * ifcfg: [1162]IPRoute2-5.16.0 -- - * ifconfig: [1163]Inetutils-2.2 -- - * ifnames: [1164]Autoconf-2.71 -- - * ifstat: [1165]IPRoute2-5.16.0 -- - * indxbib: [1166]Groff-1.22.4 -- - * info: [1167]Texinfo-6.8 -- - * infocmp: [1168]Ncurses-6.3 -- - * infotocap: [1169]Ncurses-6.3 -- - * init: [1170]Systemd-250 -- - * insmod: [1171]Kmod-29 -- - * install: [1172]Coreutils-9.0 -- - * install-info: [1173]Texinfo-6.8 -- - * instmodsh: [1174]Perl-5.34.0 -- - * intltool-extract: [1175]Intltool-0.51.0 -- - * intltool-merge: [1176]Intltool-0.51.0 -- - * intltool-prepare: [1177]Intltool-0.51.0 -- - * intltool-update: [1178]Intltool-0.51.0 -- - * intltoolize: [1179]Intltool-0.51.0 -- - * ionice: [1180]Util-linux-2.37.4 -- - * ip: [1181]IPRoute2-5.16.0 -- - * ipcmk: [1182]Util-linux-2.37.4 -- - * ipcrm: [1183]Util-linux-2.37.4 -- - * ipcs: [1184]Util-linux-2.37.4 -- - * irqtop: [1185]Util-linux-2.37.4 -- - * isosize: [1186]Util-linux-2.37.4 -- - * join: [1187]Coreutils-9.0 -- - * journalctl: [1188]Systemd-250 -- - * json_pp: [1189]Perl-5.34.0 -- - * kbdinfo: [1190]Kbd-2.4.0 -- - * kbdrate: [1191]Kbd-2.4.0 -- - * kbd_mode: [1192]Kbd-2.4.0 -- - * kernel-install: [1193]Systemd-250 -- - * kill: [1194]Util-linux-2.37.4 -- - * killall: [1195]Psmisc-23.4 -- - * kmod: [1196]Kmod-29 -- - * last: [1197]Util-linux-2.37.4 -- - * lastb: [1198]Util-linux-2.37.4 -- - * lastlog: [1199]Shadow-4.11.1 -- - * ld: [1200]Binutils-2.38 -- - * ld.bfd: [1201]Binutils-2.38 -- - * ld.gold: [1202]Binutils-2.38 -- - * ldattach: [1203]Util-linux-2.37.4 -- - * ldconfig: [1204]Glibc-2.35 -- - * ldd: [1205]Glibc-2.35 -- - * lddlibc4: [1206]Glibc-2.35 -- - * less: [1207]Less-590 -- - * lessecho: [1208]Less-590 -- - * lesskey: [1209]Less-590 -- - * lex: [1210]Flex-2.6.4 -- - * lexgrog: [1211]Man-DB-2.10.1 -- - * lfskernel-5.16.9: [1212]Linux-5.16.9 -- - * libasan: [1213]GCC-11.2.0 -- - * libatomic: [1214]GCC-11.2.0 -- - * libcc1: [1215]GCC-11.2.0 -- - * libnetcfg: [1216]Perl-5.34.0 -- - * libtool: [1217]Libtool-2.4.6 -- - * libtoolize: [1218]Libtool-2.4.6 -- - * link: [1219]Coreutils-9.0 -- - * linux32: [1220]Util-linux-2.37.4 -- - * linux64: [1221]Util-linux-2.37.4 -- - * lkbib: [1222]Groff-1.22.4 -- - * ln: [1223]Coreutils-9.0 -- - * lnstat: [1224]IPRoute2-5.16.0 -- - * loadkeys: [1225]Kbd-2.4.0 -- - * loadunimap: [1226]Kbd-2.4.0 -- - * locale: [1227]Glibc-2.35 -- - * localectl: [1228]Systemd-250 -- - * localedef: [1229]Glibc-2.35 -- - * locate: [1230]Findutils-4.9.0 -- - * logger: [1231]Util-linux-2.37.4 -- - * login: [1232]Shadow-4.11.1 -- - * loginctl: [1233]Systemd-250 -- - * logname: [1234]Coreutils-9.0 -- - * logoutd: [1235]Shadow-4.11.1 -- - * logsave: [1236]E2fsprogs-1.46.5 -- - * look: [1237]Util-linux-2.37.4 -- - * lookbib: [1238]Groff-1.22.4 -- - * losetup: [1239]Util-linux-2.37.4 -- - * ls: [1240]Coreutils-9.0 -- - * lsattr: [1241]E2fsprogs-1.46.5 -- - * lsblk: [1242]Util-linux-2.37.4 -- - * lscpu: [1243]Util-linux-2.37.4 -- - * lsipc: [1244]Util-linux-2.37.4 -- - * lsirq: [1245]Util-linux-2.37.4 -- - * lslocks: [1246]Util-linux-2.37.4 -- - * lslogins: [1247]Util-linux-2.37.4 -- - * lsmem: [1248]Util-linux-2.37.4 -- - * lsmod: [1249]Kmod-29 -- - * lsns: [1250]Util-linux-2.37.4 -- - * lto-dump: [1251]GCC-11.2.0 -- - * lzcat: [1252]Xz-5.2.5 -- - * lzcmp: [1253]Xz-5.2.5 -- - * lzdiff: [1254]Xz-5.2.5 -- - * lzegrep: [1255]Xz-5.2.5 -- - * lzfgrep: [1256]Xz-5.2.5 -- - * lzgrep: [1257]Xz-5.2.5 -- - * lzless: [1258]Xz-5.2.5 -- - * lzma: [1259]Xz-5.2.5 -- - * lzmadec: [1260]Xz-5.2.5 -- - * lzmainfo: [1261]Xz-5.2.5 -- - * lzmore: [1262]Xz-5.2.5 -- - * m4: [1263]M4-1.4.19 -- - * machinectl: [1264]Systemd-250 -- - * make: [1265]Make-4.3 -- - * makedb: [1266]Glibc-2.35 -- - * makeinfo: [1267]Texinfo-6.8 -- - * man: [1268]Man-DB-2.10.1 -- - * man-recode: [1269]Man-DB-2.10.1 -- - * mandb: [1270]Man-DB-2.10.1 -- - * manpath: [1271]Man-DB-2.10.1 -- - * mapscrn: [1272]Kbd-2.4.0 -- - * mcookie: [1273]Util-linux-2.37.4 -- - * md5sum: [1274]Coreutils-9.0 -- - * mesg: [1275]Util-linux-2.37.4 -- - * meson: [1276]Meson-0.61.1 -- - * mkdir: [1277]Coreutils-9.0 -- - * mke2fs: [1278]E2fsprogs-1.46.5 -- - * mkfifo: [1279]Coreutils-9.0 -- - * mkfs: [1280]Util-linux-2.37.4 -- - * mkfs.bfs: [1281]Util-linux-2.37.4 -- - * mkfs.cramfs: [1282]Util-linux-2.37.4 -- - * mkfs.ext2: [1283]E2fsprogs-1.46.5 -- - * mkfs.ext3: [1284]E2fsprogs-1.46.5 -- - * mkfs.ext4: [1285]E2fsprogs-1.46.5 -- - * mkfs.minix: [1286]Util-linux-2.37.4 -- - * mklost+found: [1287]E2fsprogs-1.46.5 -- - * mknod: [1288]Coreutils-9.0 -- - * mkswap: [1289]Util-linux-2.37.4 -- - * mktemp: [1290]Coreutils-9.0 -- - * mk_cmds: [1291]E2fsprogs-1.46.5 -- - * mmroff: [1292]Groff-1.22.4 -- - * modinfo: [1293]Kmod-29 -- - * modprobe: [1294]Kmod-29 -- - * more: [1295]Util-linux-2.37.4 -- - * mount: [1296]Util-linux-2.37.4 -- - * mountpoint: [1297]Util-linux-2.37.4 -- - * msgattrib: [1298]Gettext-0.21 -- - * msgcat: [1299]Gettext-0.21 -- - * msgcmp: [1300]Gettext-0.21 -- - * msgcomm: [1301]Gettext-0.21 -- - * msgconv: [1302]Gettext-0.21 -- - * msgen: [1303]Gettext-0.21 -- - * msgexec: [1304]Gettext-0.21 -- - * msgfilter: [1305]Gettext-0.21 -- - * msgfmt: [1306]Gettext-0.21 -- - * msggrep: [1307]Gettext-0.21 -- - * msginit: [1308]Gettext-0.21 -- - * msgmerge: [1309]Gettext-0.21 -- - * msgunfmt: [1310]Gettext-0.21 -- - * msguniq: [1311]Gettext-0.21 -- - * mtrace: [1312]Glibc-2.35 -- - * mv: [1313]Coreutils-9.0 -- - * namei: [1314]Util-linux-2.37.4 -- - * ncursesw6-config: [1315]Ncurses-6.3 -- - * neqn: [1316]Groff-1.22.4 -- - * networkctl: [1317]Systemd-250 -- - * newgidmap: [1318]Shadow-4.11.1 -- - * newgrp: [1319]Shadow-4.11.1 -- - * newuidmap: [1320]Shadow-4.11.1 -- - * newusers: [1321]Shadow-4.11.1 -- - * ngettext: [1322]Gettext-0.21 -- - * nice: [1323]Coreutils-9.0 -- - * ninja: [1324]Ninja-1.10.2 -- - * nl: [1325]Coreutils-9.0 -- - * nm: [1326]Binutils-2.38 -- - * nohup: [1327]Coreutils-9.0 -- - * nologin: [1328]Shadow-4.11.1 -- - * nproc: [1329]Coreutils-9.0 -- - * nroff: [1330]Groff-1.22.4 -- - * nscd: [1331]Glibc-2.35 -- - * nsenter: [1332]Util-linux-2.37.4 -- - * nstat: [1333]IPRoute2-5.16.0 -- - * numfmt: [1334]Coreutils-9.0 -- - * objcopy: [1335]Binutils-2.38 -- - * objdump: [1336]Binutils-2.38 -- - * od: [1337]Coreutils-9.0 -- - * oomctl: [1338]Systemd-250 -- - * openssl: [1339]OpenSSL-3.0.1 -- - * openvt: [1340]Kbd-2.4.0 -- - * partx: [1341]Util-linux-2.37.4 -- - * passwd: [1342]Shadow-4.11.1 -- - * paste: [1343]Coreutils-9.0 -- - * patch: [1344]Patch-2.7.6 -- - * pathchk: [1345]Coreutils-9.0 -- - * pcprofiledump: [1346]Glibc-2.35 -- - * pdfmom: [1347]Groff-1.22.4 -- - * pdfroff: [1348]Groff-1.22.4 -- - * pdftexi2dvi: [1349]Texinfo-6.8 -- - * peekfd: [1350]Psmisc-23.4 -- - * perl: [1351]Perl-5.34.0 -- - * perl5.34.0: [1352]Perl-5.34.0 -- - * perlbug: [1353]Perl-5.34.0 -- - * perldoc: [1354]Perl-5.34.0 -- - * perlivp: [1355]Perl-5.34.0 -- - * perlthanks: [1356]Perl-5.34.0 -- - * pfbtops: [1357]Groff-1.22.4 -- - * pgrep: [1358]Procps-ng-3.3.17 -- - * pic: [1359]Groff-1.22.4 -- - * pic2graph: [1360]Groff-1.22.4 -- - * piconv: [1361]Perl-5.34.0 -- - * pidof: [1362]Procps-ng-3.3.17 -- - * ping: [1363]Inetutils-2.2 -- - * ping6: [1364]Inetutils-2.2 -- - * pinky: [1365]Coreutils-9.0 -- - * pip3: [1366]Python-3.10.2 - * pivot_root: [1367]Util-linux-2.37.4 -- - * pkg-config: [1368]Pkg-config-0.29.2 -- - * pkill: [1369]Procps-ng-3.3.17 -- - * pl2pm: [1370]Perl-5.34.0 -- - * pldd: [1371]Glibc-2.35 -- - * pmap: [1372]Procps-ng-3.3.17 -- - * pod2html: [1373]Perl-5.34.0 -- - * pod2man: [1374]Perl-5.34.0 -- - * pod2texi: [1375]Texinfo-6.8 -- - * pod2text: [1376]Perl-5.34.0 -- - * pod2usage: [1377]Perl-5.34.0 -- - * podchecker: [1378]Perl-5.34.0 -- - * podselect: [1379]Perl-5.34.0 -- - * portablectl: [1380]Systemd-250 -- - * post-grohtml: [1381]Groff-1.22.4 -- - * poweroff: [1382]Systemd-250 -- - * pr: [1383]Coreutils-9.0 -- - * pre-grohtml: [1384]Groff-1.22.4 -- - * preconv: [1385]Groff-1.22.4 -- - * printenv: [1386]Coreutils-9.0 -- - * printf: [1387]Coreutils-9.0 -- - * prlimit: [1388]Util-linux-2.37.4 -- - * prove: [1389]Perl-5.34.0 -- - * prtstat: [1390]Psmisc-23.4 -- - * ps: [1391]Procps-ng-3.3.17 -- - * psfaddtable: [1392]Kbd-2.4.0 -- - * psfgettable: [1393]Kbd-2.4.0 -- - * psfstriptable: [1394]Kbd-2.4.0 -- - * psfxtable: [1395]Kbd-2.4.0 -- - * pslog: [1396]Psmisc-23.4 -- - * pstree: [1397]Psmisc-23.4 -- - * pstree.x11: [1398]Psmisc-23.4 -- - * ptar: [1399]Perl-5.34.0 -- - * ptardiff: [1400]Perl-5.34.0 -- - * ptargrep: [1401]Perl-5.34.0 -- - * ptx: [1402]Coreutils-9.0 -- - * pwait: [1403]Procps-ng-3.3.17 -- - * pwck: [1404]Shadow-4.11.1 -- - * pwconv: [1405]Shadow-4.11.1 -- - * pwd: [1406]Coreutils-9.0 -- - * pwdx: [1407]Procps-ng-3.3.17 -- - * pwunconv: [1408]Shadow-4.11.1 -- - * pydoc3: [1409]Python-3.10.2 - * python3: [1410]Python-3.10.2 - * ranlib: [1411]Binutils-2.38 -- - * readelf: [1412]Binutils-2.38 -- - * readlink: [1413]Coreutils-9.0 -- - * readprofile: [1414]Util-linux-2.37.4 -- - * realpath: [1415]Coreutils-9.0 -- - * reboot: [1416]Systemd-250 -- - * recode-sr-latin: [1417]Gettext-0.21 -- - * refer: [1418]Groff-1.22.4 -- - * rename: [1419]Util-linux-2.37.4 -- - * renice: [1420]Util-linux-2.37.4 -- - * reset: [1421]Ncurses-6.3 -- - * resize2fs: [1422]E2fsprogs-1.46.5 -- - * resizepart: [1423]Util-linux-2.37.4 -- - * resolvconf: [1424]Systemd-250 -- - * resolvectl: [1425]Systemd-250 -- - * rev: [1426]Util-linux-2.37.4 -- - * rkfill: [1427]Util-linux-2.37.4 -- - * rm: [1428]Coreutils-9.0 -- - * rmdir: [1429]Coreutils-9.0 -- - * rmmod: [1430]Kmod-29 -- - * roff2dvi: [1431]Groff-1.22.4 -- - * roff2html: [1432]Groff-1.22.4 -- - * roff2pdf: [1433]Groff-1.22.4 -- - * roff2ps: [1434]Groff-1.22.4 -- - * roff2text: [1435]Groff-1.22.4 -- - * roff2x: [1436]Groff-1.22.4 -- - * routef: [1437]IPRoute2-5.16.0 -- - * routel: [1438]IPRoute2-5.16.0 -- - * rtacct: [1439]IPRoute2-5.16.0 -- - * rtcwake: [1440]Util-linux-2.37.4 -- - * rtmon: [1441]IPRoute2-5.16.0 -- - * rtpr: [1442]IPRoute2-5.16.0 -- - * rtstat: [1443]IPRoute2-5.16.0 -- - * runcon: [1444]Coreutils-9.0 -- - * runlevel: [1445]Systemd-250 -- - * runtest: [1446]DejaGNU-1.6.3 -- - * rview: [1447]Vim-8.2.4383 -- - * rvim: [1448]Vim-8.2.4383 -- - * script: [1449]Util-linux-2.37.4 -- - * scriptlive: [1450]Util-linux-2.37.4 -- - * scriptreplay: [1451]Util-linux-2.37.4 -- - * sdiff: [1452]Diffutils-3.8 -- - * sed: [1453]Sed-4.8 -- - * seq: [1454]Coreutils-9.0 -- - * setarch: [1455]Util-linux-2.37.4 -- - * setcap: [1456]Libcap-2.63 -- - * setfacl: [1457]Acl-2.3.1 -- - * setfattr: [1458]Attr-2.5.1 -- - * setfont: [1459]Kbd-2.4.0 -- - * setkeycodes: [1460]Kbd-2.4.0 -- - * setleds: [1461]Kbd-2.4.0 -- - * setmetamode: [1462]Kbd-2.4.0 -- - * setsid: [1463]Util-linux-2.37.4 -- - * setterm: [1464]Util-linux-2.37.4 -- - * setvtrgb: [1465]Kbd-2.4.0 -- - * sfdisk: [1466]Util-linux-2.37.4 -- - * sg: [1467]Shadow-4.11.1 -- - * sh: [1468]Bash-5.1.16 -- - * sha1sum: [1469]Coreutils-9.0 -- - * sha224sum: [1470]Coreutils-9.0 -- - * sha256sum: [1471]Coreutils-9.0 -- - * sha384sum: [1472]Coreutils-9.0 -- - * sha512sum: [1473]Coreutils-9.0 -- - * shasum: [1474]Perl-5.34.0 -- - * showconsolefont: [1475]Kbd-2.4.0 -- - * showkey: [1476]Kbd-2.4.0 -- - * shred: [1477]Coreutils-9.0 -- - * shuf: [1478]Coreutils-9.0 -- - * shutdown: [1479]Systemd-250 -- - * size: [1480]Binutils-2.38 -- - * slabtop: [1481]Procps-ng-3.3.17 -- - * sleep: [1482]Coreutils-9.0 -- - * sln: [1483]Glibc-2.35 -- - * soelim: [1484]Groff-1.22.4 -- - * sort: [1485]Coreutils-9.0 -- - * sotruss: [1486]Glibc-2.35 -- - * splain: [1487]Perl-5.34.0 -- - * split: [1488]Coreutils-9.0 -- - * sprof: [1489]Glibc-2.35 -- - * ss: [1490]IPRoute2-5.16.0 -- - * stat: [1491]Coreutils-9.0 -- - * stdbuf: [1492]Coreutils-9.0 -- - * strings: [1493]Binutils-2.38 -- - * strip: [1494]Binutils-2.38 -- - * stty: [1495]Coreutils-9.0 -- - * su: [1496]Shadow-4.11.1 -- - * sulogin: [1497]Util-linux-2.37.4 -- - * sum: [1498]Coreutils-9.0 -- - * swaplabel: [1499]Util-linux-2.37.4 -- - * swapoff: [1500]Util-linux-2.37.4 -- - * swapon: [1501]Util-linux-2.37.4 -- - * switch_root: [1502]Util-linux-2.37.4 -- - * sync: [1503]Coreutils-9.0 -- - * sysctl: [1504]Procps-ng-3.3.17 -- - * systemctl: [1505]Systemd-250 -- - * systemd-analyze: [1506]Systemd-250 -- - * systemd-ask-password: [1507]Systemd-250 -- - * systemd-cat: [1508]Systemd-250 -- - * systemd-cgls: [1509]Systemd-250 -- - * systemd-cgtop: [1510]Systemd-250 -- - * systemd-creds: [1511]Systemd-250 -- - * systemd-delta: [1512]Systemd-250 -- - * systemd-detect-virt: [1513]Systemd-250 -- - * systemd-dissect: [1514]Systemd-250 -- - * systemd-escape: [1515]Systemd-250 -- - * systemd-hwdb: [1516]Systemd-250 -- - * systemd-id128: [1517]Systemd-250 -- - * systemd-inhibit: [1518]Systemd-250 -- - * systemd-machine-id-setup: [1519]Systemd-250 -- - * systemd-mount: [1520]Systemd-250 -- - * systemd-notify: [1521]Systemd-250 -- - * systemd-nspawn: [1522]Systemd-250 -- - * systemd-path: [1523]Systemd-250 -- - * systemd-repart: [1524]Systemd-250 -- - * systemd-resolve: [1525]Systemd-250 -- - * systemd-run: [1526]Systemd-250 -- - * systemd-socket-activate: [1527]Systemd-250 -- - * systemd-sysext: [1528]Systemd-250 -- - * systemd-tmpfiles: [1529]Systemd-250 -- - * systemd-tty-ask-password-agent: [1530]Systemd-250 -- - * systemd-umount: [1531]Systemd-250 -- - * tabs: [1532]Ncurses-6.3 -- - * tac: [1533]Coreutils-9.0 -- - * tail: [1534]Coreutils-9.0 -- - * talk: [1535]Inetutils-2.2 -- - * tar: [1536]Tar-1.34 -- - * taskset: [1537]Util-linux-2.37.4 -- - * tbl: [1538]Groff-1.22.4 -- - * tc: [1539]IPRoute2-5.16.0 -- - * tclsh: [1540]Tcl-8.6.12 -- - * tclsh8.6: [1541]Tcl-8.6.12 -- - * tee: [1542]Coreutils-9.0 -- - * telinit: [1543]Systemd-250 -- - * telnet: [1544]Inetutils-2.2 -- - * test: [1545]Coreutils-9.0 -- - * texi2dvi: [1546]Texinfo-6.8 -- - * texi2pdf: [1547]Texinfo-6.8 -- - * texi2any: [1548]Texinfo-6.8 -- - * texindex: [1549]Texinfo-6.8 -- - * tfmtodit: [1550]Groff-1.22.4 -- - * tftp: [1551]Inetutils-2.2 -- - * tic: [1552]Ncurses-6.3 -- - * timedatectl: [1553]Systemd-250 -- - * timeout: [1554]Coreutils-9.0 -- - * tload: [1555]Procps-ng-3.3.17 -- - * toe: [1556]Ncurses-6.3 -- - * top: [1557]Procps-ng-3.3.17 -- - * touch: [1558]Coreutils-9.0 -- - * tput: [1559]Ncurses-6.3 -- - * tr: [1560]Coreutils-9.0 -- - * traceroute: [1561]Inetutils-2.2 -- - * troff: [1562]Groff-1.22.4 -- - * true: [1563]Coreutils-9.0 -- - * truncate: [1564]Coreutils-9.0 -- - * tset: [1565]Ncurses-6.3 -- - * tsort: [1566]Coreutils-9.0 -- - * tty: [1567]Coreutils-9.0 -- - * tune2fs: [1568]E2fsprogs-1.46.5 -- - * tzselect: [1569]Glibc-2.35 -- - * uclampset: [1570]Util-linux-2.37.4 -- - * udevadm: [1571]Systemd-250 -- - * ul: [1572]Util-linux-2.37.4 -- - * umount: [1573]Util-linux-2.37.4 -- - * uname: [1574]Coreutils-9.0 -- - * uname26: [1575]Util-linux-2.37.4 -- - * uncompress: [1576]Gzip-1.11 -- - * unexpand: [1577]Coreutils-9.0 -- - * unicode_start: [1578]Kbd-2.4.0 -- - * unicode_stop: [1579]Kbd-2.4.0 -- - * uniq: [1580]Coreutils-9.0 -- - * unlink: [1581]Coreutils-9.0 -- - * unlzma: [1582]Xz-5.2.5 -- - * unshare: [1583]Util-linux-2.37.4 -- - * unxz: [1584]Xz-5.2.5 -- - * updatedb: [1585]Findutils-4.9.0 -- - * uptime: [1586]Procps-ng-3.3.17 -- - * useradd: [1587]Shadow-4.11.1 -- - * userdel: [1588]Shadow-4.11.1 -- - * usermod: [1589]Shadow-4.11.1 -- - * users: [1590]Coreutils-9.0 -- - * utmpdump: [1591]Util-linux-2.37.4 -- - * uuidd: [1592]Util-linux-2.37.4 -- - * uuidgen: [1593]Util-linux-2.37.4 -- - * uuidparse: [1594]Util-linux-2.37.4 -- - * vdir: [1595]Coreutils-9.0 -- - * vi: [1596]Vim-8.2.4383 -- - * view: [1597]Vim-8.2.4383 -- - * vigr: [1598]Shadow-4.11.1 -- - * vim: [1599]Vim-8.2.4383 -- - * vimdiff: [1600]Vim-8.2.4383 -- - * vimtutor: [1601]Vim-8.2.4383 -- - * vipw: [1602]Shadow-4.11.1 -- - * vmstat: [1603]Procps-ng-3.3.17 -- - * w: [1604]Procps-ng-3.3.17 -- - * wall: [1605]Util-linux-2.37.4 -- - * watch: [1606]Procps-ng-3.3.17 -- - * wc: [1607]Coreutils-9.0 -- - * wdctl: [1608]Util-linux-2.37.4 -- - * whatis: [1609]Man-DB-2.10.1 -- - * whereis: [1610]Util-linux-2.37.4 -- - * who: [1611]Coreutils-9.0 -- - * whoami: [1612]Coreutils-9.0 -- - * wipefs: [1613]Util-linux-2.37.4 -- - * x86_64: [1614]Util-linux-2.37.4 -- - * xargs: [1615]Findutils-4.9.0 -- - * xgettext: [1616]Gettext-0.21 -- - * xmlwf: [1617]Expat-2.4.6 -- - * xsubpp: [1618]Perl-5.34.0 -- - * xtrace: [1619]Glibc-2.35 -- - * xxd: [1620]Vim-8.2.4383 -- - * xz: [1621]Xz-5.2.5 -- - * xzcat: [1622]Xz-5.2.5 -- - * xzcmp: [1623]Xz-5.2.5 -- - * xzdec: [1624]Xz-5.2.5 -- - * xzdiff: [1625]Xz-5.2.5 -- - * xzegrep: [1626]Xz-5.2.5 -- - * xzfgrep: [1627]Xz-5.2.5 -- - * xzgrep: [1628]Xz-5.2.5 -- - * xzless: [1629]Xz-5.2.5 -- - * xzmore: [1630]Xz-5.2.5 -- - * yacc: [1631]Bison-3.8.2 -- - * yes: [1632]Coreutils-9.0 -- - * zcat: [1633]Gzip-1.11 -- - * zcmp: [1634]Gzip-1.11 -- - * zdiff: [1635]Gzip-1.11 -- - * zdump: [1636]Glibc-2.35 -- - * zegrep: [1637]Gzip-1.11 -- - * zfgrep: [1638]Gzip-1.11 -- - * zforce: [1639]Gzip-1.11 -- - * zgrep: [1640]Gzip-1.11 -- - * zic: [1641]Glibc-2.35 -- - * zipdetails: [1642]Perl-5.34.0 -- - * zless: [1643]Gzip-1.11 -- - * zmore: [1644]Gzip-1.11 -- - * znew: [1645]Gzip-1.11 -- - * zramctl: [1646]Util-linux-2.37.4 -- - * zstd: [1647]Zstd-1.5.2 -- - * zstdgrep: [1648]Zstd-1.5.2 -- - * zstdless: [1649]Zstd-1.5.2 -- - - * Expat: [1650]XML::Parser-2.46 -- - * ld-2.35.so: [1651]Glibc-2.35 -- - * libacl: [1652]Acl-2.3.1 -- - * libanl: [1653]Glibc-2.35 -- - * libasprintf: [1654]Gettext-0.21 -- - * libattr: [1655]Attr-2.5.1 -- - * libbfd: [1656]Binutils-2.38 -- - * libblkid: [1657]Util-linux-2.37.4 -- - * libBrokenLocale: [1658]Glibc-2.35 -- - * libbz2: [1659]Bzip2-1.0.8 -- - * libc: [1660]Glibc-2.35 -- - * libcap: [1661]Libcap-2.63 -- - * libcheck: [1662]Check-0.15.2 -- - * libcom_err: [1663]E2fsprogs-1.46.5 -- - * libcrypt: [1664]Glibc-2.35 -- - * libcrypto.so: [1665]OpenSSL-3.0.1 -- - * libctf: [1666]Binutils-2.38 -- - * libctf-nobfd: [1667]Binutils-2.38 -- - * libcursesw: [1668]Ncurses-6.3 -- - * libc_malloc_debug: [1669]Glibc-2.35 -- - * libdbus-1: [1670]D-Bus-1.12.20 -- - * libdl: [1671]Glibc-2.35 -- - * libe2p: [1672]E2fsprogs-1.46.5 -- - * libelf: [1673]Libelf oriundo de Elfutils-0.186 -- - * libexpat: [1674]Expat-2.4.6 -- - * libexpect-5.45.4: [1675]Expect-5.45.4 -- - * libext2fs: [1676]E2fsprogs-1.46.5 -- - * libfdisk: [1677]Util-linux-2.37.4 -- - * libffi: [1678]Libffi-3.4.2 - * libfl: [1679]Flex-2.6.4 -- - * libformw: [1680]Ncurses-6.3 -- - * libg: [1681]Glibc-2.35 -- - * libgcc: [1682]GCC-11.2.0 -- - * libgcov: [1683]GCC-11.2.0 -- - * libgdbm: [1684]GDBM-1.23 -- - * libgdbm_compat: [1685]GDBM-1.23 -- - * libgettextlib: [1686]Gettext-0.21 -- - * libgettextpo: [1687]Gettext-0.21 -- - * libgettextsrc: [1688]Gettext-0.21 -- - * libgmp: [1689]GMP-6.2.1 -- - * libgmpxx: [1690]GMP-6.2.1 -- - * libgomp: [1691]GCC-11.2.0 -- - * libhistory: [1692]Readline-8.1.2 -- - * libitm: [1693]GCC-11.2.0 -- - * libkmod: [1694]Kmod-29 - * liblsan: [1695]GCC-11.2.0 -- - * libltdl: [1696]Libtool-2.4.6 -- - * liblto_plugin: [1697]GCC-11.2.0 -- - * liblzma: [1698]Xz-5.2.5 -- - * libm: [1699]Glibc-2.35 -- - * libmagic: [1700]File-5.41 -- - * libman: [1701]Man-DB-2.10.1 -- - * libmandb: [1702]Man-DB-2.10.1 -- - * libmcheck: [1703]Glibc-2.35 -- - * libmemusage: [1704]Glibc-2.35 -- - * libmenuw: [1705]Ncurses-6.3 -- - * libmount: [1706]Util-linux-2.37.4 -- - * libmpc: [1707]MPC-1.2.1 -- - * libmpfr: [1708]MPFR-4.1.0 -- - * libmvec: [1709]Glibc-2.35 -- - * libncursesw: [1710]Ncurses-6.3 -- - * libnsl: [1711]Glibc-2.35 -- - * libnss_*: [1712]Glibc-2.35 -- - * libopcodes: [1713]Binutils-2.38 -- - * libpanelw: [1714]Ncurses-6.3 -- - * libpcprofile: [1715]Glibc-2.35 -- - * libpipeline: [1716]Libpipeline-1.5.5 - * libprocps: [1717]Procps-ng-3.3.17 -- - * libpsx: [1718]Libcap-2.63 -- - * libpthread: [1719]Glibc-2.35 -- - * libquadmath: [1720]GCC-11.2.0 -- - * libreadline: [1721]Readline-8.1.2 -- - * libresolv: [1722]Glibc-2.35 -- - * librt: [1723]Glibc-2.35 -- - * libsmartcols: [1724]Util-linux-2.37.4 -- - * libss: [1725]E2fsprogs-1.46.5 -- - * libssl.so: [1726]OpenSSL-3.0.1 -- - * libssp: [1727]GCC-11.2.0 -- - * libstdbuf: [1728]Coreutils-9.0 -- - * libstdc++: [1729]GCC-11.2.0 -- - * libstdc++fs: [1730]GCC-11.2.0 -- - * libsubid: [1731]Shadow-4.11.1 -- - * libsupc++: [1732]GCC-11.2.0 -- - * libsystemd: [1733]Systemd-250 -- - * libtcl8.6.so: [1734]Tcl-8.6.12 -- - * libtclstub8.6.a: [1735]Tcl-8.6.12 -- - * libtextstyle: [1736]Gettext-0.21 -- - * libthread_db: [1737]Glibc-2.35 -- - * libtsan: [1738]GCC-11.2.0 -- - * libubsan: [1739]GCC-11.2.0 -- - * libudev: [1740]Systemd-250 -- - * libutil: [1741]Glibc-2.35 -- - * libuuid: [1742]Util-linux-2.37.4 -- - * liby: [1743]Bison-3.8.2 -- - * libz: [1744]Zlib-1.2.11 -- - * libzstd: [1745]Zstd-1.5.2 -- - * preloadable_libintl: [1746]Gettext-0.21 -- - - * clock: - + configuring: [1747]Configurando o relógio do sistema - * console: - + configuring: [1748]Configurando o Console do Linux - * hostname: - + configuring: [1749]Configurando o nome de dispositivo do - sistema - * localnet: - + /etc/hosts: [1750]Personalizando o Arquivo /etc/hosts - * network: - + /etc/hosts: [1751]Personalizando o Arquivo /etc/hosts - + configuring: [1752]Configuração de Rede Geral - * dwp: [1753]Binutils-2.38 -- - - * /boot/config-5.16.9: [1754]Linux-5.16.9 -- - * /boot/System.map-5.16.9: [1755]Linux-5.16.9 -- - * /dev/*: [1756]Preparando Sistemas de Arquivos Virtuais de Kernel - * /etc/fstab: [1757]Criando o Arquivo /etc/fstab - * /etc/group: [1758]Criando Arquivos Essenciais e Links Simbólicos - * /etc/hosts: [1759]Personalizando o Arquivo /etc/hosts - * /etc/inputrc: [1760]Criando o Arquivo /etc/inputrc - * /etc/ld.so.conf: [1761]Configurando o Carregador Dinâmico - * /etc/lfs-release: [1762]O Fim - * /etc/localtime: [1763]Configurando Glibc - * /etc/lsb-release: [1764]O Fim - * /etc/modprobe.d/usb.conf: [1765]Configurando a Ordem de - Carregamento de Módulos do Linux - * /etc/nsswitch.conf: [1766]Configurando Glibc - * /etc/os-release: [1767]O Fim - * /etc/passwd: [1768]Criando Arquivos Essenciais e Links Simbólicos - * /etc/protocols: [1769]Iana-Etc-20220207 - * /etc/resolv.conf: [1770]Criando o Arquivo /etc/resolv.conf - * /etc/services: [1771]Iana-Etc-20220207 - * /etc/vimrc: [1772]Configurando Vim - * /run/utmp: [1773]Criando Arquivos Essenciais e Links Simbólicos - * /usr/include/asm-generic/*.h: [1774]Cabeçalhos da API do - Linux-5.16.9 -- - * /usr/include/asm/*.h: [1775]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/drm/*.h: [1776]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/linux/*.h: [1777]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/misc/*.h: [1778]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/mtd/*.h: [1779]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/rdma/*.h: [1780]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/scsi/*.h: [1781]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/sound/*.h: [1782]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/video/*.h: [1783]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/xen/*.h: [1784]Cabeçalhos da API do Linux-5.16.9 -- - * /var/log/btmp: [1785]Criando Arquivos Essenciais e Links Simbólicos - * /var/log/lastlog: [1786]Criando Arquivos Essenciais e Links - Simbólicos - * /var/log/wtmp: [1787]Criando Arquivos Essenciais e Links Simbólicos - * /etc/locale.conf: [1788]Configurando o Locale do Sistema - * /etc/shells: [1789]Criando o Arquivo /etc/shells - * man pages: [1790]Man-pages-5.13 -- - * Systemd Customization: [1791]Uso e Configuração do Systemd - -Referências - - Ligações visíveis: - 1. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#CC - 2. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#MIT - 3. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pre-foreword - 4. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pre-audience - 5. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pre-architecture - 6. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pre-prerequisites - 7. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pre-standards - 8. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pre-why - 9. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pre-typography - 10. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pre-organization - 11. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pre-errata - 12. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-intro-how - 13. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-intro-whatsnew - 14. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-intro-changelog - 15. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-intro-resources - 16. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-intro-askforhelp - 17. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-introduction - 18. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-hostreqs - 19. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-stages - 20. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-creatingpartition - 21. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-creatingfilesystem - 22. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-aboutlfs - 23. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-mounting - 24. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-materials-introduction - 25. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-materials-packages - 26. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-materials-patches - 27. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-preps-introduction - 28. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-creatingminlayout - 29. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-preps-addinguser - 30. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-preps-settingenviron - 31. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-preps-aboutsbus - 32. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-preps-abouttestsuites - 33. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-part3intro-intro - 34. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-toolchaintechnotes - 35. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-generalinstructions - 36. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-introduction - 37. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-binutils-pass1 - 38. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gcc-pass1 - 39. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers - 40. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-glibc - 41. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-libstdcpp-pass1 - 42. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-introduction-cross - 43. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-m4 - 44. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-ncurses - 45. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-bash - 46. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-coreutils - 47. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-diffutils - 48. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-file - 49. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-findutils - 50. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gawk - 51. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-grep - 52. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gzip - 53. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-make - 54. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-patch - 55. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-sed - 56. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-tar - 57. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-xz - 58. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-binutils-pass2 - 59. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gcc-pass2 - 60. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-introduction-chroot - 61. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-changingowner - 62. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-kernfs - 63. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-chroot - 64. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-creatingdirs - 65. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles - 66. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-libstdcpp-pass2 - 67. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gettext - 68. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-bison - 69. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-perl - 70. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-Python - 71. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-texinfo - 72. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-util-linux - 73. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-cleanup - 74. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-introduction - 75. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-pkgmgt - 76. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-pages - 77. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iana-etc - 78. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc - 79. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zlib - 80. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 81. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz - 82. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zstd - 83. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-file - 84. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-readline - 85. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-m4 - 86. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bc - 87. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-flex - 88. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tcl - 89. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expect - 90. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dejagnu - 91. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils - 92. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gmp - 93. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-mpfr - 94. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-mpc - 95. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-attr - 96. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-acl - 97. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap - 98. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow - 99. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc - 100. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-pkgconfig - 101. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses - 102. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sed - 103. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc - 104. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext - 105. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bison - 106. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grep - 107. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bash - 108. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libtool - 109. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gdbm - 110. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gperf - 111. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expat - 112. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils - 113. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-less - 114. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl - 115. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xml-parser - 116. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-intltool - 117. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 118. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-automake - 119. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-openssl - 120. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod - 121. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libelf - 122. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libffi - 123. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-Python - 124. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ninja - 125. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-meson - 126. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 127. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-check - 128. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-diffutils - 129. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gawk - 130. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-findutils - 131. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff - 132. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub - 133. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip - 134. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 - 135. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd - 136. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libpipeline - 137. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-make - 138. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-patch - 139. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tar - 140. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo - 141. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim - 142. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-markupsafe - 143. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-jinja2 - 144. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd - 145. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dbus - 146. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db - 147. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps - 148. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 149. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs - 150. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-aboutdebug - 151. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-stripping - 152. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-cleanup - 153. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-introduction - 154. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-network - 155. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-udev - 156. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-symlinks - 157. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-clock - 158. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-console - 159. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-locale - 160. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-inputrc - 161. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-shells - 162. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-systemd-custom - 163. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-introduction - 164. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-fstab - 165. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-kernel - 166. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-grub - 167. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-finish-theend - 168. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-finish-getcounted - 169. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-finish-reboot - 170. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-finish-whatnow - 171. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#appendixa - 172. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#appendixb - 173. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#appendixc - 174. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#Licenses - 175. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#CC - 176. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#MIT - 177. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#FDL - 178. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#idm19065 - 179. https://www.linuxfromscratch.org/~thomas/multilib/index.html - 180. http://www.tldp.org/HOWTO/Software-Building-HOWTO.html - 181. http://moi.vonos.net/linux/beginners-installing-from-source/ - 182. http://pubs.opengroup.org/onlinepubs/9699919799/ - 183. http://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html - 184. http://refspecs.linuxfoundation.org/lsb.shtml - 185. https://www.linuxfromscratch.org/ - 186. https://www.linuxfromscratch.org/lfs/errata/11.1-systemd/ - 187. https://www.linuxfromscratch.org/lfs/advisories/ - 188. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-partitioning - 189. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-getting-materials - 190. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-final-preps - 191. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-final-preps - 192. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 193. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 194. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 195. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-chroot-temporary-tools - 196. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-toolchaintechnotes - 197. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 198. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-config - 199. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-bootable - 200. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-finalizing - 201. https://www.linuxfromscratch.org/mirrors.html - 202. https://wiki.linuxfromscratch.org/lfs/ticket/5011 - 203. https://wiki.linuxfromscratch.org/lfs/ticket/5011 - 204. https://wiki.linuxfromscratch.org/lfs/ticket/5010 - 205. https://wiki.linuxfromscratch.org/lfs/ticket/5009 - 206. https://wiki.linuxfromscratch.org/lfs/ticket/5008 - 207. https://wiki.linuxfromscratch.org/lfs/ticket/4500 - 208. https://wiki.linuxfromscratch.org/lfs/ticket/5006 - 209. https://wiki.linuxfromscratch.org/lfs/ticket/5004 - 210. https://wiki.linuxfromscratch.org/lfs/ticket/5005 - 211. https://wiki.linuxfromscratch.org/lfs/ticket/5007 - 212. https://wiki.linuxfromscratch.org/lfs/ticket/4998 - 213. https://wiki.linuxfromscratch.org/lfs/ticket/5002 - 214. https://wiki.linuxfromscratch.org/lfs/ticket/5000 - 215. https://wiki.linuxfromscratch.org/lfs/ticket/5001 - 216. https://wiki.linuxfromscratch.org/lfs/ticket/4992 - 217. https://wiki.linuxfromscratch.org/lfs/ticket/4999 - 218. https://wiki.linuxfromscratch.org/lfs/ticket/4996 - 219. https://wiki.linuxfromscratch.org/lfs/ticket/4995 - 220. https://wiki.linuxfromscratch.org/lfs/ticket/4993 - 221. https://wiki.linuxfromscratch.org/lfs/ticket/4994 - 222. https://wiki.linuxfromscratch.org/lfs/ticket/4991 - 223. https://wiki.linuxfromscratch.org/lfs/ticket/4500 - 224. https://wiki.linuxfromscratch.org/lfs/ticket/4988 - 225. https://wiki.linuxfromscratch.org/lfs/ticket/4989 - 226. https://wiki.linuxfromscratch.org/lfs/ticket/4987 - 227. https://wiki.linuxfromscratch.org/lfs/ticket/4979 - 228. https://wiki.linuxfromscratch.org/lfs/ticket/4990 - 229. https://wiki.linuxfromscratch.org/lfs/ticket/4982 - 230. https://wiki.linuxfromscratch.org/lfs/ticket/4975 - 231. https://wiki.linuxfromscratch.org/lfs/ticket/4984 - 232. https://wiki.linuxfromscratch.org/lfs/ticket/4985 - 233. https://wiki.linuxfromscratch.org/lfs/ticket/4976 - 234. https://wiki.linuxfromscratch.org/lfs/ticket/4980 - 235. https://wiki.linuxfromscratch.org/lfs/ticket/4983 - 236. https://wiki.linuxfromscratch.org/lfs/ticket/4977 - 237. https://wiki.linuxfromscratch.org/lfs/ticket/4978 - 238. https://wiki.linuxfromscratch.org/lfs/ticket/4981 - 239. https://wiki.linuxfromscratch.org/lfs/ticket/4974 - 240. https://wiki.linuxfromscratch.org/lfs/ticket/4972 - 241. https://wiki.linuxfromscratch.org/lfs/ticket/4970 - 242. https://wiki.linuxfromscratch.org/lfs/ticket/4969 - 243. https://wiki.linuxfromscratch.org/lfs/ticket/4967 - 244. https://wiki.linuxfromscratch.org/lfs/ticket/4962 - 245. https://wiki.linuxfromscratch.org/lfs/ticket/4922 - 246. https://wiki.linuxfromscratch.org/lfs/ticket/4914 - 247. https://wiki.linuxfromscratch.org/lfs/ticket/4971 - 248. https://wiki.linuxfromscratch.org/lfs/ticket/4973 - 249. https://wiki.linuxfromscratch.org/lfs/ticket/4863 - 250. https://wiki.linuxfromscratch.org/lfs/ticket/4866 - 251. https://wiki.linuxfromscratch.org/lfs/ticket/4864 - 252. https://wiki.linuxfromscratch.org/lfs/ticket/4865 - 253. https://wiki.linuxfromscratch.org/lfs/ticket/4500 - 254. https://wiki.linuxfromscratch.org/lfs/ticket/4957 - 255. https://wiki.linuxfromscratch.org/lfs/ticket/4959 - 256. https://wiki.linuxfromscratch.org/lfs/ticket/4960 - 257. https://wiki.linuxfromscratch.org/lfs/ticket/4956 - 258. https://wiki.linuxfromscratch.org/lfs/ticket/4955 - 259. https://wiki.linuxfromscratch.org/lfs/ticket/4954 - 260. https://wiki.linuxfromscratch.org/lfs/ticket/4953 - 261. https://wiki.linuxfromscratch.org/lfs/ticket/4952 - 262. https://wiki.linuxfromscratch.org/lfs/ticket/4951 - 263. https://wiki.linuxfromscratch.org/lfs/ticket/4950 - 264. https://wiki.linuxfromscratch.org/lfs/ticket/4949 - 265. https://wiki.linuxfromscratch.org/lfs/ticket/4948 - 266. https://wiki.linuxfromscratch.org/lfs/ticket/4947 - 267. https://wiki.linuxfromscratch.org/lfs/ticket/4946 - 268. https://wiki.linuxfromscratch.org/lfs/ticket/4945 - 269. https://wiki.linuxfromscratch.org/lfs/ticket/4944 - 270. https://wiki.linuxfromscratch.org/lfs/ticket/4943 - 271. https://wiki.linuxfromscratch.org/lfs/ticket/4942 - 272. https://wiki.linuxfromscratch.org/lfs/ticket/4941 - 273. https://wiki.linuxfromscratch.org/lfs/ticket/4940 - 274. https://wiki.linuxfromscratch.org/lfs/ticket/4939 - 275. https://wiki.linuxfromscratch.org/lfs/ticket/4500 - 276. https://wiki.linuxfromscratch.org/lfs/ticket/4934 - 277. https://wiki.linuxfromscratch.org/lfs/ticket/4938 - 278. https://wiki.linuxfromscratch.org/lfs/ticket/4937 - 279. https://wiki.linuxfromscratch.org/lfs/ticket/4932 - 280. https://wiki.linuxfromscratch.org/lfs/ticket/4933 - 281. https://wiki.linuxfromscratch.org/lfs/ticket/4936 - 282. https://wiki.linuxfromscratch.org/lfs/ticket/4935 - 283. https://wiki.linuxfromscratch.org/lfs/ticket/4500 - 284. https://wiki.linuxfromscratch.org/lfs/ticket/4722 - 285. https://wiki.linuxfromscratch.org/lfs/ticket/4929 - 286. https://wiki.linuxfromscratch.org/lfs/ticket/4931 - 287. https://wiki.linuxfromscratch.org/lfs/ticket/4925 - 288. https://wiki.linuxfromscratch.org/lfs/ticket/4926 - 289. https://wiki.linuxfromscratch.org/lfs/ticket/4928 - 290. https://wiki.linuxfromscratch.org/lfs/ticket/4930 - 291. https://wiki.linuxfromscratch.org/lfs/ticket/4923 - 292. https://wiki.linuxfromscratch.org/lfs/ticket/4916 - 293. https://wiki.linuxfromscratch.org/lfs/ticket/4913 - 294. https://wiki.linuxfromscratch.org/lfs/ticket/4912 - 295. https://wiki.linuxfromscratch.org/lfs/ticket/4917 - 296. https://wiki.linuxfromscratch.org/lfs/ticket/4918 - 297. https://wiki.linuxfromscratch.org/lfs/ticket/4920 - 298. https://wiki.linuxfromscratch.org/lfs/ticket/4919 - 299. https://wiki.linuxfromscratch.org/lfs/ticket/4921 - 300. https://wiki.linuxfromscratch.org/lfs/ticket/4908 - 301. https://www.linuxfromscratch.org/faq/ - 302. https://www.linuxfromscratch.org/search.html - 303. https://www.linuxfromscratch.org/mail.html - 304. https://www.linuxfromscratch.org/mirrors.html - 305. https://www.linuxfromscratch.org/faq/#generalfaq - 306. https://www.linuxfromscratch.org/hints/downloads/files/errors.txt - 307. https://www.linuxfromscratch.org/search.html - 308. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-intro-resources - 309. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#version-check - 310. http://catb.org/~esr/faqs/smart-questions.html - 311. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 312. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 313. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-bootable - 314. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-generalinstructions - 315. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-bindmount - 316. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-kernfsmount - 317. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/raid.html - 318. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/aboutlvm.html - 319. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/initramfs.html - 320. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-fstab - 321. http://en.wikipedia.org/wiki/Comparison_of_file_systems - 322. http://www.google.com/ - 323. https://www.linuxfromscratch.org/lfs/mirrors.html#files - 324. https://www.linuxfromscratch.org/mirrors.html#files - 325. file:///tmp/1/wget-list - 326. file:///tmp/1/md5sums - 327. https://savannah.nongnu.org/projects/acl - 328. https://download.savannah.gnu.org/releases/acl/acl-2.3.1.tar.xz - 329. https://savannah.nongnu.org/projects/attr - 330. https://download.savannah.gnu.org/releases/attr/attr-2.5.1.tar.gz - 331. https://www.gnu.org/software/autoconf/ - 332. https://ftp.gnu.org/gnu/autoconf/autoconf-2.71.tar.xz - 333. https://www.gnu.org/software/automake/ - 334. https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.xz - 335. https://www.gnu.org/software/bash/ - 336. https://ftp.gnu.org/gnu/bash/bash-5.1.16.tar.gz - 337. https://git.yzena.com/gavin/bc - 338. https://github.com/gavinhoward/bc/releases/download/5.2.2/bc-5.2.2.tar.xz - 339. https://www.gnu.org/software/binutils/ - 340. https://ftp.gnu.org/gnu/binutils/binutils-2.38.tar.xz - 341. https://www.gnu.org/software/bison/ - 342. https://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.xz - 343. https://www.sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz - 344. https://libcheck.github.io/check - 345. https://github.com/libcheck/check/releases/download/0.15.2/check-0.15.2.tar.gz - 346. https://www.gnu.org/software/coreutils/ - 347. https://ftp.gnu.org/gnu/coreutils/coreutils-9.0.tar.xz - 348. https://www.freedesktop.org/wiki/Software/dbus - 349. https://dbus.freedesktop.org/releases/dbus/dbus-1.12.20.tar.gz - 350. https://www.gnu.org/software/dejagnu/ - 351. https://ftp.gnu.org/gnu/dejagnu/dejagnu-1.6.3.tar.gz - 352. https://www.gnu.org/software/diffutils/ - 353. https://ftp.gnu.org/gnu/diffutils/diffutils-3.8.tar.xz - 354. http://e2fsprogs.sourceforge.net/ - 355. https://downloads.sourceforge.net/project/e2fsprogs/e2fsprogs/v1.46.5/e2fsprogs-1.46.5.tar.gz - 356. https://sourceware.org/elfutils/ - 357. https://sourceware.org/ftp/elfutils/0.186/elfutils-0.186.tar.bz2 - 358. https://libexpat.github.io/ - 359. https://prdownloads.sourceforge.net/expat/expat-2.4.6.tar.xz - 360. https://www.linuxfromscratch.org/lfs/advisories/ - 361. https://core.tcl.tk/expect/ - 362. https://prdownloads.sourceforge.net/expect/expect5.45.4.tar.gz - 363. https://www.darwinsys.com/file/ - 364. https://astron.com/pub/file/file-5.41.tar.gz - 365. https://www.gnu.org/software/findutils/ - 366. https://ftp.gnu.org/gnu/findutils/findutils-4.9.0.tar.xz - 367. https://github.com/westes/flex - 368. https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz - 369. https://www.gnu.org/software/gawk/ - 370. https://ftp.gnu.org/gnu/gawk/gawk-5.1.1.tar.xz - 371. https://gcc.gnu.org/ - 372. https://ftp.gnu.org/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.xz - 373. https://www.gnu.org/software/gdbm/ - 374. https://ftp.gnu.org/gnu/gdbm/gdbm-1.23.tar.gz - 375. https://www.gnu.org/software/gettext/ - 376. https://ftp.gnu.org/gnu/gettext/gettext-0.21.tar.xz - 377. https://www.gnu.org/software/libc/ - 378. https://ftp.gnu.org/gnu/glibc/glibc-2.35.tar.xz - 379. https://www.gnu.org/software/gmp/ - 380. https://ftp.gnu.org/gnu/gmp/gmp-6.2.1.tar.xz - 381. https://www.gnu.org/software/gperf/ - 382. https://ftp.gnu.org/gnu/gperf/gperf-3.1.tar.gz - 383. https://www.gnu.org/software/grep/ - 384. https://ftp.gnu.org/gnu/grep/grep-3.7.tar.xz - 385. https://www.gnu.org/software/groff/ - 386. https://ftp.gnu.org/gnu/groff/groff-1.22.4.tar.gz - 387. https://www.gnu.org/software/grub/ - 388. https://ftp.gnu.org/gnu/grub/grub-2.06.tar.xz - 389. https://www.gnu.org/software/gzip/ - 390. https://ftp.gnu.org/gnu/gzip/gzip-1.11.tar.xz - 391. https://www.iana.org/protocols - 392. https://github.com/Mic92/iana-etc/releases/download/20220207/iana-etc-20220207.tar.gz - 393. https://www.gnu.org/software/inetutils/ - 394. https://ftp.gnu.org/gnu/inetutils/inetutils-2.2.tar.xz - 395. https://freedesktop.org/wiki/Software/intltool - 396. https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz - 397. https://www.kernel.org/pub/linux/utils/net/iproute2/ - 398. https://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-5.16.0.tar.xz - 399. https://jinja.palletsprojects.com/en/3.0.x/ - 400. https://files.pythonhosted.org/packages/source/J/Jinja2/Jinja2-3.0.3.tar.gz - 401. https://kbd-project.org/ - 402. https://www.kernel.org/pub/linux/utils/kbd/kbd-2.4.0.tar.xz - 403. https://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-29.tar.xz - 404. https://www.greenwoodsoftware.com/less/ - 405. https://www.greenwoodsoftware.com/less/less-590.tar.gz - 406. https://sites.google.com/site/fullycapable/ - 407. https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-2.63.tar.xz - 408. https://sourceware.org/libffi/ - 409. https://github.com/libffi/libffi/releases/download/v3.4.2/libffi-3.4.2.tar.gz - 410. http://libpipeline.nongnu.org/ - 411. https://download.savannah.gnu.org/releases/libpipeline/libpipeline-1.5.5.tar.gz - 412. https://www.gnu.org/software/libtool/ - 413. https://ftp.gnu.org/gnu/libtool/libtool-2.4.6.tar.xz - 414. https://www.kernel.org/ - 415. https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.16.9.tar.xz - 416. https://www.gnu.org/software/m4/ - 417. https://ftp.gnu.org/gnu/m4/m4-1.4.19.tar.xz - 418. https://www.gnu.org/software/make/ - 419. https://ftp.gnu.org/gnu/make/make-4.3.tar.gz - 420. https://www.nongnu.org/man-db/ - 421. https://download.savannah.gnu.org/releases/man-db/man-db-2.10.1.tar.xz - 422. https://www.kernel.org/doc/man-pages/ - 423. https://www.kernel.org/pub/linux/docs/man-pages/man-pages-5.13.tar.xz - 424. https://markupsafe.palletsprojects.com/en/2.0.x/ - 425. https://files.pythonhosted.org/packages/source/M/MarkupSafe/MarkupSafe-2.0.1.tar.gz - 426. https://mesonbuild.com/ - 427. https://github.com/mesonbuild/meson/releases/download/0.61.1/meson-0.61.1.tar.gz - 428. http://www.multiprecision.org/ - 429. https://ftp.gnu.org/gnu/mpc/mpc-1.2.1.tar.gz - 430. https://www.mpfr.org/ - 431. https://www.mpfr.org/mpfr-4.1.0/mpfr-4.1.0.tar.xz - 432. https://www.gnu.org/software/ncurses/ - 433. https://invisible-mirror.net/archives/ncurses/ncurses-6.3.tar.gz - 434. https://ninja-build.org/ - 435. https://github.com/ninja-build/ninja/archive/v1.10.2/ninja-1.10.2.tar.gz - 436. https://www.openssl.org/ - 437. https://www.openssl.org/source/openssl-3.0.1.tar.gz - 438. https://savannah.gnu.org/projects/patch/ - 439. https://ftp.gnu.org/gnu/patch/patch-2.7.6.tar.xz - 440. https://www.perl.org/ - 441. https://www.cpan.org/src/5.0/perl-5.34.0.tar.xz - 442. https://www.freedesktop.org/wiki/Software/pkg-config - 443. https://pkg-config.freedesktop.org/releases/pkg-config-0.29.2.tar.gz - 444. https://sourceforge.net/projects/procps-ng - 445. https://sourceforge.net/projects/procps-ng/files/Production/procps-ng-3.3.17.tar.xz - 446. https://gitlab.com/psmisc/psmisc - 447. https://sourceforge.net/projects/psmisc/files/psmisc/psmisc-23.4.tar.xz - 448. https://www.python.org/ - 449. https://www.python.org/ftp/python/3.10.2/Python-3.10.2.tar.xz - 450. https://www.python.org/ftp/python/doc/3.10.2/python-3.10.2-docs-html.tar.bz2 - 451. https://tiswww.case.edu/php/chet/readline/rltop.html - 452. https://ftp.gnu.org/gnu/readline/readline-8.1.2.tar.gz - 453. https://www.gnu.org/software/sed/ - 454. https://ftp.gnu.org/gnu/sed/sed-4.8.tar.xz - 455. https://shadow-maint.github.io/shadow/ - 456. https://github.com/shadow-maint/shadow/releases/download/v4.11.1/shadow-4.11.1.tar.xz - 457. https://www.freedesktop.org/wiki/Software/systemd/ - 458. https://github.com/systemd/systemd/archive/v250/systemd-250.tar.gz - 459. https://www.freedesktop.org/wiki/Software/systemd/ - 460. https://anduin.linuxfromscratch.org/LFS/systemd-man-pages-250.tar.xz - 461. https://www.gnu.org/software/tar/ - 462. https://ftp.gnu.org/gnu/tar/tar-1.34.tar.xz - 463. http://tcl.sourceforge.net/ - 464. https://downloads.sourceforge.net/tcl/tcl8.6.12-src.tar.gz - 465. https://downloads.sourceforge.net/tcl/tcl8.6.12-html.tar.gz - 466. https://www.gnu.org/software/texinfo/ - 467. https://ftp.gnu.org/gnu/texinfo/texinfo-6.8.tar.xz - 468. https://www.iana.org/time-zones - 469. https://www.iana.org/time-zones/repository/releases/tzdata2021e.tar.gz - 470. https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/ - 471. https://www.kernel.org/pub/linux/utils/util-linux/v2.37/util-linux-2.37.4.tar.xz - 472. https://www.vim.org/ - 473. https://anduin.linuxfromscratch.org/LFS/vim-8.2.4383.tar.gz - 474. https://github.com/vim/vim/releases - 475. https://github.com/chorny/XML-Parser - 476. https://cpan.metacpan.org/authors/id/T/TO/TODDR/XML-Parser-2.46.tar.gz - 477. https://tukaani.org/xz - 478. https://tukaani.org/xz/xz-5.2.5.tar.xz - 479. https://www.zlib.net/ - 480. https://zlib.net/zlib-1.2.11.tar.xz - 481. https://facebook.github.io/zstd/ - 482. https://github.com/facebook/zstd/releases/download/v1.5.2/zstd-1.5.2.tar.gz - 483. https://www.linuxfromscratch.org/patches/lfs/11.1/binutils-2.38-lto_fix-1.patch - 484. https://www.linuxfromscratch.org/patches/lfs/11.1/bzip2-1.0.8-install_docs-1.patch - 485. https://www.linuxfromscratch.org/patches/lfs/11.1/coreutils-9.0-i18n-1.patch - 486. https://www.linuxfromscratch.org/patches/lfs/11.1/coreutils-9.0-chmod_fix-1.patch - 487. https://www.linuxfromscratch.org/patches/lfs/11.1/glibc-2.35-fhs-1.patch - 488. https://www.linuxfromscratch.org/patches/lfs/11.1/kbd-2.4.0-backspace-1.patch - 489. https://www.linuxfromscratch.org/patches/lfs/11.1/perl-5.34.0-upstream_fixes-1.patch - 490. https://www.linuxfromscratch.org/patches/lfs/11.1/systemd-250-upstream_fixes-1.patch - 491. https://www.linuxfromscratch.org/patches/downloads/ - 492. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 493. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 494. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 495. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 496. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-toolchaintechnotes - 497. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-toolchaintechnotes - 498. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 499. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 500. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 501. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 502. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-chroot-temporary-tools - 503. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bash - 504. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 505. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 506. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 507. https://www.linuxfromscratch.org/lfs/faq.html#no-ptys - 508. https://www.linuxfromscratch.org/lfs/build-logs/11.1/ - 509. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 510. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 511. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 512. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 513. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 514. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-chroot-temporary-tools - 515. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 516. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-hostreqs - 517. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 518. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 519. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-generalinstructions - 520. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-binutils - 521. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#buildinstr - 522. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-gcc - 523. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-chroot - 524. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-glibc - 525. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gcc-pass1 - 526. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-gcc - 527. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-preps-settingenviron - 528. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-m4 - 529. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 530. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-ncurses - 531. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-bash - 532. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-coreutils - 533. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-diffutils - 534. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-file - 535. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-findutils - 536. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-gawk - 537. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-grep - 538. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-gzip - 539. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-make - 540. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-patch - 541. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-sed - 542. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-tar - 543. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-xz - 544. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-binutils - 545. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-gcc - 546. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-chroot - 547. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-bindmount - 548. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-kernfsmount - 549. https://refspecs.linuxfoundation.org/fhs.shtml - 550. http://refspecs.linuxfoundation.org/lsb.shtml - 551. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 552. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gcc-pass2 - 553. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-gcc - 554. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-gettext - 555. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-bison - 556. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-perl - 557. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 558. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-python - 559. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-texinfo - 560. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-utillinux - 561. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 562. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-aboutlfs - 563. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-kernfs - 564. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-chroot - 565. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 566. https://www.linuxfromscratch.org/blfs/view/stable-systemd/introduction/libraries.html - 567. https://www.linuxfromscratch.org/hints/downloads/files/ - 568. http://refspecs.linuxfoundation.org/lsb.shtml - 569. https://www.linuxfromscratch.org/hints/downloads/files/fakeroot.txt - 570. http://www.slackbook.org/html/package-management.html - 571. https://www.linuxfromscratch.org/hints/downloads/files/ - 572. https://www.linuxfromscratch.org/hints/downloads/files/more_control_and_pkg_man.txt - 573. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-grub - 574. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/libidn2.html - 575. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/cracklib.html - 576. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-pages - 577. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles - 578. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/gcc.html - 579. https://www.linuxfromscratch.org/lfs/build-logs/11.1/ - 580. https://gcc.gnu.org/ml/gcc-testresults/ - 581. https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s09.html - 582. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pkgmgmt-upgrade-issues - 583. https://gcc.gnu.org/onlinedocs/gcc-11.2.0/gcc/x86-Options.html - 584. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/grub-efi.html - 585. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-grub - 586. https://www.linuxfromscratch.org/blfs/view/stable-systemd/server/db.html - 587. http://www.skbuff.net/iputils/ - 588. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/editors.html - 589. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/vim.html - 590. ftp://ftp.vim.org/pub/vim/runtime/spell/ - 591. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/dbus.html - 592. https://www.linuxfromscratch.org/blfs/view/stable-systemd//general/valgrind.html - 593. https://www.linuxfromscratch.org/blfs/view/stable-systemd//general/gdb.html - 594. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pkgmgmt-upgrade-issues - 595. https://www.linuxfromscratch.org/blfs/view/stable-systemd/introduction/la-files.html - 596. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 597. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-chroot-temporary-tools - 598. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-network - 599. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-hostname - 600. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-hosts - 601. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-udev - 602. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-symlinks - 603. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-clock - 604. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-console - 605. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-locale - 606. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-inputrc - 607. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-systemd-custom - 608. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd - 609. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 610. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-symlinks - 611. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-network - 612. http://www.kroah.com/linux/talks/ols_2003_udev_paper/Reprint-Kroah-Hartman-OLS2003.pdf - 613. http://www.kernel.org/pub/linux/kernel/people/mochel/doc/papers/ols-2005/mochel.pdf - 614. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-udev - 615. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-network - 616. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/devices.html - 617. http://www.tldp.org/HOWTO/HOWTO-INDEX/other-lang.html - 618. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/gdb.html - 619. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/hdparm.html - 620. https://www.linuxfromscratch.org/hints/downloads/files/kernel-configuration.txt - 621. https://www.linuxfromscratch.org/blfs/view/stable-systemd/longindex.html#kernel-config-index - 622. http://www.kroah.com/lkn/ - 623. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/grub-setup.html#uefi-kernel - 624. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-udev - 625. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers - 626. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/grub-setup.html - 627. https://www.linuxfromscratch.org/blfs/view/stable-systemd/multimedia/libisoburn.html - 628. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 629. https://www.linuxfromscratch.org/cgi-bin/lfscounter.php - 630. https://www.linuxfromscratch.org/blfs/view/stable-systemd/basicnet/lynx.html - 631. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/make-ca.html - 632. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/gpm.html - 633. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/sudo.html - 634. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/openssh.html - 635. https://www.linuxfromscratch.org/blfs/view/stable-systemd/basicnet/wget.html - 636. https://www.linuxfromscratch.org/blfs/view/stable-systemd/basicnet/wpa_supplicant.html - 637. http://www.cert.org/ - 638. http://www.us-cert.gov/cas/signup.html - 639. http://www.securityfocus.com/archive - 640. https://www.linuxfromscratch.org/blfs/view/stable-systemd/ - 641. https://www.linuxfromscratch.org/hints/downloads/files/ - 642. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-intro-maillists - 643. http://www.tldp.org/ - 644. mailto:gerard@linuxfromscratch.org - 645. mailto:bdubbs@linuxfromscratch.org - 646. mailto:jim@linuxfromscratch.org - 647. mailto:pierre@linuxfromscratch.org - 648. mailto:dj@linuxfromscratch.org - 649. mailto:ken@linuxfromscratch.org - 650. mailto:macana@macana-es.com - 651. mailto:johan@linuxfromscratch.org - 652. mailto:jmengual@linuxfromscratch.org - 653. mailto:jlepiller@linuxfromscratch.org - 654. mailto:lizardo@linuxfromscratch.org - 655. mailto:tr@erdfunkstelle.de - 656. mailto:info@linuxfromscratch.org.ru - 657. mailto:helen@linuxfromscratch.org.ru - 658. mailto:scott@osuosl.org - 659. mailto:lost@l-w.net - 660. mailto:eujon.sellers@gmail.com - 661. mailto:justin@knierim.org - 662. mailto:manuel@linuxfromscratch.org - 663. mailto:lfalcon@thymbra.com - 664. mailto:guido@primerelay.net - 665. mailto:baafie@planet.nl - 666. mailto:sven.cranshoff@lineo.be - 667. mailto:info@aliensoft.org - 668. mailto:stuart@dontuse.ms - 669. mailto:admin@realhost.de - 670. mailto:Antonin.Sprinzl@tuwien.ac.at - 671. mailto:fredan-lfs@fredan.org - 672. mailto:franck@linuxpourtous.com - 673. mailto:baque@cict.fr - 674. mailto:gyouja@pilgrims.ru - 675. mailto:kontakt@wankoo.org - 676. mailto:info@linuxfromscratch.org.ru - 677. mailto:satit@wbac.ac.th - 678. mailto:info@shizu-net.jp - 679. http://www.initworld.com/ - 680. mailto:jason@dstc.edu.au - 681. mailto:theladyskye@linuxfromscratch.org - 682. mailto:matthew@linuxfromscratch.org - 683. mailto:nathan@linuxfromscratch.org - 684. mailto:jeroen@linuxfromscratch.org - 685. mailto:manuel@linuxfromscratch.org - 686. mailto:jhuntwork@linuxfromscratch.org - 687. mailto:bryan@linuxfromscratch.org - 688. mailto:nicholas@linuxfromscratch.org - 689. mailto:lizardo@linuxfromscratch.org - 690. mailto:randy@linuxfromscratch.org - 691. mailto:dnicholson@linuxfromscratch.org - 692. mailto:alexander@linuxfromscratch.org - 693. mailto:scot@linuxfromscratch.org - 694. mailto:renodr@linuxfromscratch.org - 695. mailto:ryan@linuxfromscratch.org - 696. mailto:gschafer@zip.com.au - 697. mailto:jwrober@linuxfromscratch.org - 698. mailto:tushar@linuxfromscratch.org - 699. mailto:jeremy@linuxfromscratch.org - 700. mailto:zwinkles@gmail.com - 701. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/emacs.html - 702. https://www.linuxfromscratch.org/blfs/view/stable-systemd/x/installing.html - 703. https://sourceware.org/elfutils/ - 704. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/doxygen.html - 705. https://metacpan.org/pod/Expect - 706. https://metacpan.org/pod/IO::Tty - 707. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/tk.html - 708. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/libseccomp.html - 709. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/libsigsegv.html - 710. http://gcc.gnu.org/wiki/GNAT - 711. https://repo.or.cz/isl.git - 712. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/pcre.html - 713. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/libsigsegv.html - 714. https://www.linuxfromscratch.org/blfs/view/stable-systemd/pst/gs.html - 715. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/uchardet.html - 716. https://www.linuxfromscratch.org/blfs/view/stable-systemd/server/db.html - 717. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/iptables.html - 718. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/pcre.html - 719. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/linux-pam.html - 720. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/cpio.html - 721. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/libsigsegv.html - 722. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/guile.html - 723. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/libseccomp.html - 724. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/asciidoc.html - 725. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/doxygen.html - 726. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/emacs.html - 727. https://re2c.org/ - 728. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/ed.html - 729. https://www.linuxfromscratch.org/blfs/view/stable-systemd/server/db.html - 730. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/glib2.html - 731. https://www.linuxfromscratch.org/blfs/view/stable-systemd/server/db.html - 732. https://www.linuxfromscratch.org/blfs/view/stable-systemd/basicnet/libnsl.html - 733. https://www.linuxfromscratch.org/blfs/view/stable-systemd/server/sqlite.html - 734. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/tk.html - 735. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/cracklib.html - 736. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/linux-pam.html - 737. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/btrfs-progs.html - 738. https://www.linuxfromscratch.org/blfs/view/stable-systemd/basicnet/curl.html - 739. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/cryptsetup.html - 740. https://www.linuxfromscratch.org/blfs/view/stable-systemd/pst/docbook.html - 741. https://www.linuxfromscratch.org/blfs/view/stable-systemd/pst/docbook-xsl.html - 742. https://sourceware.org/elfutils/ - 743. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/git.html - 744. https://sourceforge.net/projects/gnu-efi/ - 745. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/gnutls.html - 746. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/iptables.html - 747. https://www.kernel.org/pub/linux/utils/kernel/kexec/ - 748. https://developers.yubico.com/libfido2/ - 749. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/libgcrypt.html - 750. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/libidn2.html - 751. https://www.gnu.org/software/libmicrohttpd/ - 752. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/libpwquality.html - 753. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/libseccomp.html - 754. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/libxkbcommon.html - 755. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/libxslt.html - 756. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/linux-pam.html - 757. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/python-modules.html#lxml - 758. http://lz4.github.io/lz4/ - 759. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/make-ca.html - 760. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/p11-kit.html - 761. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/pcre2.html - 762. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/polkit.html - 763. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/qemu.html - 764. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/qrencode.html - 765. https://sourceforge.net/projects/linuxquota/ - 766. https://www.linuxfromscratch.org/blfs/view/stable-systemd/basicnet/rsync.html - 767. https://pypi.python.org/pypi/Sphinx - 768. https://tpm2-tss.readthedocs.io/en/latest/ - 769. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/valgrind.html - 770. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/zsh.html - 771. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/linux-pam.html - 772. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/smartmontools.html - 773. https://www.linuxfromscratch.org/blfs/view/stable-systemd/x/installing.html - 774. https://www.linuxfromscratch.org/blfs/view/stable-systemd/x/gtk2.html - 775. http://lesstif.sourceforge.net/ - 776. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/ruby.html - 777. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/gpm.html - 778. http://lz4.github.io/lz4/ - 779. http://creativecommons.org/ - 780. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-acl - 781. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-attr - 782. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 783. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-automake - 784. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bash - 785. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-bash - 786. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bc - 787. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils - 788. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-binutils-pass1 - 789. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-binutils-pass2 - 790. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bison - 791. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-bison - 792. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 793. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-check - 794. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 795. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-coreutils - 796. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dbus - 797. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dejagnu - 798. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-diffutils - 799. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-diffutils - 800. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs - 801. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expat - 802. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expect - 803. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-file - 804. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-file - 805. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-findutils - 806. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-findutils - 807. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-flex - 808. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gawk - 809. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gawk - 810. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc - 811. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-libstdcpp-pass1 - 812. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-libstdcpp-pass2 - 813. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gcc-pass1 - 814. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gcc-pass2 - 815. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gdbm - 816. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext - 817. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gettext - 818. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc - 819. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-glibc - 820. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gmp - 821. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gperf - 822. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grep - 823. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-grep - 824. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff - 825. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub - 826. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip - 827. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gzip - 828. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iana-etc - 829. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils - 830. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-intltool - 831. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 - 832. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-jinja2 - 833. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd - 834. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod - 835. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-less - 836. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap - 837. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libelf - 838. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libffi - 839. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libpipeline - 840. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libtool - 841. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-kernel - 842. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers - 843. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-m4 - 844. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-m4 - 845. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-make - 846. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-make - 847. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db - 848. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-pages - 849. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-markupsafe - 850. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-meson - 851. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-mpc - 852. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-mpfr - 853. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses - 854. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-ncurses - 855. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ninja - 856. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-openssl - 857. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-patch - 858. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-patch - 859. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl - 860. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-perl - 861. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-pkgconfig - 862. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps - 863. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc - 864. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-Python - 865. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-Python - 866. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-readline - 867. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sed - 868. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-sed - 869. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow - 870. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#conf-shadow - 871. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd - 872. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tar - 873. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-tar - 874. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tcl - 875. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo - 876. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-texinfo - 877. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-udev - 878. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 879. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-util-linux - 880. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim - 881. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xml-parser - 882. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz - 883. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-xz - 884. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zlib - 885. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zstd - 886. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 887. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-Python - 888. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db - 889. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-automake - 890. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-automake - 891. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff - 892. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 893. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils - 894. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff - 895. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 896. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db - 897. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils - 898. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils - 899. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-attr - 900. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 901. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 902. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 903. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-automake - 904. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-automake - 905. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext - 906. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 907. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 908. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 909. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gawk - 910. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 911. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs - 912. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 913. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 914. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 915. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bash - 916. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bash - 917. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bc - 918. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bison - 919. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 920. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 921. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 922. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 923. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 - 924. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 925. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd - 926. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 927. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 928. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 929. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 930. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 931. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 932. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 933. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 934. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 935. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 936. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc - 937. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils - 938. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 939. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap - 940. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses - 941. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 942. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db - 943. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc - 944. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 945. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-acl - 946. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow - 947. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs - 948. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 949. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 950. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-check - 951. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff - 952. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow - 953. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow - 954. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 955. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 956. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 957. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 958. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 959. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow - 960. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 961. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 962. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow - 963. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd - 964. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 965. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses - 966. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-diffutils - 967. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 968. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 969. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 970. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 971. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 972. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs - 973. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd - 974. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl - 975. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 976. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl - 977. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc - 978. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 979. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 980. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 - 981. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 982. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-openssl - 983. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 984. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dbus - 985. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dbus - 986. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dbus - 987. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dbus - 988. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dbus - 989. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dbus - 990. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dbus - 991. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dbus - 992. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dbus - 993. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bc - 994. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 995. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd - 996. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs - 997. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dejagnu - 998. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 999. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1000. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1001. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-diffutils -1002. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-diffutils -1003. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1004. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1005. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1006. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1007. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1008. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1009. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1010. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1011. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1012. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1013. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1014. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1015. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1016. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1017. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1018. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1019. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1020. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1021. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1022. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grep -1023. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1024. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1025. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1026. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1027. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1028. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1029. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1030. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1031. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1032. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1033. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expect -1034. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1035. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1036. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1037. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1038. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1039. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1040. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1041. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1042. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grep -1043. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-file -1044. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1045. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1046. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-findutils -1047. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1048. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1049. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-flex -1050. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-flex -1051. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1052. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1053. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1054. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1055. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1056. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1057. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1058. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1059. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1060. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1061. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1062. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1063. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1064. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc -1065. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1066. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gawk -1067. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gawk -1068. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1069. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1070. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1071. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1072. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1073. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1074. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1075. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gdbm -1076. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gdbm -1077. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gdbm -1078. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1079. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1080. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1081. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap -1082. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1083. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1084. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-acl -1085. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-attr -1086. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1087. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1088. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap -1089. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1090. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1091. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1092. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1093. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1094. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1095. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gperf -1096. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1097. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1098. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1099. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1100. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grep -1101. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1102. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1103. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1104. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1105. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1106. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1107. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1108. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1109. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1110. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1111. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1112. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1113. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1114. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1115. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1116. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1117. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1118. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1119. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1120. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1121. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1122. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1123. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1124. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1125. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1126. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1127. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1128. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1129. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1130. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1131. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1132. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1133. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1134. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1135. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1136. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1137. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1138. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1139. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1140. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1141. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1142. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1143. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1144. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1145. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1146. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1147. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1148. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1149. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1150. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1151. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1152. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1153. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1154. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1155. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1156. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1157. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1158. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1159. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1160. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1161. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-Python -1162. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1163. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1164. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf -1165. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1166. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1167. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1168. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1169. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1170. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1171. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1172. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1173. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1174. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1175. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-intltool -1176. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-intltool -1177. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-intltool -1178. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-intltool -1179. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-intltool -1180. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1181. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1182. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1183. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1184. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1185. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1186. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1187. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1188. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1189. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1190. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1191. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1192. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1193. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1194. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1195. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc -1196. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1197. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1198. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1199. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1200. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1201. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1202. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1203. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1204. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1205. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1206. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1207. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-less -1208. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-less -1209. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-less -1210. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-flex -1211. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1212. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-kernel -1213. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1214. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1215. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1216. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1217. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libtool -1218. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libtool -1219. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1220. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1221. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1222. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1223. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1224. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1225. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1226. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1227. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1228. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1229. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1230. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-findutils -1231. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1232. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1233. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1234. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1235. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1236. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1237. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1238. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1239. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1240. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1241. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1242. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1243. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1244. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1245. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1246. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1247. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1248. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1249. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1250. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1251. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1252. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1253. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1254. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1255. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1256. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1257. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1258. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1259. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1260. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1261. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1262. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1263. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-m4 -1264. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1265. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-make -1266. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1267. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1268. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1269. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1270. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1271. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1272. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1273. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1274. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1275. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1276. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-meson -1277. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1278. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1279. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1280. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1281. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1282. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1283. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1284. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1285. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1286. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1287. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1288. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1289. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1290. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1291. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1292. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1293. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1294. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1295. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1296. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1297. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1298. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1299. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1300. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1301. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1302. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1303. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1304. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1305. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1306. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1307. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1308. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1309. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1310. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1311. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1312. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1313. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1314. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1315. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1316. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1317. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1318. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1319. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1320. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1321. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1322. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1323. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1324. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ninja -1325. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1326. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1327. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1328. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1329. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1330. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1331. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1332. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1333. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1334. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1335. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1336. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1337. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1338. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1339. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-openssl -1340. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1341. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1342. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1343. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1344. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-patch -1345. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1346. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1347. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1348. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1349. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1350. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc -1351. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1352. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1353. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1354. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1355. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1356. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1357. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1358. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1359. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1360. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1361. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1362. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1363. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1364. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1365. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1366. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-Python -1367. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1368. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-pkgconfig -1369. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1370. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1371. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1372. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1373. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1374. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1375. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1376. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1377. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1378. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1379. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1380. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1381. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1382. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1383. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1384. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1385. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1386. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1387. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1388. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1389. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1390. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc -1391. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1392. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1393. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1394. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1395. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1396. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc -1397. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc -1398. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc -1399. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1400. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1401. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1402. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1403. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1404. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1405. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1406. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1407. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1408. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1409. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-Python -1410. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-Python -1411. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1412. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1413. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1414. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1415. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1416. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1417. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1418. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1419. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1420. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1421. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1422. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1423. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1424. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1425. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1426. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1427. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1428. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1429. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1430. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1431. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1432. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1433. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1434. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1435. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1436. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1437. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1438. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1439. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1440. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1441. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1442. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1443. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1444. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1445. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1446. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dejagnu -1447. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1448. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1449. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1450. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1451. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1452. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-diffutils -1453. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sed -1454. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1455. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1456. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap -1457. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-acl -1458. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-attr -1459. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1460. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1461. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1462. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1463. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1464. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1465. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1466. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1467. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1468. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bash -1469. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1470. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1471. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1472. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1473. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1474. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1475. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1476. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1477. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1478. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1479. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1480. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1481. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1482. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1483. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1484. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1485. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1486. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1487. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1488. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1489. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1490. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1491. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1492. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1493. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1494. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1495. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1496. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1497. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1498. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1499. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1500. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1501. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1502. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1503. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1504. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1505. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1506. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1507. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1508. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1509. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1510. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1511. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1512. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1513. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1514. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1515. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1516. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1517. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1518. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1519. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1520. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1521. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1522. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1523. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1524. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1525. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1526. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1527. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1528. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1529. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1530. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1531. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1532. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1533. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1534. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1535. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1536. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tar -1537. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1538. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1539. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1540. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tcl -1541. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tcl -1542. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1543. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1544. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1545. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1546. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1547. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1548. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1549. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1550. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1551. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1552. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1553. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1554. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1555. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1556. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1557. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1558. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1559. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1560. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1561. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1562. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1563. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1564. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1565. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1566. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1567. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1568. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1569. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1570. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1571. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1572. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1573. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1574. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1575. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1576. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1577. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1578. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1579. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1580. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1581. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1582. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1583. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1584. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1585. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-findutils -1586. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1587. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1588. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1589. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1590. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1591. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1592. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1593. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1594. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1595. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1596. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1597. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1598. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1599. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1600. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1601. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1602. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1603. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1604. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1605. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1606. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1607. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1608. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1609. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1610. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1611. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1612. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1613. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1614. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1615. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-findutils -1616. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1617. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expat -1618. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1619. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1620. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1621. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1622. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1623. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1624. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1625. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1626. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1627. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1628. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1629. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1630. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1631. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bison -1632. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1633. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1634. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1635. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1636. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1637. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1638. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1639. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1640. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1641. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1642. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1643. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1644. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1645. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1646. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1647. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zstd -1648. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zstd -1649. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zstd -1650. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xml-parser -1651. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1652. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-acl -1653. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1654. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1655. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-attr -1656. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1657. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1658. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1659. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 -1660. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1661. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap -1662. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-check -1663. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1664. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1665. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-openssl -1666. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1667. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1668. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1669. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1670. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dbus -1671. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1672. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1673. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libelf -1674. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expat -1675. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expect -1676. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1677. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1678. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libffi -1679. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-flex -1680. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1681. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1682. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1683. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1684. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gdbm -1685. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gdbm -1686. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1687. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1688. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1689. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gmp -1690. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gmp -1691. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1692. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-readline -1693. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1694. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1695. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1696. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libtool -1697. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1698. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1699. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1700. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-file -1701. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1702. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1703. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1704. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1705. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1706. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1707. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-mpc -1708. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-mpfr -1709. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1710. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1711. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1712. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1713. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1714. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1715. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1716. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libpipeline -1717. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1718. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap -1719. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1720. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1721. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-readline -1722. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1723. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1724. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1725. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1726. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-openssl -1727. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1728. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1729. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1730. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1731. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1732. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1733. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1734. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tcl -1735. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tcl -1736. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1737. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1738. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1739. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1740. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1741. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1742. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1743. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bison -1744. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zlib -1745. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zstd -1746. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1747. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-clock -1748. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-console -1749. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-hostname -1750. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-hosts -1751. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-hosts -1752. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-network -1753. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1754. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-kernel -1755. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-kernel -1756. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-kernfs -1757. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-fstab -1758. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles -1759. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-hosts -1760. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-inputrc -1761. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#conf-ld -1762. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-finish-theend -1763. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#conf-glibc -1764. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-finish-theend -1765. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#conf-modprobe -1766. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#conf-glibc -1767. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-finish-theend -1768. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles -1769. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iana-etc -1770. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#resolv.conf -1771. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iana-etc -1772. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#conf-vim -1773. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles -1774. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1775. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1776. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1777. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1778. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1779. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1780. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1781. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1782. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1783. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1784. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1785. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles -1786. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles -1787. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles -1788. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-locale -1789. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-shells -1790. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-pages -1791. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-systemd-custom - - Ligações escondidas: -1793. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lbracket -1794. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#accessdb -1795. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#aclocal -1796. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#aclocalversion -1797. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#addftinfo -1798. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#addpart -1799. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#addr2line -1800. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#afmtodit -1801. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#agetty -1802. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#apropos -1803. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ar -1804. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#as -1805. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#attr -1806. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#autoconf -1807. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#autoheader -1808. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#autom4te -1809. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#automake -1810. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#automake-version -1811. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#autopoint -1812. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#autoreconf -1813. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#autoscan -1814. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#autoupdate -1815. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#awk -1816. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#b2sum -1817. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#badblocks -1818. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#base64 -1819. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#basename -1820. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#basenc -1821. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bash -1822. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bashbug -1823. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bc -1824. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bison -1825. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#blkdiscard -1826. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#blkid -1827. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#blkzone -1828. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#blockdev -1829. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bridge -1830. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bunzip2 -1831. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#busctl -1832. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bzcat -1833. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bzcmp -1834. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bzdiff -1835. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bzegrep -1836. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bzfgrep -1837. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bzgrep -1838. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bzip2 -1839. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bzip2recover -1840. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bzless -1841. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bzmore -1842. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#c -1843. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#c-filt -1844. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#cal -1845. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#capsh -1846. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#captoinfo -1847. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#cat -1848. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#catman -1849. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#cc -1850. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#cfdisk -1851. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chacl -1852. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chage -1853. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chattr -1854. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chcon -1855. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chcpu -1856. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#checkmk -1857. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chem -1858. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chfn -1859. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chgpasswd -1860. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chgrp -1861. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chmem -1862. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chmod -1863. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#choom -1864. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chown -1865. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chpasswd -1866. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chroot -1867. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chrt -1868. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chsh -1869. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chvt -1870. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#cksum -1871. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#clear -1872. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#cmp -1873. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#col -1874. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#colcrt -1875. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#colrm -1876. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#column -1877. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#comm -1878. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#compile_et -1879. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#coredumpctl -1880. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#corelist -1881. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#cp -1882. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#cpan -1883. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#cpp -1884. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#csplit -1885. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ctrlaltdel -1886. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ctstat -1887. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#cut -1888. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#c_rehash -1889. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#date -1890. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dbus-cleanup-sockets -1891. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dbus-daemon -1892. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dbus-launch -1893. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dbus-monitor -1894. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dbus-run-session -1895. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dbus-send -1896. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dbus-test-tool -1897. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dbus-update-activation-environment -1898. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dbus-uuidgen -1899. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dc -1900. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dd -1901. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#deallocvt -1902. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#debugfs -1903. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dejagnu -1904. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#delpart -1905. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#depmod -1906. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#df -1907. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#diff -1908. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#diff3 -1909. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dir -1910. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dircolors -1911. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dirname -1912. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dmesg -1913. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dnsdomainname -1914. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#du -1915. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dumpe2fs -1916. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dumpkeys -1917. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#e2freefrag -1918. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#e2fsck -1919. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#e2image -1920. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#e2label -1921. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#e2mmpstatus -1922. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#e2scrub -1923. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#e2scrub_all -1924. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#e2undo -1925. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#e4crypt -1926. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#e4defrag -1927. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#echo -1928. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#egrep -1929. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#eject -1930. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#elfedit -1931. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#enc2xs -1932. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#encguess -1933. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#env -1934. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#envsubst -1935. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#eqn -1936. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#eqn2graph -1937. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ex -1938. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#expand -1939. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#expect -1940. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#expiry -1941. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#expr -1942. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#factor -1943. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#faillog -1944. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fallocate -1945. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#false -1946. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fdisk -1947. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fgconsole -1948. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fgrep -1949. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#file -1950. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#filefrag -1951. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fincore -1952. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#find -1953. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#findfs -1954. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#findmnt -1955. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#flex -1956. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#flexpp -1957. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#flock -1958. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fmt -1959. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fold -1960. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#free -1961. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fsck -1962. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fsck.cramfs -1963. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fsck.ext2 -1964. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fsck.ext3 -1965. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fsck.ext4 -1966. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fsck.minix -1967. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fsfreeze -1968. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fstrim -1969. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ftp -1970. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fuser -1971. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#g -1972. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gawk -1973. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gawk-version -1974. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gcc -1975. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gcc-ar -1976. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gcc-nm -1977. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gcc-ranlib -1978. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gcov -1979. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gcov-dump -1980. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gcov-tool -1981. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gdbmtool -1982. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gdbm_dump -1983. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gdbm_load -1984. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gdiffmk -1985. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gencat -1986. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#genl -1987. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#getcap -1988. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#getconf -1989. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#getent -1990. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#getfacl -1991. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#getfattr -1992. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#getkeycodes -1993. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#getopt -1994. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#getpcaps -1995. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#getsubids -1996. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gettext -1997. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gettext.sh -1998. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gettextize -1999. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#glilypond -2000. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gpasswd -2001. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gperf -2002. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gperl -2003. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gpinyin -2004. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gprof -2005. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grap2graph -2006. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grep -2007. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grn -2008. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grodvi -2009. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#groff -2010. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#groffer -2011. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grog -2012. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grolbp -2013. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grolj4 -2014. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gropdf -2015. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grops -2016. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grotty -2017. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#groupadd -2018. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#groupdel -2019. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#groupmems -2020. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#groupmod -2021. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#groups -2022. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grpck -2023. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grpconv -2024. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grpunconv -2025. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-bios-setup -2026. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-editenv -2027. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-file -2028. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-fstest -2029. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-glue-efi -2030. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-install -2031. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-kbdcomp -2032. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-macbless -2033. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-menulst2cfg -2034. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mkconfig -2035. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mkimage -2036. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mklayout -2037. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mknetdir -2038. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mkpasswd-pbkdf2 -2039. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mkrelpath -2040. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mkrescue -2041. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mkstandalone -2042. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-ofpathname -2043. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-probe -2044. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-reboot -2045. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-render-label -2046. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-script-check -2047. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-set-default -2048. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-sparc64-setup -2049. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-syslinux2cfg -2050. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gunzip -2051. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gzexe -2052. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gzip -2053. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#h2ph -2054. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#h2xs -2055. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#halt -2056. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#head -2057. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#hexdump -2058. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#hostid -2059. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#hostname -2060. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#hostnamectl -2061. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#hpftodit -2062. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#hwclock -2063. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#i386 -2064. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#iconv -2065. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#iconvconfig -2066. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#id -2067. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ifcfg -2068. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ifconfig -2069. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ifnames -2070. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ifstat -2071. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#indxbib -2072. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#info -2073. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#infocmp -2074. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#infotocap -2075. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#init -2076. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#insmod -2077. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#install -2078. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#install-info -2079. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#instmodsh -2080. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#intltool-extract -2081. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#intltool-merge -2082. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#intltool-prepare -2083. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#intltool-update -2084. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#intltoolize -2085. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ionice -2086. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ip -2087. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ipcmk -2088. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ipcrm -2089. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ipcs -2090. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#irqtop -2091. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#isosize -2092. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#join -2093. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#journalctl -2094. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#json_pp -2095. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#kbdinfo -2096. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#kbdrate -2097. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#kbd_mode -2098. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#kernel-install -2099. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#kill -2100. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#killall -2101. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#kmod -2102. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#last -2103. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lastb -2104. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lastlog -2105. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ld -2106. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ld.bfd -2107. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ld.gold -2108. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ldattach -2109. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ldconfig -2110. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ldd -2111. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lddlibc4 -2112. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#less -2113. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lessecho -2114. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lesskey -2115. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lex -2116. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lexgrog -2117. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lfskernel -2118. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libasan -2119. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libatomic -2120. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libcc1 -2121. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libnetcfg -2122. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libtool -2123. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libtoolize -2124. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#link -2125. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#linux32 -2126. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#linux64 -2127. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lkbib -2128. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ln -2129. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lnstat -2130. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#loadkeys -2131. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#loadunimap -2132. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#locale -2133. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#localectl -2134. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#localedef -2135. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#locate -2136. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#logger -2137. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#login -2138. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#loginctl -2139. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#logname -2140. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#logoutd -2141. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#logsave -2142. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#look -2143. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lookbib -2144. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#losetup -2145. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ls -2146. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lsattr -2147. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lsblk -2148. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lscpu -2149. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lsipc -2150. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lsirq -2151. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lslocks -2152. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lslogins -2153. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lsmem -2154. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lsmod -2155. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lsns -2156. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lto-dump -2157. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lzcat -2158. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lzcmp -2159. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lzdiff -2160. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lzegrep -2161. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lzfgrep -2162. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lzgrep -2163. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lzless -2164. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lzma -2165. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lzmadec -2166. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lzmainfo -2167. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lzmore -2168. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#m4 -2169. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#machinectl -2170. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#make -2171. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#makedb -2172. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#makeinfo -2173. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#man -2174. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#man-recode -2175. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mandb -2176. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#manpath -2177. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mapscrn -2178. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mcookie -2179. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#md5sum -2180. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mesg -2181. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#meson -2182. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mkdir -2183. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mke2fs -2184. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mkfifo -2185. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mkfs -2186. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mkfs.bfs -2187. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mkfs.cramfs -2188. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mkfs.ext2 -2189. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mkfs.ext3 -2190. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mkfs.ext4 -2191. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mkfs.minix -2192. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mklost-found -2193. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mknod -2194. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mkswap -2195. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mktemp -2196. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mk_cmds -2197. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mmroff -2198. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#modinfo -2199. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#modprobe -2200. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#more -2201. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mount -2202. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mountpoint -2203. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#msgattrib -2204. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#msgcat -2205. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#msgcmp -2206. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#msgcomm -2207. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#msgconv -2208. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#msgen -2209. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#msgexec -2210. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#msgfilter -2211. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#msgfmt -2212. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#msggrep -2213. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#msginit -2214. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#msgmerge -2215. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#msgunfmt -2216. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#msguniq -2217. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mtrace -2218. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mv -2219. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#namei -2220. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ncursesw6-config -2221. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#neqn -2222. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#networkctl -2223. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#newgidmap -2224. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#newgrp -2225. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#newuidmap -2226. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#newusers -2227. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ngettext -2228. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#nice -2229. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ninja -2230. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#nl -2231. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#nm -2232. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#nohup -2233. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#nologin -2234. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#nproc -2235. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#nroff -2236. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#nscd -2237. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#nsenter -2238. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#nstat -2239. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#numfmt -2240. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#objcopy -2241. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#objdump -2242. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#od -2243. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#oomctl -2244. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#openssl-prog -2245. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#openvt -2246. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#partx -2247. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#passwd -2248. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#paste -2249. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#patch -2250. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pathchk -2251. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pcprofiledump -2252. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pdfmom -2253. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pdfroff -2254. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pdftexi2dvi -2255. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#peekfd -2256. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#perl -2257. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#perl-version -2258. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#perlbug -2259. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#perldoc -2260. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#perlivp -2261. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#perlthanks -2262. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pfbtops -2263. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pgrep -2264. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pic -2265. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pic2graph -2266. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#piconv -2267. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pidof -2268. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ping -2269. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ping6 -2270. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pinky -2271. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pivot_root -2272. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pkgconfig -2273. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pkill -2274. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pl2pm -2275. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pldd -2276. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pmap -2277. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pod2html -2278. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pod2man -2279. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pod2texi -2280. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pod2text -2281. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pod2usage -2282. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#podchecker -2283. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#podselect -2284. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#portablectl -2285. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#post-grohtml -2286. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#poweroff -2287. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pr -2288. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pre-grohtml -2289. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#preconv -2290. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#printenv -2291. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#printf -2292. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#prlimit -2293. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#prove -2294. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#prtstat -2295. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ps -2296. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#psfaddtable -2297. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#psfgettable -2298. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#psfstriptable -2299. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#psfxtable -2300. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pslog -2301. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pstree -2302. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pstree.x11 -2303. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ptar -2304. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ptardiff -2305. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ptargrep -2306. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ptx -2307. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pwait -2308. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pwck -2309. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pwconv -2310. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pwd -2311. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pwdx -2312. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pwunconv -2313. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ranlib -2314. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#readelf -2315. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#readlink -2316. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#readprofile -2317. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#realpath -2318. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#reboot -2319. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#recode-sr-latin -2320. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#refer -2321. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#rename -2322. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#renice -2323. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#reset -2324. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#resize2fs -2325. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#resizepart -2326. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#resolvconf -2327. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#resolvectl -2328. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#rev -2329. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#rkfill -2330. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#rm -2331. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#rmdir -2332. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#rmmod -2333. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#roff2dvi -2334. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#roff2html -2335. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#roff2pdf -2336. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#roff2ps -2337. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#roff2text -2338. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#roff2x -2339. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#routef -2340. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#routel -2341. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#rtacct -2342. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#rtcwake -2343. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#rtmon -2344. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#rtpr -2345. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#rtstat -2346. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#runcon -2347. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#runlevel -2348. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#runtest -2349. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#rview -2350. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#rvim -2351. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#script -2352. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#scriptlive -2353. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#scriptreplay -2354. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sdiff -2355. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sed -2356. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#seq -2357. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#setarch -2358. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#setcap -2359. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#setfacl -2360. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#setfattr -2361. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#setfont -2362. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#setkeycodes -2363. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#setleds -2364. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#setmetamode -2365. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#setsid -2366. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#setterm -2367. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#setvtrgb -2368. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sfdisk -2369. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sg -2370. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sh -2371. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sha1sum -2372. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sha224sum -2373. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sha256sum -2374. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sha384sum -2375. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sha512sum -2376. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#shasum -2377. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#showconsolefont -2378. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#showkey -2379. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#shred -2380. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#shuf -2381. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#shutdown -2382. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#size -2383. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#slabtop -2384. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sleep -2385. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sln -2386. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#soelim -2387. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sort -2388. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sotruss -2389. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#splain -2390. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#split -2391. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sprof -2392. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ss -2393. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#stat -2394. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#stdbuf -2395. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#strings -2396. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#strip -2397. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#stty -2398. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#su -2399. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sulogin -2400. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sum -2401. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#swaplabel -2402. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#swapoff -2403. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#swapon -2404. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#switch_root -2405. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sync -2406. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sysctl -2407. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemctl -2408. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-analyze -2409. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-ask-password -2410. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-cat -2411. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-cgls -2412. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-cgtop -2413. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-creds -2414. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-delta -2415. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-detect-virt -2416. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-dissect -2417. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-escape -2418. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-hwdb -2419. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-id128 -2420. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-inhibit -2421. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-machine-id-setup -2422. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-mount -2423. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-notify -2424. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-nspawn -2425. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-path -2426. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-repart -2427. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-resolve -2428. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-run -2429. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-socket-activate -2430. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-sysext -2431. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-tmpfiles -2432. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-tty-ask-password-agent -2433. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-umount -2434. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tabs -2435. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tac -2436. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tail -2437. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#talk -2438. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tar -2439. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#taskset -2440. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tbl -2441. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ss -2442. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tclsh -2443. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tclsh8.6 -2444. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tee -2445. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#telinit -2446. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#telnet -2447. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#test -2448. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#texi2dvi -2449. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#texi2pdf -2450. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#texi2any -2451. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#texindex -2452. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tfmtodit -2453. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tftp -2454. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tic -2455. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#timedatectl -2456. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#timeout -2457. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tload -2458. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#toe -2459. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#top -2460. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#touch -2461. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tput -2462. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tr -2463. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#traceroute -2464. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#troff -2465. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#true -2466. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#truncate -2467. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tset -2468. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tsort -2469. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tty -2470. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tune2fs -2471. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tzselect -2472. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#uclampset -2473. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#udevadm -2474. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ul -2475. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#umount -2476. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#uname -2477. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#uname26 -2478. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#uncompress -2479. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#unexpand -2480. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#unicode_start -2481. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#unicode_stop -2482. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#uniq -2483. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#unlink -2484. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#unlzma -2485. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#unshare -2486. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#unxz -2487. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#updatedb -2488. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#uptime -2489. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#useradd -2490. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#userdel -2491. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#usermod -2492. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#users -2493. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#utmpdump -2494. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#uuidd -2495. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#uuidgen -2496. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#uuidparse -2497. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#vdir -2498. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#vi -2499. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#view -2500. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#vigr -2501. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#vim -2502. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#vimdiff -2503. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#vimtutor -2504. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#vipw -2505. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#vmstat -2506. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#w -2507. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#wall -2508. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#watch -2509. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#wc -2510. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#wdctl -2511. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#whatis -2512. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#whereis -2513. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#who -2514. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#whoami -2515. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#wipefs -2516. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#x86_64 -2517. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xargs -2518. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xgettext -2519. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xmlwf -2520. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xsubpp -2521. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xtrace -2522. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xxd -2523. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xz -2524. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xzcat -2525. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xzcmp -2526. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xzdec -2527. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xzdiff -2528. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xzegrep -2529. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xzfgrep -2530. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xzgrep -2531. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xzless -2532. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xzmore -2533. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#yacc -2534. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#yes -2535. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zcat -2536. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zcmp -2537. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zdiff -2538. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zdump -2539. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zegrep -2540. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zfgrep -2541. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zforce -2542. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zgrep -2543. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zic -2544. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zipdetails -2545. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zless -2546. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zmore -2547. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#znew -2548. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zramctl -2549. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zstd -2550. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zstdgrep -2551. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zstdless -2552. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#Expat -2553. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ld.so -2554. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libacl -2555. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libanl -2556. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libasprintf -2557. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libattr -2558. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libbfd -2559. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libblkid -2560. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libBrokenLocale -2561. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libbz2 -2562. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libc -2563. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libcap -2564. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libcheck -2565. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libcom_err -2566. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libcrypt -2567. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libcrypto -2568. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libctf -2569. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libctf-nobfd -2570. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libcursesw -2571. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libc_malloc_debug -2572. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libdbus-1 -2573. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libdl -2574. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libe2p -2575. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libelf -2576. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libexpat -2577. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libexpect -2578. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libext2fs -2579. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libfdisk -2580. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libfl -2581. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libformw -2582. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libg -2583. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libgcc -2584. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libgcov -2585. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libgdbm -2586. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libgdbm_compat -2587. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libgettextlib -2588. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libgettextpo -2589. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libgettextsrc -2590. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libgmp -2591. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libgmpxx -2592. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libgomp -2593. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libhistory -2594. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libitm -2595. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#liblsan -2596. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libltdl -2597. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#liblto_plugin -2598. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#liblzma -2599. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libm -2600. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libmagic -2601. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libman -2602. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libmandb -2603. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libmcheck -2604. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libmemusage -2605. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libmenuw -2606. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libmount -2607. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libmpc -2608. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libmpfr -2609. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libmvec -2610. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libncursesw -2611. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libnsl -2612. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libnss -2613. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libopcodes -2614. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libpanelw -2615. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libpcprofile -2616. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libprocps -2617. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libpsx -2618. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libpthread -2619. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libquadmath -2620. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libreadline -2621. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libresolv -2622. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#librt -2623. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libsmartcols -2624. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libss -2625. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libssl -2626. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libssp -2627. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libstdbuf -2628. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libstdc -2629. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libstdcfs -2630. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libsubid -2631. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libsupc -2632. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libsystemd -2633. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libtcl8.6.so -2634. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libtclstub8.6.a -2635. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libtextstyle -2636. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libthread_db -2637. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libtsan -2638. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libubsan -2639. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libudev -2640. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libutil -2641. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libuuid -2642. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#liby -2643. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libz -2644. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libzstd -2645. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#preloadable_libintl -2646. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dwp -2647. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#config -2648. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#System.map -2649. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#asm-generic -2650. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#asm -2651. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#drm -2652. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#linux -2653. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#misc -2654. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mtd -2655. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#rdma -2656. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#scsi -2657. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sound -2658. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#video -2659. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xen -2660. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#man-pages diff --git a/LFS-SYSD-BOOK-11.1-pt_br.pdf b/LFS-SYSD-BOOK-11.1-pt_br.pdf deleted file mode 100644 index a3fbe245af..0000000000 Binary files a/LFS-SYSD-BOOK-11.1-pt_br.pdf and /dev/null differ diff --git a/LFS-SYSD-BOOK-11.1-pt_br.tar.xz b/LFS-SYSD-BOOK-11.1-pt_br.tar.xz deleted file mode 100644 index 5be3d5a0f5..0000000000 Binary files a/LFS-SYSD-BOOK-11.1-pt_br.tar.xz and /dev/null differ