Linux From Scratch Versão 12.4-systemd Publicado 01 de setembro de 2025 Criado por Gerard Beekmans Editor-chefe: Bruce Dubbs Editor: Douglas R. Reno Editor: DJ Lucas Copyright © 1999-2025 Gerard Beekmans Direitos autorais © 1999-2025, Gerard Beekmans Todos os direitos reservados. Este livro é licenciado sob uma [1]Licença da Creative Commons. As instruções de computador tem permissão para serem extraídas a partir do livro sob a [2]Licença do MIT. 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]O LFS e os 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 lançamento mais recente o [14]Registro das 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 o 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 e o Umask o [23]Montando a Nova Partição + 3. Pacotes e Remendos o [24]Introdução o [25]Todos os Pacotes o [26]Remendos Necessários + 4. Preparações Finais o [27]Introdução o [28]Criando um Layout Limitado de Diretório no Sistema de Arquivos do LFS o [29]Adicionando o(a) Usuário(a) LFS o [30]Configurando o Ambiente o [31]A Respeito de UPCs o [32]A Respeito das Suítes de Teste * III. Construindo o Conjunto de Ferramentas Cruzadas do LFS e Ferramentas Temporárias + Material Preliminar Importante o [33]Introdução o [34]Observações Técnicas do Conjunto de Ferramentas o [35]Instruções Gerais de Compilação + 5. Compilando um Conjunto Cruzado de Ferramentas o [36]Introdução o [37]Binutils-2.45 - Passagem 1 o [38]GCC-15.2.0 - Passagem 1 o [39]Cabeçalhos da API do Linux-6.16.1 o [40]Glibc-2.42 o [41]Libstdc++ oriundo de GCC-15.2.0 + 6. Compilando Cruzadamente Ferramentas Temporárias o [42]Introdução o [43]M4-1.4.20 o [44]Ncurses-6.5-20250809 o [45]Bash-5.3 o [46]Coreutils-9.7 o [47]Diffutils-3.12 o [48]File-5.46 o [49]Findutils-4.10.0 o [50]Gawk-5.3.2 o [51]Grep-3.12 o [52]Gzip-1.14 o [53]Make-4.4.1 o [54]Patch-2.8 o [55]Sed-4.9 o [56]Tar-1.35 o [57]Xz-5.8.1 o [58]Binutils-2.45 - Passagem 2 o [59]GCC-15.2.0 - Passagem 2 + 7. Entrando no Chroot e Construindo Ferramentas Temporárias Adicionais o [60]Introdução o [61]Mudando Propriedade o [62]Preparando Sistemas de Arquivos Virtuais do Núcleo o [63]Entrando no Ambiente Chroot o [64]Criando Diretórios o [65]Criando Arquivos Essenciais e Links Simbólicos o [66]Gettext-0.26 o [67]Bison-3.8.2 o [68]Perl-5.42.0 o [69]Python-3.13.7 o [70]Texinfo-7.2 o [71]Util-linux-2.41.1 o [72]Limpando e Salvando o Sistema Temporário * IV. Construindo o Sistema LFS + 8. Instalando Aplicativos Básicos de Sistema o [73]Introdução o [74]Gerenciamento de Pacote o [75]Man-pages-6.15 o [76]Iana-Etc-20250807 o [77]Glibc-2.42 o [78]Zlib-1.3.1 o [79]Bzip2-1.0.8 o [80]Xz-5.8.1 o [81]Lz4-1.10.0 o [82]Zstd-1.5.7 o [83]File-5.46 o [84]Readline-8.3 o [85]M4-1.4.20 o [86]Bc-7.0.3 o [87]Flex-2.6.4 o [88]Tcl-8.6.16 o [89]Expect-5.45.4 o [90]DejaGNU-1.6.3 o [91]Pkgconf-2.5.1 o [92]Binutils-2.45 o [93]GMP-6.3.0 o [94]MPFR-4.2.2 o [95]MPC-1.3.1 o [96]Attr-2.5.2 o [97]Acl-2.3.2 o [98]Libcap-2.76 o [99]Libxcrypt-4.4.38 o [100]Shadow-4.18.0 o [101]GCC-15.2.0 o [102]Ncurses-6.5-20250809 o [103]Sed-4.9 o [104]Psmisc-23.7 o [105]Gettext-0.26 o [106]Bison-3.8.2 o [107]Grep-3.12 o [108]Bash-5.3 o [109]Libtool-2.5.4 o [110]GDBM-1.26 o [111]Gperf-3.3 o [112]Expat-2.7.1 o [113]Inetutils-2.6 o [114]Less-679 o [115]Perl-5.42.0 o [116]XML::Parser-2.47 o [117]Intltool-0.51.0 o [118]Autoconf-2.72 o [119]Automake-1.18.1 o [120]OpenSSL-3.5.2 o [121]Libelf originário do Elfutils-0.193 o [122]Libffi-3.5.2 o [123]Python-3.13.7 o [124]Flit-Core-3.12.0 o [125]Packaging-25.0 o [126]Wheel-0.46.1 o [127]Setuptools-80.9.0 o [128]Ninja-1.13.1 o [129]Meson-1.8.3 o [130]Kmod-34.2 o [131]Coreutils-9.7 o [132]Diffutils-3.12 o [133]Gawk-5.3.2 o [134]Findutils-4.10.0 o [135]Groff-1.23.0 o [136]GRUB-2.12 o [137]Gzip-1.14 o [138]IPRoute2-6.16.0 o [139]Kbd-2.8.0 o [140]Libpipeline-1.5.8 o [141]Make-4.4.1 o [142]Patch-2.8 o [143]Tar-1.35 o [144]Texinfo-7.2 o [145]Vim-9.1.1629 o [146]MarkupSafe-3.0.2 o [147]Jinja2-3.1.6 o [148]Systemd-257.8 o [149]D-Bus-1.16.2 o [150]Man-DB-2.13.1 o [151]Procps-ng-4.0.5 o [152]Util-linux-2.41.1 o [153]E2fsprogs-1.47.3 o [154]Acerca dos Símbolos de Depuração o [155]Despojando o [156]Limpando + 9. Configuração do Sistema o [157]Introdução o [158]Configuração Geral da Rede de Comunicação o [159]Visão Geral do Manuseio de Dispositivo e de Módulo o [160]Gerenciando Dispositivos o [161]Configurando o Relógio do Sistema o [162]Configurando o Console do Linux o [163]Configurando a Localidade do Sistema o [164]Criando o Arquivo /etc/inputrc o [165]Criando o Arquivo /etc/shells o [166]Uso e Configuração do Systemd + 10. Tornando o Sistema LFS Inicializável o [167]Introdução o [168]Criando o Arquivo /etc/fstab o [169]Linux-6.16.1 o [170]Usando o GRUB para Configurar o Processo de Inicialização + 11. O Fim o [171]O Fim o [172]Seja Contado(a) o [173]Reinicializando o Sistema o [174]Recursos Adicionais o [175]Começando Depois do LFS * V. Anexos + [176]A. Siglas e Termos + [177]B. Reconhecimentos + [178]C. Dependências + [179]D. Licenças do LFS o [180]Licença da Creative Commons o [181]A Licença do MIT * [182]Índice Remissivo Prefácio Introdução Minha jornada para aprender e entender melhor o Linux começou em meados de 1998. Eu havia acabado de instalar minha primeira distribuição do Linux e rapidamente fiquei intrigado com todo o conceito e filosofia por trás do Linux. Existem sempre muitas maneiras de realizar uma tarefa. O mesmo pode ser dito a respeito das distribuições do Linux. Um grande número existiu ao longo dos anos. Algumas ainda existem; algumas se transformaram em algo mais; e ainda outras foram relegadas às nossas memórias. Todas elas fazem coisas diferentemente para se adequarem às necessidades da audiência alvo delas. Devido a existirem muitíssimas maneiras de realizar o mesmo objetivo final, eu comecei a perceber que não tinha que estar limitado por qualquer uma implementação. Antes de descobrir o Linux, nós simplesmente lidávamos com problemas em outros Sistemas Operacionais como se você não tivesse escolha. A coisa era o que era, não importando se você gostasse ou não. Com o Linux, o conceito de escolha começou a emergir. Se você não gostou de alguma coisa, você seria livre, até encorajado(a), a mudá-la. Eu tentei várias distribuições e não consegui me decidir por nenhuma. Elas eram grandes sistemas em seu próprio direito. Não era mais uma questão de certo ou errado. Tinha se tornado em uma questão de gosto pessoal. Com todas aquelas escolhas disponíveis, tornou-se aparente que não haveria um sistema que fosse 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 verdadeiramente torná-lo meu próprio sistema, eu resolvi compilar tudo a partir do código fonte, em vez de usar pacotes pré compilados de binário. 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. Eu me mantive comprometido com a ideia de que tal sistema poderia ser construído. Depois de lidar com problemas, tais como dependências circulares e erros em tempo de compilação, eu finalmente construí um sistema Linux feito sob encomenda. Era totalmente operacional e perfeitamente usável, como quaisquer dos outros sistemas Linux disponíveis na época. Porém, era minha própria criação. Foi muito gratificante ter montado tal sistema eu mesmo. A única coisa melhor teria sido criar cada pedaço de software eu mesmo. Essa foi a melhor coisa que se seguiu. Conforme eu compartilhei meus objetivos e experiências com outros(as) membros(as) da comunidade Linux, tornou-se aparente que havia um interesse firme nessas ideias. Logo tornou-se claro que tais sistemas Linux feitos sob encomenda serviam não somente para satisfazer as exigências específicas dos(as) usuários(as), mas também serve como uma oportunidade ideal de aprendizado para programadores(as) e administradores(as) de sistema elevarem as (existentes) habilidades deles(as) com o Linux. Como resultado desse interesse amplo, o Projeto Linux From Scratch nasceu. Este livro Linux From Scratch é o núcleo em torno desse projeto. Ele provê a base e as instruções necessárias para você projetar e construir seu próprio sistema. Ao tempo em que este livro fornece um modelo que resultará 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) a começar na tua própria jornada. Eu sinceramente espero que você terá um ótimo tempo trabalhando em seu próprio sistema Linux From Scratch e que aproveitará os numerosos benefícios de ter um sistema que é verdadeiramente teu. -- 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 desse 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 fornecer é a habilidade para personalizar um sistema Linux para se ajustar às suas próprias necessidades únicas. Outro benefício chave do LFS é o de que ele te dá controle do sistema sem confiar na implementação Linux de ninguém. Com o LFS, você está no banco do motorista. Você dita cada aspecto do teu sistema. O LFS te permite criar sistemas Linux muito compactos. Com outras distribuições, você frequentemente é forçado(a) a instalar grande número de programas, os quais nem usa, nem entende. Esses programas desperdiçam recursos. Você possivelmente argumente que, com as unidades rígidas e CPUs de hoje, recursos desperdiçados não mais são uma consideração. Às vezes, entretanto, você ainda está restrito(a) pelo tamanho do sistema, se nenhuma outra coisa. Pense a respeito de CDs inicializáveis, mídias USB e sistemas embarcados. Essas são áreas onde o LFS pode ser benéfico. Outra vantagem de um sistema Linux feito sob medida é a da segurança. Ao compilar o sistema inteiro desde o zero, você está empoderado(a) para auditar tudo e aplicar todos os remendos de segurança que queira. Você não tem que aguardar que outra pessoa compile os pacotes binários que consertam uma brecha de segurança. A menos que você examine o remendo e o 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. O objetivo do Linux From Scratch é o de construir um sistema em nível de fundação completo e usável. Se você não deseja construir teu próprio sistema Linux desde o zero, você possivelmente nunca se beneficie das informações neste livro. Existem muito mais boas razões para construir teu próprio sistema LFS para listá-las todas aqui. No final, educação é, de longe, a mais importante razão. Conforme continue tua experiência LFS, você descobrirá o poder que informação e conhecimento podem trazer. Arquiteturas Alvo do LFS As arquiteturas alvo primárias do LFS são as CPUs 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 as CPUs Power PC e ARM. Para construir um sistema que utiliza uma dessas CPUs alternativas, o principal pré-requisito, em adição àqueles na próxima página, é um sistema Linux existente, como uma instalação prévia do LFS, Ubuntu, Red Hat/Fedora, SuSE ou alguma outra distribuição que atinja essa arquitetura. (Observe que uma distribuição de 32 bits pode ser instalada e usada como um sistema anfitrião em um computador AMD/Intel de 64 bits). O ganho oriundo da construção em um sistema de 64 bits comparado a um sistema de 32 bits é mínimo. Por exemplo, em uma construção de teste do LFS-9.1 em um sistema baseado na CPU Core i7-4790, usando quatro núcleos, as seguintes estatísticas foram verificadas: Arquitetura Tempo de Construção Tamanho de Construção 32 bits 239,9 minutos 3,6 GB 64 bits 233,2 minutos 4,4 GB Como você pode ver, no mesmo hardware, a construção de 64 bits é somente 3% mais rápida (e 22% maior) que a construção de 32 bits. Se você planeja usar o LFS como um servidor LAMP, ou como um firewall, uma CPU de 32 bits possivelmente seja boa o suficiente. Por outro lado, vários pacotes no BLFS atualmente precisam de mais que 4 GB de RAM para serem construídos e (ou) para executarem; se você planeja usar o LFS como um desktop, os(as) autores(as) do LFS recomendam construir um sistema de 64 bits. A construção padrão de 64 bits que resulta do LFS é um sistema de 64 bits “puro”. Ou seja, ele suporta somente executáveis de 64 bits. Construir um sistema “multi biblioteca” exige compilar muitos aplicativos duas vezes, uma vez para um sistema de 32 bits e outra vez para um sistema de 64 bits. Isso não é diretamente suportado no LFS, pois interferiria no objetivo educacional de fornecer as instruções mínimas necessárias para um sistema básico Linux. Alguns(mas) dos(as) editores(as) do LFS/BLFS mantém uma bifurcação multi biblioteca do LFS, acessível em [183]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. Exige um certo nível de conhecimento existente da administração de sistemas Unix para a finalidade de resolver problemas e corretamente executar os comandos listados. Em particular, como um mínimo absoluto, você já deveria saber como usar a linha de comando (shell) para copiar ou mover arquivos e diretórios, listar diretórios e conteúdo de arquivos, e mudar o diretório atual. Também é esperado que você saiba como usar e instalar software Linux. Por causa do livro LFS assumir pelo menos esse nível básico de habilidades, os vários fóruns de suporte do LFS não são adequados para te fornecer muita assistência nessas áreas. Você vai achar que as suas perguntas relacionadas a tal conhecimento básico não serão respondidas (ou serão simplesmente remetidas à lista de pré-leitura essencial do LFS). Antes de construir um sistema LFS, nós insistimos que você leia estes artigos: * Software-Building-HOWTO [184]http://www.tldp.org/HOWTO/Software-Building-HOWTO.html Esse é um guia compreensivo para construir e instalar pacotes de software Unix “genéricos” sob o Linux. Apesar de que foi escrito há algum tempo, ainda fornece um bom resumo das técnicas básicas usadas para construir e instalar software. * Guia do(a) Iniciante para Instalar a partir do Fonte [185]http://moi.vonos.net/linux/beginners-installing-from-source/ Esse guia fornece um bom sumário das habilidades básicas e de técnicas necessárias para construir software a partir do código fonte. O LFS e os Padrões A estrutura do LFS segue os padrões do Linux tão rigorosamente quanto possível. Os padrões primários são: * [186]POSIX.1-2008. * [187]Filesystem Hierarchy Standard (FHS) Version 3.0 * [188]Linux Standard Base (LSB) Version 5.0 (2015) O LSB tem quatro especificações separadas: Core, Desktop, Languages e Imaging. Algumas partes das especificações Core e Desktop são específicas de arquitetura. Existem também duas especificações experimentais: Gtk3 e Graphics. O LFS tenta obedecer às especificações da LSB para as arquiteturas IA32 (x86 de 32 bits) ou AMD64 (x86_64) discutidas na sessão anterior. Nota Muitas pessoas não concordam com essas exigências. O principal propósito do LSB é o de garantir que software proprietário consiga ser instalado e execute em um sistema compatível. Dado que o LFS é baseado no fonte, o(a) usuário(a) tem total controle sobre quais pacotes são desejados; você possivelmente escolha não instalar alguns pacotes que são especificados pelo LSB. Ao tempo em que é possível criar um sistema completo que passará nos testes de certificação da LSB “desde o zero”, isso não pode ser feito sem muitos pacotes adicionais que estão além do escopo do livro LFS. Instruções de instalação para alguns desses pacotes adicionais podem ser encontradas no BLFS. Pacotes fornecidos pelo LFS necessários para satisfazer as Exigências do LSB Núcleo do LSB: Bash, Bc, Binutils, Coreutils, Diffutils, File, Findutils, Gawk, GCC, Gettext, Glibc, Grep, Gzip, M4, Man-DB, Procps, Psmisc, Sed, Shadow, Systemd, Tar, Util-linux, Zlib Área de trabalho do LSB: Nenhum Linguagens da LSB: Perl Imagem no LSB: Nenhum LSB Gtk3 e Gráficos LSB (Uso Experimental): Nenhum Pacotes fornecidos pelo BLFS necessários para satisfazer as Exigências do LSB Núcleo do LSB: At, Batch (uma parte de At), Arquivos do BLFS de Iniciação do Bash, Cpio, Ed, Fcrontab, LSB-Tools, NSPR, NSS, Linux-PAM, Pax, Sendmail (ou Postfix ou Exim), Time Área de trabalho do LSB: Alsa, ATK, Cairo, Desktop-file-utils, Freetype, Fontconfig, Gdk-pixbuf, Glib2, GLU, Icon-naming-utils, Libjpeg-turbo, Libxml2, Mesa, Pango, Xdg-utils, Xorg Linguagens da LSB: Libxml2 e Libxslt Imagem no LSB: CUPS, Cups-filters, Ghostscript e SANE LSB Gtk3 e Gráficos LSB (Uso Experimental): GTK+3 Componentes não fornecidos ou opcionalmente fornecidos pelo LFS ou pelo BLFS necessários para satisfazer as Exigências da LSB Núcleo do LSB: install_initd, libcrypt.so.1 (pode ser fornecido com instruções opcionais para o pacote Libxcrypt do LFS), libncurses.so.5 (pode ser fornecido com instruções opcionais para o pacote Ncurses do LFS), libncursesw.so.5 (mas libncursesw.so.6 é fornecido pelo pacote Ncurses do LFS) Área de trabalho do LSB: libgdk-x11-2.0.so (mas libgdk-3.so é fornecido pelo pacote GTK+-3 do BLFS), libgtk-x11-2.0.so (mas libgtk-3.so e libgtk-4.so são fornecidos pelos pacotes GTK+-3 e GTK-4 do BLFS), libpng12.so (mas libpng16.so é fornecido pelo pacote Libpng do BLFS), libQt*.so.4 (mas libQt6*.so.6 são fornecidos pelo pacote Qt6 do BLFS), libtiff.so.4 (mas libtiff.so.6 é fornecido pelo pacote Libtiff do BLFS) Linguagens da LSB: /usr/bin/python (LSB exige Python2, mas LFS e BLFS fornecem somente Python3) Imagem no LSB: Nenhum LSB Gtk3 e Gráficos LSB (Uso Experimental): libpng15.so (mas libpng16.so é fornecido pelo pacote Libpng do BLFS) Justificativa para os Pacotes no Livro O objetivo do LFS é o de construir um sistema em nível de fundação completo e utilizável—incluindo todos os pacotes necessários para replicar a ele mesmo—e fornecer uma base relativamente mínima a partir da qual personalizar um sistema mais completo baseado nas escolhas do(a) usuário(a). Isso não significa que o LFS é o menor sistema possível. Vários pacotes importantes estão inclusos que não são, falando estritamente, exigidos. A lista abaixo documenta as razões para cada pacote no livro ter sido incluído. * 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 finamente refinados para arquivos e para diretórios. * Attr Esse pacote contém aplicativos para gerenciar atributos estendidos sobre objetos do sistema de arquivos. * Autoconf Esse pacote fornece aplicativos para produzir scripts de shell que podem configurar automaticamente o código fonte a partir de um modelo do(a) desenvolvedor(a). Frequentemente é necessário para reconstruir um pacote depois que o procedimento de construção tenha sido atualizado. * Automake Esse pacote contém aplicativos para gerar arquivos Make a partir de um modelo. Frequentemente é necessário para reconstruir um pacote depois que o procedimento de construção tenha sido atualizado. * Bash Esse pacote satisfaz uma exigência central do LSB para fornecer uma interface Bourne Shell para o sistema. Foi escolhido em vez de outros pacotes de shell por causa do uso comum e capacidades extensas dele. * Bc Esse pacote fornece uma linguagem de processamento numérico com precisão arbitrária. Satisfaz uma exigência para construir o núcleo do Linux. * Binutils Esse pacote fornece um vinculador, um montador e outras ferramentas para manusear arquivos objeto. Os aplicativos nesse pacote são necessários para compilar a maioria dos pacotes em um sistema LFS. * Bison Esse pacote contém a versão GNU do yacc (Yet Another Compiler Compiler) necessário para construir vários dos aplicativos do LFS. * Bzip2 Esse pacote contém aplicativos para comprimir e descomprimir arquivos. É exigido para descomprimir muitos pacotes do LFS. * Check Esse pacote fornece um equipamento de teste para outros aplicativos. * Coreutils Esse pacote contém um número de aplicativos essenciais para visualizar e manipular arquivos e 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 no LFS. * D-Bus Esse pacote contém aplicativos para implementar um sistema de barramento de mensagem, uma maneira simples para aplicativos conversarem com um outro. * DejaGNU Esse pacote fornece uma estrutura 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 remendos e também são usados em muitos procedimentos de construção dos pacotes. * E2fsprogs Esse pacote fornece utilitários para manusear 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 produz uma biblioteca de análise relativamente pequena de XML. É exigida pelo módulo do Perl XML::Parser. * Expect Esse pacote contém um aplicativo para realizar diálogos com scripts 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 nos scripts de construção deles. * Findutils Esse pacote fornece 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 texto. É a versão GNU do aplicativo lex (lexical analyzer). É exigido para construir vários pacotes do LFS. * Gawk Esse pacote fornece 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 é o Gnu Compiler Collection. Contém os compiladores C e C++ assim como vários outros não construídos pelo LFS. * GDBM Esse pacote contém a biblioteca GNU Database Manager. É usado por um outro pacote do LFS, Man-DB. * Gettext Esse pacote fornece utilitários e bibliotecas para a internacionalização e localização de muitos pacotes. * Glibc Esse pacote contém a biblioteca C principal. Aplicativos Linux não executarão sem ela. * GMP Esse pacote fornece bibliotecas matemáticas que fornecem funções úteis para aritmética de precisão arbitrária. É necessário para construir o GCC. * Gperf Esse pacote produz um aplicativo que gera uma função perfeita de resumo a partir de um conjunto de chaves. É exigido pelo Systemd. * Grep Esse pacote contém aplicativos para pesquisar ao longo de arquivos. Esses aplicativos são usados pela maioria dos scripts de construção dos pacotes. * Groff Esse pacote contribui com aplicativos para processar e formatar texto. Uma função importante desses aplicativos é a de formatar páginas de manual. * GRUB Esse pacote é o Grand Unified Boot Loader. É o mais flexível dos vários carregadores de inicialização disponíveis. * Gzip Esse pacote contém aplicativos para comprimir e descomprimir arquivos. É necessário para descomprimir muitos pacotes no LFS. * Iana-etc Esse pacote fornece dados para serviços e protocolos de rede de comunicação. É necessário para habilitar recursos adequados da rede de comunicação. * Inetutils Esse pacote fornece aplicativos para administração básica da rede de comunicação. * Intltool Esse pacote contribui com ferramentas para extrair sequências de caracteres traduzíveis a partir de arquivos fonte. * IProute2 Esse pacote contém aplicativos para redes de comunicação IPv4 e IPv6 básicas e avançadas. Ele foi escolhido em vez dos outros pacotes comuns de ferramentas de rede de comunicação (net-tools) pelos recursos de IPv6 dele. * Jinja2 Esse pacote é um módulo do Python para modelagem de texto. É exigido para construir o Systemd. * Kbd Esse pacote produz arquivos de tabelas chave, utilitários de teclado para teclados que não sejam estadunidenses e um número de fontes de console. * Kmod Esse pacote fornece aplicativos necessários para administrar os módulos do núcleo Linux. * Less Esse pacote contém um visualizador de arquivo de texto muito bom que permite rolar para cima ou para baixo quando se visualiza um arquivo. Muitos pacotes o usam para paginar a saída gerada. * Libcap Esse pacote implementa as interfaces do espaço de usuário(a) para os recursos POSIX 1003.1e disponíveis nos núcleos Linux. * Libelf O projeto elfutils fornece bibliotecas e ferramentas para arquivos ELF e dados DWARF. A maior parte dos utilitários nesse pacote está disponível em outros pacotes, porém a biblioteca é necessária para construir o núcleo 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 possivelmente não saibam, ao tempo da compilação, quais argumentos são para serem passados para uma função. Por exemplo, um interpretador possivelmente 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 fornece 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 suítes de testes em outros pacotes do LFS. * Libxcrypt Esse pacote fornece a biblioteca libcrypt necessária para vários pacotes (notavelmente, Shadow) para resumir senhas. Ela substitui a implementação obsoleta libcrypt na Glibc. * Núcleo Linux Esse pacote é o Sistema Operacional. Ele é o Linux no ambiente GNU/Linux. * M4 Esse pacote fornece 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 no LFS. * MarkupSafe Esse pacote é um módulo do Python para processar 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 por causa dos recursos superiores de internacionalização dele. Ele fornece o aplicativo man. * Páginas-Manual Esse pacote fornece 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. O objetivo principal do Meson é o de minimizar a quantidade de tempo que desenvolvedores(as) de software precisam investir configurando um sistema de construção. Ele é exigido para construir o Systemd, bem como muitos pacotes do BLFS. * MPC Esse pacote fornece funções aritméticas para números complexos. Ele é exigido pelo GCC. * MPFR Esse pacote contém funções para aritmética de precisão múltipla. Ele é exigido pelo GCC. * Ninja Esse pacote equipa um sistema pequeno de construção com um foco em velocidade. Ele é projetado para ter os arquivos de entrada gerada dele gerados por um sistema de construção de nível mais alto e para executar construções o mais rápido possível. Esse pacote é exigido pelo Meson. * Ncurses Esse pacote contém bibliotecas para o manuseio, independente de terminal, de telas de caractere. Frequentemente é usado para fornecer controle de cursor para um sistema com menus. Ele é necessitado por um número de pacotes no LFS. * Openssl Esse pacote fornece ferramentas e bibliotecas de gerenciamento relacionadas à criptografia. Essas fornecem funções criptográficas para outros pacotes, incluindo o núcleo Linux. * Patch Esse pacote contém um aplicativo para modificar ou criar arquivos aplicando um arquivo de remendo tipicamente criado pelo aplicativo diff. Ele é necessitado pelo procedimento de construção para vários pacotes do LFS. * Perl Esse pacote é um interpretador para a linguagem de tempo de execução PERL. Ele é necessário para a instalação e suítes de teste de vários pacotes do LFS. * Pkgconf Esse pacote contém um aplicativo que ajuda a configurar sinalizadores de compilador e de vinculador para bibliotecas de desenvolvimento. O aplicativo pode ser usado como um substituto imediato do pkg-config, que é necessário para o sistema de construção de muitos pacotes. Ele é mantido mais ativamente e um pouco mais rápido que o pacote Pkg-config original. * Procps-NG Esse pacote contém aplicativos para monitorar processos. Esses aplicativos são úteis para administração de sistema e também são usados pelos scripts de inicialização do LFS. * Psmisc Esse pacote produz 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 projeto que enfatiza a legibilidade de código. * Readline Esse pacote é um conjunto de bibliotecas que oferecem recursos de edição e de histórico de linha de comando. Ele é usado pelo Bash. * Sed Esse pacote permite edição de texto sem abri-lo em um editor de texto. Ele também é necessitado por muitos scripts de configuração dos pacotes do LFS. * Shadow Esse pacote contém aplicativos para manusear senhas seguramente. * Systemd Esse pacote fornece um programa init e vários recursos adicionais de inicialização e de controle de sistema como uma alternativa ao SysVinit. Ele é usado por muitas distribuições do Linux. * Tar Esse pacote fornece recursos de arquivamento e de extração de virtualmente todos os pacotes usados no LFS. * Tcl Esse pacote contém a Tool Command Language usada em muitas suítes de teste. * Texinfo Esse pacote fornece aplicativos para ler, escrever e converter páginas info. Ele é usado nos procedimentos de instalação de muitos pacotes do LFS. * Util-linux Esse pacote contém aplicativos utilitários diversos. Entre eles estão utilitários para manusear sistemas de arquivos, consoles, partições e mensagens. * Vim Esse pacote fornece um editor. Ele foi escolhido por causa da compatibilidade dele com o clássico editor vi e o número gigante de recursos poderosos dele. Um editor é uma escolha muito pessoal para muitas(os) usuárias(os). Qualquer outro editor pode ser substituído, se você desejar. * Wheel Esse pacote fornece um módulo do Python que é a implementação de referência do padrão de empacotamento roda do Python. * XML::Parser Esse pacote é um módulo do Perl que interage com o Expat. * XZ Utils Esse pacote contém aplicativos para comprimir e descomprimir arquivos. Ele fornece a maior compressão geralmente disponível e é útil para descomprimir pacotes no formato XZ ou LZMA. * Zlib Esse pacote contém rotinas de compressão e de descompressão usadas por alguns aplicativos. * Zstd Esse pacote fornece rotinas de compressão e de 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 tornar as coisas mais fáceis de serem seguidas, existem umas poucas convenções tipográficas usadas ao longo deste livro. Esta seção contém alguns exemplos do formato tipográfico encontrado ao longo do Linux From Scratch. ./configure --prefix=/usr Essa forma de texto é projetada para ser digitada exatamente como vista, a menos que seja dito o contrário no texto que a envolve. Também é usada nas seções 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 Observe que a barra invertida precisa ser seguida por uma quebra de linha imediata. Outros caracteres de espaço em branco, como caracteres de espaços ou de tabulação criarão resultados incorretos. install-info: unknown option '--dir-file=/mnt/lfs/usr/info/dir' Essa forma de texto (de largura fixa) mostra a saída gerada em tela, geralmente como o resultado de comandos emitidos. Se você estiver lendo o livro no formato HTML (em vez do PDF), o texto deveria estar azul. O texto de largura fixa também é usado para mostrar nomes de arquivos, tais como /etc/ld.so.conf. Nota Por favor, configure o seu navegador para exibir texto de largura fixa com uma boa fonte mono espaçada, com a qual você possa distinguir claramente os glifos de Il1 ou O0. Ênfase Essa forma de texto é usada para vários propósitos no livro. O propósito principal dela é o de enfatizar pontos ou itens importantes. [189]https://www.linuxfromscratch.org/ Esse formato é usado para hiperlinks tanto dentro da comunidade do LFS, quanto para páginas externas. Inclui HOWTOs, locais de download 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 ao sistema para criar o arquivo $LFS/etc/group a partir do que seja digitado nas linhas seguintes até que a sequência “End Of File” (EOF) seja encontrada. Portanto, essa seção inteira geralmente é digitada como é vista. Esse formato é usado para encapsular texto que não é para ser digitado como visto ou para operações de “copiar-e-colar”. [TEXTO OPCIONAL] Esse formato é usado para encapsular texto que é opcional. [190]passwd(5) Esse formato é usado para referir-se a uma página de manual ("man") específica. O número dentro dos parênteses indica uma seção específica dentro dos manuais. Por exemplo, o "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 "[191]passwd(5)" ele está se referindo especificamente a "/usr/share/man/man5/passwd.5". "man passwd" imprimirá a primeira página de manual que achar que corresponde a “passwd”, a qual será "/usr/share/man/man1/passwd.1". Para esse exemplo, você precisará executar "man 5 passwd" para a finalidade de ler a página sendo especificada. Observe que a maioria das páginas de manual não tem nomes duplicados de páginas em diferentes seções. Portanto, "man " geralmente é suficiente. No livro LFS essas referências para páginas de manual também são hiperlinks, de forma que clicar-se em tal referência abrirá a página de manual renderizada em "HTML" a partir das [192]páginas de manual do Arch Linux. Estrutura Este livro é dividido nas seguintes partes. Parte I – Introdução A Parte I explica umas poucas observações importantes a respeito do como proceder com a instalação do LFS. Essa seção também fornece metainformação a respeito do 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 de Ferramentas Cruzadas e Ferramentas Temporárias do LFS A Parte III fornece instruções para a construção das ferramentas necessárias para construir o sistema LFS final. Parte IV - Construindo o Sistema LFS A Parte IV guia o(a) leitor(a) 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 núcleo. O sistema Linux resultante é a fundação sobre a qual outros aplicativos podem ser construídos para expandir o sistema conforme desejado. No final deste livro, existe uma referência fácil de usar listando todos os aplicativos, bibliotecas e arquivos importantes que tenham sido instalados. Parte V - Anexos 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 dos pacotes, aplicativos, bibliotecas e scripts. Errata e Avisos de Segurança O software usado para criar um sistema LFS constantemente está sendo atualizado e melhorado. Avisos de segurança e correções de defeitos possivelmente se tornem disponíveis depois que o livro LFS tenha sido lançado. Para verificar se versões dos pacotes ou as instruções neste lançamento do LFS necessitam de quaisquer modificações—para reparar vulnerabilidades de segurança ou para corrigir outros defeitos—por favor visite [193]https://www.linuxfromscratch.org/lfs/errata/12.4-systemd/ antes de continuar com a sua construção. Você deveria observar quaisquer mudanças mostradas e aplicá-las às seções relevantes do livro conforme construa o sistema LFS. Adicionalmente, os(as) editores(as) do Linux From Scratch mantém uma lista das vulnerabilidades de segurança descobertas depois que um livro tenha sido lançado. Para ler a lista, por favor visite [194]https://www.linuxfromscratch.org/lfs/advisories/ antes de proceder com sua construção. Você deveria aplicar as mudanças sugeridas pelos avisos às seções relevantes do livro conforme construa o sistema LFS. E, se usará o sistema LFS como um desktop real ou um sistema servidor, [então] você deveria continuar a consultar os avisos e a corrigir quaisquer vulnerabilidades de segurança, mesmo quando o sistema LFS tenha sido completamente construído. 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; o OpenMandriva; Fedora ou openSUSE). Esse sistema Linux existente (o anfitrião) será usado como um ponto de partida para fornecer os aplicativos necessários, incluindo um compilador, um vinculador e um shell para construir o novo sistema. Selecione a opção “desenvolvimento” durante a instalação da distribuição para incluir essas ferramentas. Nota Existem muitas maneiras de se instalar uma distribuição Linux e os padrões geralmente não são ideais para construir um sistema LFS. Para sugestões a respeito de configurar uma distribuição comercial, veja-se: [195]https://www.linuxfromscratch.org/hints/downloads/files/partitionin g-for-lfs.txt. Como uma alternativa a instalar uma distribuição separada em sua máquina, você possivelmente deseje usar um LiveCD de uma distribuição comercial. O [196]Capítulo 2 deste livro descreve como criar uma nova partição Linux nativa e sistema de arquivos, onde o novo sistema LFS será compilado e instalado. O [197]Capítulo 3 explica quais pacotes e patches precisam ser baixados para construir um sistema LFS e como armazená-los no novo sistema de arquivos. O [198]Capítulo 4 discute a configuração de um ambiente de trabalho apropriado. Por favor, leia o [199]Capítulo 4 cuidadosamente, uma vez que ele explica vários assuntos importantes a respeito dos quais você deveria estar ciente antes de começar seu trabalho ao longo do [200]Capítulo 5 e além. O [201]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. O [202]Capítulo 6 te mostra como compilar cruzadamente utilitários básicos usando o recém construído conjunto cruzado de ferramentas. O [203]Capítulo 7 então entra em um ambiente "chroot" onde nós usamos as novas ferramentas para construir todos o restante das ferramentas necessárias para criar o sistema LFS. Esse esforço para isolar o sistema novo do sistema anfitrião possivelmente pareça excessivo. Uma explicação técnica completa do porquê isso é feito é fornecida nas [204]Observações Técnicas do Conjunto de Ferramentas. No [205]Capítulo 8, o sistema LFS completo é construído. Outra vantagem fornecida pelo ambiente chroot é a de que ele te permite continuar usando o sistema anfitrião enquanto o 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 no [206]Capítulo 9, e o núcleo e carregador de inicialização são criados no [207]Capítulo 10. O [208]Capítulo 11 contém informação sobre como continuar a experiência LFS além deste livro. Após os passos neste capítulo terem sido implementados, o computador estará pronto para reinicializar no novo sistema LFS. Esse é o processo em poucas palavras. Informação detalhada sobre cada passo é apresentada nos capítulos seguintes. Itens que pareçam complicados agora 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 lançamento mais recente Aqui está uma lista dos pacotes atualizados desde o lançamento anterior do LFS. Atualizado para: * Automake-1.18.1 * Bash-5.3 * Binutils-2.45 * Coreutils-9.7 * D-Bus-1.16.2 * Diffutils-3.12 * E2fsprogs-1.47.3 * Expat-2.7.1 * Flit-Core-3.12.0 * Gawk-5.3.2 * GCC-15.2.0 * GDBM-1.26 * Gettext-0.26 * Glibc-2.42 * Gperf-3.3 * Grep-3.12 * Gzip-1.14 * Iana-Etc-20250807 * IPRoute2-6.16.0 * Jinja2-3.1.6 * Kbd-2.8.0 * Kmod-34.2 * Less-679 * LFS-Bootscripts-20250827 * Libcap-2.76 * Libelf originário do Elfutils-0.193 * Libffi-3.5.2 * Linux-6.16.1 * M4-1.4.20 * Man-DB-2.13.1 * Man-pages-6.15 * Meson-1.8.3 * MPFR-4.2.2 * Ncurses-6.5-20250809 * Ninja-1.13.1 * OpenSSL-3.5.2 * Patch-2.8 * Perl-5.42.0 * Pkgconf-2.5.1 * Python-3.13.7 * Readline-8.3 * Setuptools-80.9.0 * Shadow-4.18.0 * Systemd-257.8 * Tzdata-2025b * Util-linux-2.41.1 * Vim-9.1.1629 * Wheel-0.46.1 * Xz-5.8.1 Adicionado: * Packaging-25.0 * coreutils-9.7-upstream_fix-1.patch Removido: * Check-0.15.2 1.3. Registro das Mudanças Esta é a versão 12.4-systemd do livro Linux From Scratch, datada de 01 de setembro de 2025. Se este livro for mais antigo que seis meses, uma versão mais nova e melhor provavelmente já está disponível. Para descobrir, por favor verifique um dos espelhos via [209]https://www.linuxfromscratch.org/mirrors.html. Abaixo está uma lista das mudanças feitas desde o lançamento anterior do livro. Entradas do Registro das Mudanças: * 2025-09-01 + [bdubbs] - LFS-12.4 lançado. * 2025-08-15 + [bdubbs] - Adicionar uma modificação para glibc originária do fluxo de desenvolvimento para solver uma incompatibilidade com valgrind. corrige [210]#5778. + [bdubbs] - Atualização para iana-etc-20250807. Endereça [211]#5006. + [bdubbs] - Atualização para vim-9.1.1829. Endereça [212]#4500. + [bdubbs] - Atualização para ncurses-6.5-20250809. Corrige [213]#5780. + [bdubbs] - Atualização para Python-3.13.7 (Atualização de Segurança). Corrige [214]#5779. + [bdubbs] - Atualização para linux-6.16.1. Corrige [215]#5758. + [bdubbs] - Atualização para iproute2-6.16.0. Corrige [216]#5773. + [bdubbs] - Atualização para systemd-257.8. Corrige [217]#5751. * 2025-08-08 + [bdubbs] - Atualização para Python-3.13.6 (Atualização de Segurança). Corrige [218]#5776. + [bdubbs] - Atualização para openssl-3.5.2. Corrige [219]#5775. + [bdubbs] - Atualização para libffi-3.5.2. Corrige [220]#5772. + [bdubbs] - Atualização para gcc-15.2.0. Corrige [221]#5777. * 2025-08-05 + [renodr] - Corrigido CVE-2025-8194 no Python. Corrige [222]#5774. * 2025-08-01 + [bdubbs] - Atualização para meson-1.8.3. Corrige [223]#5771. + [bdubbs] - Atualização para gdbm-1.26. Corrige [224]#5770. + [bdubbs] - Atualização para binutils-2.45. Corrige [225]#5766. + [bdubbs] - Atualização para gettext-0.26. Corrige [226]#5762. + [bdubbs] - Atualização para glibc-2.42. Corrige [227]#5765. + [bdubbs] - Atualização para man-pages-6.15. Corrige [228]#5763. * 2025-07-15 + [bdubbs] - Atualização para vim-9.1.1552 (Atualização de segurança). Corrige [229]#5760. + [bdubbs] - Atualização para readline-8.3. Corrige [230]#5755. + [bdubbs] - Atualização para openssl-3.5.1. Corrige [231]#5723. + [bdubbs] - Atualização para ninja-1.13.1. Corrige [232]#5759. + [bdubbs] - Atualização para linux-6.15.6. Corrige [233]#5757. + [bdubbs] - Atualização para gettext-0.25.1. Corrige [234]#5753. + [bdubbs] - Atualização para e2fsprogs-1.47.3. Corrige [235]#5758. + [bdubbs] - Atualização para bash-5.3. Corrige [236]#5754. * 2025-07-01 + [bdubbs] - Atualização para iana-etc-20250618. Endereça [237]#5006. + [bdubbs] - Atualização para vim-9.1.1497. Endereça [238]#4500. + [bdubbs] - Atualização para util-linux-2.41.1. Corrige [239]#5749. + [bdubbs] - Atualização para pkgconf-2.5.1. Corrige [240]#5746. + [bdubbs] - Atualização para ninja-1.13.0. Corrige [241]#5745. + [bdubbs] - Atualização para linux-6.15.4. Corrige [242]#5748. + [bdubbs] - Atualização para less-679. Corrige [243]#5747. + [bdubbs] - Atualização para automake-1.18.1. Corrige [244]#5752. * 2025-06-15 + [bdubbs] - Atualização para meson-1.8.2. Corrige [245]#5742. + [bdubbs] - Atualização para linux-6.15.2. Corrige [246]#5725. + [bdubbs] - Atualização para libffi-3.5.1. Corrige [247]#5741. + [bdubbs] - Atualização para iproute2-6.15.0. Corrige [248]#5732. + [bdubbs] - Atualização para Python-3.13.5. Corrige [249]#5743. * 2025-06-04 + [bdubbs] - Atualização para ncurses-6.5-20250531. Corrige [250]#5737. + [bdubbs] - Atualização para readline-8.3-rc2. Corrige [251]#5738. + [bdubbs] - Atualização para bash-5.3-rc2. Corrige [252]#5738. + [bdubbs] - Atualização para Python-3.13.4. Corrige [253]#6739. * 2025-06-01 + [bdubbs] - Atualização para iana-etc-20250519. Endereça [254]#5006. + [bdubbs] - Atualização para vim-9.1.1418. Endereça [255]#4500. + [bdubbs] - Atualização para kbd-2.8.0. Corrige [256]#5736. + [bdubbs] - Atualização para systemd-257.6. Corrige [257]#5674. + [bdubbs] - Atualização para setuptools-80.9.0. Corrige [258]#5728. + [bdubbs] - Atualização para meson-1.8.1. Corrige [259]#5731. + [bdubbs] - Atualização para automake-1.18. Corrige [260]#5734. + [bdubbs] - Atualizar instruções de construção para acomodar gcc-15 para bc, expect, ncurses e gmp. + [bdubbs] - Atualização para gcc-15.1.0. Corrige [261]#5707. + [bdubbs] - Atualização para less-678. Corrige [262]#5724. + [bdubbs] - Atualização para readline-8.3-rc1. Corrige [263]#5726. + [bdubbs] - Atualização para bash-5.3-rc1. Corrige [264]#5714. * 2025-05-15 + [bdubbs] - Atualização para setuptools-80.7.1. Corrige [265]#5715. + [bdubbs] - Atualização para man-pages-6.14. Corrige [266]#5720. + [bdubbs] - Atualização para man-db-2.13.1. Corrige [267]#5719. + [bdubbs] - Atualização para m4-1.4.20. Corrige [268]#5722. + [bdubbs] - Atualização para linux-6.14.6. Corrige [269]#5717. + [bdubbs] - Atualização para gettext-0.25. Corrige [270]#5718. * 2025-05-01 + [bdubbs] - Atualização para vim-9.1.1353. Endereça [271]#4500. + [bdubbs] - Atualização para setuptools-80.0.1. Corrige [272]#5710. + [bdubbs] - Atualização para packaging-25.0. Corrige [273]#5706. + [bdubbs] - Atualização para meson-1.8.0. Corrige [274]#5713. + [bdubbs] - Atualização para linux-6.14.4. Corrige [275]#5709. + [bdubbs] - Atualização para iana-etc-20250407. Endereça [276]#5006. + [bdubbs] - Atualização para gperf-3.3. Corrige [277]#5708. + [bdubbs] - Atualização para elfutils-0.193. Corrige [278]#5711. * 2025-04-15 + [bdubbs] - Atualização para libcap-2.76. Corrige [279]#5704. + [bdubbs] - Atualização para perl-5.40.2 (atualização de segurança). Corrige [280]#5703. + [bdubbs] - Adicionar packaging-24.2 (módulo Python). Necessário para wheel. + [bdubbs] - Atualização para xz-5.8.1. Corrige [281]#5694. + [bdubbs] - Atualização para wheel-0.46.1 (Módulo Python). Corrige [282]#5693. + [bdubbs] - Atualização para sysklogd-2.7.2. Corrige [283]#5690. + [bdubbs] - Atualização para Python3-3.13.3. Corrige [284]#5697. + [bdubbs] - Atualização para openssl-3.5.0. Corrige [285]#5701. + [bdubbs] - Atualização para meson-1.7.2. Corrige [286]#5691. + [bdubbs] - Atualização para linux-6.14.2. Corrige [287]#5680. + [bdubbs] - Atualização para iproute2-6.14.0. Corrige [288]#5682. + [bdubbs] - Atualização para gzip-1.14. Corrige [289]#5699. + [bdubbs] - Atualização para grep-3.12. Corrige [290]#5702. + [bdubbs] - Atualização para gperf-3.2.1. Corrige [291]#5695. + [bdubbs] - Atualização para gawk-5.3.2. Corrige [292]#5692. + [bdubbs] - Atualização para diffutils-3.12. Corrige [293]#5696. + [bdubbs] - Atualização para coreutils-9.7. Corrige [294]#5698. * 2025-04-01 + [bdubbs] - Atualização para vim-9.1.1263. Endereça [295]#4500. + [bdubbs] - Atualização para iana-etc-20250328. Endereça [296]#5006. + [bdubbs] - Atualização para xz-5.8.0. Corrige [297]#5684. + [bdubbs] - Atualização para util-linux-2.41. Corrige [298]#5648. + [bdubbs] - Atualização para tzdata-2025b. Corrige [299]#5681. + [bdubbs] - Atualização para setuptools-78.1.0. Corrige [300]#5676. + [bdubbs] - Atualização para patch-2.8. Corrige [301]#5689. + [bdubbs] - Atualização para mpfr-4.2.2. Corrige [302]#5677. + [bdubbs] - Atualização para kmod-34.2. Corrige [303]#5688. + [bdubbs] - Atualização para gdbm-1.25. Corrige [304]#5679. + [bdubbs] - Atualização para flit_core-3.12.0. Corrige [305]#5683. + [bdubbs] - Atualização para expat-2.7.1. Corrige [306]#5685. * 2025-03-15 + [bdubbs] - Atualização para vim-9.1.1202. Endereça [307]#4500. + [bdubbs] - Atualização para iana-etc-20250304. Endereça [308]#5006. + [bdubbs] - Atualização para setuptools-76.0.0. Corrige [309]#5665. + [bdubbs] - Atualização para pkgconf-2.4.3. Corrige [310]#5672. + [bdubbs] - Atualização para man-pages-6.13. Corrige [311]#5673. + [bdubbs] - Atualização para linux-6.13.7. Corrige [312]#5664. + [bdubbs] - Atualização para libcap-2.75. Corrige [313]#5667. + [bdubbs] - Atualização para kmod-34.1. Corrige [314]#5671. + [bdubbs] - Atualização para jinja2-3.1.6. Corrige [315]#5670. + [bdubbs] - Atualização para expat-2.7.0. Corrige [316]#5675. + [bdubbs] - Atualização para dbus-1.16.2. Corrige [317]#5663. * 2025-03-05 + [bdubbs] - LFS-12.3 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 [318]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 você não conseguir encontrar uma resposta para o seu problema na página do FAQ, [então] o próximo passo seria procurar nas listas de discussão em [319]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 [320]https://www.linuxfromscratch.org/mail.html. 1.4.3. IRC Vários membros da comunidade LFS oferecem assistência via 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 de comunicação 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 tornar o acesso ao sítio do projeto e o download dos pacotes exigidos mais conveniente. Por favor visite o sítio web do LFS em [321]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 perguntas e comentários para uma das listas de discussão do LFS (veja acima). 1.5. Ajuda Nota Caso você tenha encontrado um problema ao construir um pacote com a instrução do LFS, nós desencorajamos fortemente postar o problema diretamente no canal de suporte do fluxo de desenvolvimento antes de discutir por meio de um canal de suporte do LFS listado em [322]Seção 1.4, “Recursos.” Fazer isso frequentemente é bastante ineficiente porque os(as) mantenedores(as) de fluxo de desenvolvimento raramente estão familiarizados com o procedimento de construção do LFS. Mesmo se você realmente tiver encontrado um problema de fluxo de desenvolvimento, a comunidade LFS ainda consegue ajudar a isolar as informações desejadas pelos(as) mantenedores(as) de fluxo de desenvolvimento e produzir um informe adequado. Se precisar fazer uma pergunta diretamente por meio de um canal de suporte do(a) desenvolvedor(a), [então] você deveria observar, pelo menos, que muitos projetos de desenvolvedor(a) tem os canais de suporte separados do rastreador de defeitos. Os informes de “defeito” para fazer perguntas são considerados inválidos e podem incomodar os(as) desenvolvedores(as) upstream para esses projetos. Se um problema ou uma pergunta for encontrado durante o trabalho ao longo deste livro, [então], por favor, verifique a página de Perguntas Frequentes em [323]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: [324]https://www.linuxfromscratch.org/hints/downloads/files/errors.txt. Se você não conseguir achar seu problema listado nas Perguntas Frequentes, [então] procure nas listas de discussão em [325]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 [326]Seção 1.4, “Recursos” deste livro). Entretanto, nós temos várias perguntas de suporte todos os dias e muitas delas poderiam ter sido facilmente respondidas indo para as Perguntas Frequentes ou procurando nas listas de discussão primeiro. Então, para que nós possamos oferecer a melhor assistência possível, você deveria primeiro fazer alguma pesquisa por conta própria. 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 por ajuda. 1.5.1. Coisas a Mencionar Além de uma breve explicação do problema sendo vivenciado, qualquer solicitação por ajuda deveria incluir estas coisas essenciais: * A versão do livro sendo usada (neste caso 12.4-systemd) * A distribuição anfitriã e versão sendo usada para criar o LFS * A saída gerada originária do script [327]Exigências do Sistema Anfitrião * O pacote ou seção onde o problema foi encontrado * A mensagem exata do erro ou uma descrição clara do problema * Observação se você tiver se desviado do livro afinal Nota Desviar-se deste livro não significa que nós não vamos te ajudar. Afinal de contas, o LFS é acerca de preferência pessoal. Ser sincero a respeito de quaisquer mudanças no procedimento estabelecido nos ajuda a avaliar e determinar possíveis causas do seu problema. 1.5.2. Problemas do Script de Configuração Se algo der errado quando executar o script configure, [então] revise o arquivo config.log. Esse arquivo possivelmente contenha erros encontrados durante o 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 gerada da tela quanto o conteúdo de vários arquivos são úteis para determinar a causa de problemas de compilação. A saída gerada da tela originária do script configure e a execução do make podem ser úteis. Não é necessário incluir a saída gerada inteira, mas inclua toda a informação relevante. Aqui está um exemplo do tipo de informação a incluir a partir da saída gerada de tela do make. gcc -D ALIASPATH=\"/mnt/lfs/usr/share/locale:.\" -D LOCALEDIR=\"/mnt/lfs/usr/share/locale\" -D LIBDIR=\"/mnt/lfs/usr/lib\" -D INCLUDEDIR=\"/mnt/lfs/usr/include\" -D HAVE_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 o problema, pois essa linha apenas mostra que algo deu errado, não o que deu errado. A seção inteira, como no exemplo acima, é o que deveria ser salva, porque ela inclui o comando que foi executado e todas as mensagens de erro associadas. Um artigo excelente sobre como pedir ajuda na Internet está disponível online em [328]http://catb.org/~esr/faqs/smart-questions.html. Leia esse documento e siga as dicas. Fazer isso aumentará a possibilidade de obter 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 a construção do 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 2.2.1. Hardware Os(As) editores(as) do LFS recomendam que a CPU do sistema tenha pelo menos quatro núcleos e que o sistema tenha pelo menos oito (08) GB de memória. Os sistemas mais antigos que não atendam a essas exigências ainda funcionarão, porém o tempo para construir os pacotes será significantemente maior que o documentado. 2.2.2. Software O teu sistema anfitrião deveria ter o seguinte logiciário com as versões mínimas indicadas. Isso não deveria ser um problema para a maioria das distribuições modernas do Linux. Também, observe que muitas distribuições colocarão cabeçalhos de logiciários dentro de pacotes separados, frequentemente na forma de -devel ou -dev. Certifique-se de instalá-los se a tua distribuição os fornecer. Versões anteriores dos pacotes de software listados possivelmente 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.45 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-8.1 * Diffutils-2.8.1 * Findutils-4.2.31 * Gawk-4.0.1 (/usr/bin/awk deveria ser um link para gawk) * GCC-5.4 incluindo o compilador C++, g++ (Versões maiores que 15.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 precisam estar presentes, de forma que o compilador C++ possa construir programas hospedados * Grep-2.5.1a * Gzip-1.3.12 * Núcleo Linux-5.4 A razão para a exigência da versão do núcleo é a de que nós especificamos essa versão quando da construção da glibc no [329]Capítulo 5 e [330]Capítulo 8, de forma que as soluções alternativas para os núcleos mais antigos não estão habilitadas e a glibc compilada é ligeiramente mais rápida e menor. Em dezembro de 2024, 5.4 é o lançamento mais antigo do núcleo ainda suportado pelos(as) desenvolvedores(as) do núcleo. Alguns lançamentos de núcleo mais antigos que 5.4 possivelmente ainda sejam suportados por equipes de terceiros, porém não são considerados lançamentos oficiais de desenvolvedor(a) do núcleo; leia-se [331]https://kernel.org/category/releases.html para os detalhes. Se o núcleo do anfitrião for anterior a 5.4, [então] você precisará substituir o núcleo por uma versão mais atualizada. Existem duas maneiras de você fazer isso. Primeira, veja se seu fornecedor Linux fornece um pacote do núcleo 5.4 ou mais atual. Se sim, [então] você possivelmente deseje instalá-lo. Se seu fornecedor não oferecer um pacote de núcleo aceitável ou você preferisse não instalá-lo, [então] você mesmo(a) pode compilar um núcleo. Instruções para a compilação de núcleo e configuração de carregador de inicialização (presumindo que o anfitrião usa GRUB) estão localizadas no [332]Capítulo 10. Nós exigimos que o núcleo do anfitrião suporte o pseudo terminal UNIX 98 (PTY). Ele deveria estar habilitado em todas as distribuições desktop ou servidor que embarquem o Linux 5.4 ou um núcleo mais recente. Se você estiver construindo um núcleo personalizado de anfitrião, certifique-se de que CONFIG_UNIX98_PTYS esteja configurada como y na configuração do núcleo. * 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-5.0 * 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.) possivelmente funcionem, porém não são testados ou suportados pela equipe de desenvolvimento do LFS e possivelmente exijam ou desvio das instruções ou remendos adicionais para alguns pacotes. Para ver se o seu sistema anfitrião tem todas as versões apropriadas e a habilidade de compilar aplicativos, execute os seguintes comandos: cat > version-check.sh << "EOF" #!/bin/bash # Um conjunto sequencial de comandos para listar os números de versão de ferrame ntas críticas de desenvolvimento # Se você tiver ferramentas instaladas em outros diretórios, [então] ajuste "PAT H" aqui E # em ~lfs/.bashrc (seção 4.4) também. LC_ALL=C PATH=/usr/bin:/bin bail() { echo "FATAL: $1"; exit 1; } grep --version > /dev/null 2> /dev/null || bail "grep não funciona" sed '' /dev/null || bail "sed não funciona" sort /dev/null || bail "sort não funciona" ver_check() { if ! type -p $2 &>/dev/null then echo "ERRO: Não conseguiu encontrar $2 ($1)"; return 1; fi v=$($2 --version 2>&1 | grep -E -o '[0-9]+\.[0-9\.]+[a-z]*' | head -n1) if printf '%s\n' $3 $v | sort --version-sort --check &>/dev/null then printf "OK: %-9s %-6s >= $3\n" "$1" "$v"; return 0; else printf "ERRO: %-9s é MUITO ANTIGO ($3 ou posterior exigido)\n" "$1"; return 1; fi } ver_kernel() { kver=$(uname -r | grep -E -o '^[0-9\.]+') if printf '%s\n' $1 $kver | sort --version-sort --check &>/dev/null then printf "OK: núcleo Linux $kver >= $1\n"; return 0; else printf "ERRO: núcleo Linux ($kver) é MUITO ANTIGO ($1 ou posterior exigido )\n" "$kver"; return 1; fi } # "Coreutils" primeiro, pois "--version-sort" precisa do "Coreutils" >= 7.0 ver_check Coreutils sort 8.1 || bail "Coreutils muito antigo, pare" ver_check Bash bash 3.2 ver_check Binutils ld 2.13.1 ver_check Bison bison 2.7 ver_check Diffutils diff 2.8.1 ver_check Findutils find 4.2.31 ver_check Gawk gawk 4.0.1 ver_check GCC gcc 5.4 ver_check "GCC (C++)" g++ 5.4 ver_check Grep grep 2.5.1a ver_check Gzip gzip 1.3.12 ver_check M4 m4 1.4.10 ver_check Make make 4.0 ver_check Patch patch 2.5.4 ver_check Perl perl 5.8.8 ver_check Python python3 3.4 ver_check Sed sed 4.1.5 ver_check Tar tar 1.22 ver_check Texinfo texi2any 5.0 ver_check Xz xz 5.0.0 ver_kernel 5.4 if mount | grep -q 'devpts on /dev/pts' && [ -e /dev/ptmx ] then echo "OK: núcleo Linux suporta PTY do UNIX 98"; else echo "ERRO: núcleo Linux NÃO suporta PTY do UNIX 98"; fi alias_check() { if $1 --version 2>&1 | grep -qi $2 then printf "OK: %-4s is $2\n" "$1"; else printf "ERRO: %-4s is NOT $2\n" "$1"; fi } echo "Aliases:" alias_check awk GNU alias_check yacc Bison alias_check sh Bash echo "Verificação do compilador:" if printf "int main(){}" | g++ -x c++ - then echo "OK: g++ funciona"; else echo "ERRO: g++ NÃO funciona"; fi rm -f a.out if [ "$(nproc)" = "" ]; then echo "ERRO: nproc não está disponível ou ele produz saída gerada vazia" else echo "OK: nproc informa que $(nproc) núcleos lógicos estão disponíveis" fi EOF bash version-check.sh 2.3. Construindo o LFS em Estágios O LFS é projetado 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 de ser construído de uma vez só. O problema é que certos procedimentos precisam ser repetidos depois de uma inicialização quando se retomando o LFS em pontos diferentes. 2.3.1. Capítulos 1–4 Esses capítulos executam comandos no sistema anfitrião. Quando da reinicialização, esteja certo(a) de uma coisa: * Os procedimentos realizados como o(a) usuário(a) 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 precisa estar montada. * Esses dois capítulos precisam ser feitos como o(a) usuário(a) lfs. Um comando su - lfs precisa ser emitido antes de realizar qualquer tarefa nesses capítulos. Se você não fizer isso, [então] você está no risco de instalar pacotes no sistema anfitrião e potencialmente torná-lo inutilizável. * Os procedimentos em [333]Instruções Gerais de Compilação são críticos. Se existir qualquer dúvida se um pacote tiver sido instalado corretamente, [então] certifique-se de que o tarball anteriormente expandido tenha sido removido, então extraia novamente o pacote e complete todas as instruções naquela seção. 2.3.3. Capítulos 7–10 * A partição /mnt/lfs precisa estar montada. * Umas poucas operações, desde “Preparando Sistemas de Arquivos Virtuais do Núcleo” até “Entrando no Ambiente Chroot”, precisam ser feitas como o(a) usuário(a) root, com a variável de ambiente LFS configurada para o(a) usuário(a) root. * Quando entrar em chroot, a variável de ambiente LFS precisa estar configurada para o(a) root. A variável LFS não é usada depois que o ambiente chroot tiver sido acessado. * Os sistemas virtuais de arquivo precisam estar montados. Isso pode ser feito antes ou depois de entrar no chroot mudando-se para um terminal virtual do anfitrião e, como root, executando-se os comandos em [334]Seção 7.3.1, “Montando e Povoando /dev” e [335]Seção 7.3.2, “Montando Sistemas de Arquivos Virtuais do Núcleo.” 2.4. Criando uma Nova Partição Como a maior parte dos outros sistemas operacionais, o 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 tarballs dos 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 armazenamento temporário livre suficiente. Adicionalmente, a compilação de pacotes pode exigir um monte de 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 o "cfdisk" ou o "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 a unidade primária de disco. Crie uma partição nativa do "Linux" e uma partição "swap", se necessária. Por favor, recorra a "[336]cfdisk(8)" ou a "[337]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 [338]RAID ou em um volume lógico [339]LVM. Entretanto, algumas dessas opções exigem um [340]initramfs, o que é um tópico avançado. Essas metodologias de particionamento não são recomendadas para usuárias(os) do 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 do 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 Solicitações de conselhos a respeito de particionamento do sistema frequentemente são postados nas listas de discussão do LFS. Esse é um tópico altamente subjetivo. O padrão para a maioria das distribuições é o de usar a unidade inteira com a exceção de uma pequena partição de swap. Isso não é ideal para o LFS por várias razões. Isso reduz flexibilidade; torna o compartilhamento de dados entre múltiplas distribuições ou construções do 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 do sistema de arquivos. 2.4.1.1. A Partição Raiz Uma partição raiz do 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 o LFS e a maior parte do 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 o 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ê quiser usar o recurso da 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 unidades rígidas mecânicas você geralmente pode dizer se um sistema está usando swap simplesmente monitorando a atividade do disco e observando como o sistema reage a comandos. Com um SSD você não estará apta(o) a monitorar swap, porém você consegue dizer quanto espaço de swap está sendo usado executando os aplicativos top ou free. O uso de um 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, precisa ser criada se ela já não existir. Essa partição não é formatada, porém precisa estar disponível para o GRUB usar durante a instalação do carregador de inicialização. Essa partição normalmente será rotulada de 'BIOS Boot' se usar o fdisk ou terá um código de EF02 se usar o comando gdisk. Nota A Partição de Bios Grub precisa estar na unidade que o BIOS usa para inicializar o sistema. Essa não é necessariamente a unidade que mantém a partição raiz do LFS. Os discos em um sistema possivelmente usem tipos diferentes de tabela de partição. A necessidade da partição de Bios Grub 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 os kerneis 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 na sua primeira unidade de disco. Um tamanho de partição de duzentos (200) megabytes é adequado. * /boot/efi – A Partição do Sistema EFI, a qual é necessária para inicializar o sistema com UEFI. Leia-se [341]a página do BLFS para detalhes. * /home – Altamente recomendada. Compartilhe seu diretório home e personalizações de usuário(a) entre múltiplas distribuições ou construções do LFS. O tamanho geralmente é bastante grande e depende do espaço de disco disponível. * /usr – No 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 o LFS, uma partição separada para /usr normalmente não é necessária. Se, de qualquer maneira, você criá-la, [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 estar ciente de que um initramfs (não coberto pelo LFS) será necessário para inicializar um sistema com partição /usr separada. * /opt – Esse diretório é mais útil para o BLFS onde múltiplos pacotes grandes como o KDE ou o Texlive podem ser instalados sem embutir os arquivos na hierarquia /usr. Se usado, 5 a 10 gigabytes geralmente é adequado. * /tmp – Por padrão, o systemd monta um tmpfs aqui. Se você quiser substituir esse comportamento, siga [342]Seção 9.10.3, “Desabilitando tmpfs para /tmp” quando configurar o sistema LFS. * /usr/src – Essa partição é muito útil para disponibilizar um local para armazenar os arquivos fonte do BLFS e compartilhá-los entre construções do LFS. Ela também pode ser usada como um local para construir pacotes do BLFS. Uma partição razoavelmente grande de 30 a 50 gigabytes fornece abundância de espaço. Qualquer partição separada que você queira montada automaticamente quando o sistema iniciar precisa ser especificada no arquivo /etc/fstab. Detalhes a respeito do como especificar partições serão discutidos na [343]Seção 10.2, “Criando o Arquivo /etc/fstab”. 2.5. Criando um Sistema de Arquivos na Partição Uma partição é apenas um intervalo de setores em uma unidade de disco, delimitados por fronteiras configuradas em uma tabela de partição. Antes do sistema operacional conseguir usar uma partição para armazenar quaisquer arquivos, a partição precisa estar formatada para conter um sistema de arquivos, tipicamente consistindo de um rótulo, blocos de diretório, blocos de dados e um esquema de indexação para localizar um arquivo em particular mediante demanda. O sistema de arquivos também auxilia o SO a manter rastreio do espaço livre na partição; reservar os setores necessários quando um arquivo novo for criado ou um arquivo existente for estendido; e reciclar os segmentos de dados livres criados quando arquivos são deletados. Possivelmente também forneça suporte para redundância de dados e para recuperação dos erros. O LFS consegue 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 certo pode ser complexa; depende das características dos arquivos e do 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 um diário para ajudar a recuperar a situação da partição no caso de desligamento inadequado. É comumente usada como sistema de arquivos de propósito geral. ext4 é a versão mais recente da família ext de sistemas de arquivos. Ela fornece várias capacidades novas incluindo carimbos de tempo em nano segundos; criação e uso de arquivos muito grandes (até 16 TB); e melhoramentos de velocidade. Outros sistemas de arquivos, incluindo FAT32, NTFS, JFS e XFS são úteis para propósitos especializados. Mais informação a respeito desses sistemas de arquivos, e de muitos outros, pode ser encontrada em [344]https://en.wikipedia.org/wiki/Comparison_of_file_systems. O LFS assume que o sistema de arquivos raiz (/) é do tipo ext4. Para criar um sistema de arquivos ext4 na partição do LFS, emita o seguinte comando: mkfs -v -t ext4 /dev/ Substitua pelo nome da partição do LFS. Se você estiver 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 pelo nome da partição swap. 2.6. Configurando a Variável $LFS e o Umask 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 do 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 você possivelmente escolha qualquer nome de diretório que queira. Se você está construindo o LFS em uma partição separada, [então] esse diretório será o ponto de montagem para a partição. Escolha um local 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, que podem ser digitados literalmente. O shell automaticamente substituirá “$LFS” por “/mnt/lfs” (ou para o que a variável foi configurada) quando processar a linha de comando. Agora configure a máscara de criação do modo de arquivo (umask) para 022 caso a distribuição anfitriã use um padrão diferente: umask 022 Configurar o umask como 022 garante que os arquivos e diretórios recém-criados sejam escrevíveis somente pelos(as) donos(as) deles, mas sejam legíveis e pesquisáveis (somente para diretórios) por qualquer pessoa (assumindo que os modos padrão são usados pela chamada de sistema [345]open(2), novos arquivos acabarão com o modo de permissão 644 e diretórios com o modo 755). Um padrão excessivamente permissivo pode deixar buracos de segurança no sistema LFS, e um padrão excessivamente restritivo pode causar problemas estranhos ao construir ou usar o sistema LFS. Cuidado Não se esqueça de verificar se LFS está configurada e se o umask está configurado como 022 sempre que você sair e reentrar no ambiente de trabalho atual (como ao fazer um su para root ou outro(a) usuário(a)). Verifique se a variável LFS está configurada corretamente com: echo $LFS Certifique-se de que a saída gerada mostre o caminho para o local de construção do teu sistema LFS, que é /mnt/lfs se o exemplo fornecido foi seguido. Verifique se o umask está configurado corretamente com: umask A saída gerada possivelmente seja 0022 ou 022 (o número de zeros à esquerda depende da distribuição anfitriã). Se qualquer saída gerada desses dois comandos estiver incorreta, use o comando dado anteriormente nesta página para configurar $LFS como o nome correto de diretório e configurar umask como 022. Nota Uma maneira de garantir que a variável LFS e o umask estejam sempre configuradas corretamente é a de editar o arquivo .bash_profile em teu diretório pessoal e em /root/.bash_profile e inserir os comandos export e umask acima. Além disso, o shell especificado no arquivo /etc/passwd para todos(as) os(as) usuários(as) que precisam da variável LFS precisa ser bash para garantir que o arquivo .bash_profile seja incorporado como parte do processo de login. Outra consideração é o método que é usado para logar no sistema anfitrião. Se logar por intermédio de um gerenciador gráfico de tela, o .bash_profile do(a) usuário(a) normalmente não é usado quando um terminal virtual for iniciado. Nesse caso, adicione os comandos ao arquivo .bashrc para o(a) usuário(a) e root. Adicionalmente, algumas distribuições usam um teste "if" e não executam as instruções restantes do .bashrc para uma invocação não interativa do bash. Certifique-se de colocar os comandos antes do teste para uso não interativo. 2.7. Montando a Nova Partição Agora que um sistema de arquivos tenha sido criado, a partição precisa ser montada, de forma que o sistema anfitrião consiga acessá-la. Este livro presume que o sistema de arquivos esteja montado no diretório especificado pela variável de ambiente LFS descrita na seção anterior. Estritamente falando, ninguém consegue “montar uma partição”. A pessoa monta o sistema de arquivos embutido naquela partição. Porém, dado que uma partição não pode conter mais que um sistema de arquivos, as pessoas frequentemente falam da partição e do sistema de arquivos associado como se fossem um e o mesmo. Crie o ponto de montagem e monte o sistema de arquivos do LFS com estes comandos: mkdir -pv $LFS mount -v -t ext4 /dev/ $LFS Substitua pelo nome da partição do LFS. Se estiver usando múltiplas partições para o LFS (por exemplo, uma para / e outra para /home), [então] monte-as como isto: mkdir -pv $LFS mount -v -t ext4 /dev/ $LFS mkdir -v $LFS/home mount -v -t ext4 /dev/ $LFS/home Substitua e pelos nomes apropriados das partições. Configure o(a) dono(a) e o modo de permissão do diretório $LFS (ou seja, o diretório raiz no sistema de arquivos recém-criado para o sistema LFS) como root e 755 caso a distribuição anfitriã tenha sido configurada para usar um padrão diferente para mkfs: chown root:root $LFS chmod 755 $LFS Assegure-se de que essa nova partição não esteja montada com permissões que sejam restritivas demais (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 do LFS montada. Se nosuid e (ou) nodev estiverem configuradas, [então] a partição precisa ser remontada. Atenção As instruções acima assumem que você não estará reiniciando seu computador no decorrer do processo do LFS. Se você desligar seu sistema, [então] você ou precisará remontar a partição do LFS a cada vez que você reiniciar o processo de construção, ou modificar o arquivo /etc/fstab do sistema anfitrião para remontá-la automaticamente quando você reinicializar. Por exemplo, você poderia acrescentar esta linha ao seu arquivo /etc/fstab: /dev/ /mnt/lfs ext4 defaults 1 1 Se você usar partições adicionais opcionais, [então] certifique-se de acrescentá-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 pelo nome da partição swap. Agora que a nova partição do LFS está aberta para negócios, é tempo de baixar os pacotes. Capítulo 3. Pacotes e Remendos 3.1. Introdução Este capítulo inclui uma lista de pacotes que precisam ser baixados para a finalidade de 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 possivelmente não funcionem com uma versão diferente, a menos que a versão diferente seja especificada por uma errata do LFS ou conselho de segurança. As versões mais novas de pacote possivelmente também tenham problemas que exijam contornos. Esses contornos serão desenvolvidos e estabilizados 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 aquele lançamento possivelmente seja publicado com nomes de arquivo semelhantes ou até mesmo idênticos. Porém, o tarball de lançamento possivelmente contenha alguns arquivos que sejam essenciais, embora não armazenados no repositório (por exemplo, um conjunto de comandos sequenciais configure gerado pelo autoconf), em adição ao conteúdo do correspondente instantâneo de repositório. O livro usa tarballs de lançamento sempre que possível. Usar um instantâneo de repositório em vez de um tarball de lançamento especificado pelo livro causará problemas. Os locais das transferências possivelmente não estejam sempre acessíveis. Se um local de transferência tiver mudado desde quando este livro foi publicado, [então] o Google ([346]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 transferência em [347]https://www.linuxfromscratch.org/lfs/mirrors.html#files. Os pacotes e os remendos 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 os remendos, quanto como um diretório de trabalho. Usando esse diretório, os elementos exigidos estarão localizados na partição do 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 transferência: 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 remendos necessários para construir o LFS: * Os arquivos podem ser transferidos 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 transferido a partir de um dos sítios espelhos listados em [348]https://www.linuxfromscratch.org/mirrors.html#files. * Os arquivos podem ser transferidos usando o wget e uma lista wget conforme descrito abaixo. Para transferir todos os pacotes e os remendos usando a [349]wget-list-systemd como uma entrada gerada para o comando wget, use: wget --input-file=wget-list-systemd --continue --directory-prefix=$LFS/sources Adicionalmente, começando com o LFS-7.0, existe um arquivo separado, [350]md5sums, que pode ser usado para verificar se todos os pacotes corretos estão disponíveis antes de prosseguir. Coloque aquele 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. Se os pacotes e os remendos forem transferidos como um(a) usuário(a) não root, [então] esses arquivos serão de propriedade do(a) usuário(a). O sistema de arquivos registra o(a) proprietário(a) pelo UID dele(a) e o UID de um(a) usuário(a) normal na distribuição anfitriã não é atribuído no LFS. Assim, os arquivos serão deixados de propriedade de um UID sem nome no sistema LFS final. Se você não atribuirá o mesmo UID para o(a) seu(ua) usuário(a) no sistema LFS, [então] mude os proprietários(as) desses arquivos para root agora para evitar esse problema: chown root:root $LFS/sources/* 3.2. Todos os Pacotes Nota Leia os [351]avisos de segurança antes de transferir os pacotes para descobrir se uma versão mais nova de qualquer pacote deveria ser usada para evitar vulnerabilidades de segurança. Os fontes do(a) desenvolvedor(a) possivelmente removam lançamentos antigos, especialmente quando esses lançamentos contenham uma vulnerabilidade de segurança. Se um URL abaixo não estiver alcançável, [então] você deveria ler os avisos de segurança primeiro para descobrir se uma versão mais nova (com a vulnerabilidade consertada) deveria ser usada. Se não, [então] tente transferir o pacote removido a partir de um espelho. Apesar de ser possível transferir um lançamento antigo a partir de um espelho, mesmo se esse lançamento tiver sido removido por causa de uma vulnerabilidade, não é uma boa ideia usar um lançamento conhecido por ser vulnerável quando da construção do seu sistema. Transfira ou de outra forma obtenha os seguintes pacotes: Acl (2.3.2) - 363 KB: Página inicial: [352]https://savannah.nongnu.org/projects/acl Transferência: [353]https://download.savannah.gnu.org/releases/acl/acl-2.3.2.ta r.xz Soma de verificação MD5: 590765dee95907dbc3c856f7255bd669 Attr (2.5.2) - 484 KB: Página inicial: [354]https://savannah.nongnu.org/projects/attr Transferência: [355]https://download.savannah.gnu.org/releases/attr/attr-2.5.2. tar.gz Soma de verificação MD5: 227043ec2f6ca03c0948df5517f9c927 Autoconf (2.72) - 1.360 KB: Página inicial: [356]https://www.gnu.org/software/autoconf/ Transferência: [357]https://ftp.gnu.org/gnu/autoconf/autoconf-2.72.tar.xz Soma de verificação MD5: 1be79f7106ab6767f18391c5e22be701 Automake (1.18.1) - 1.614 KB: Página inicial: [358]https://www.gnu.org/software/automake/ Transferência: [359]https://ftp.gnu.org/gnu/automake/automake-1.18.1.tar.xz Soma de verificação MD5: cea31dbf1120f890cbf2a3032cfb9a68 Bash (5.3) - 11.089 KB: Página inicial: [360]https://www.gnu.org/software/bash/ Transferência: [361]https://ftp.gnu.org/gnu/bash/bash-5.3.tar.gz Soma de verificação MD5: 977c8c0c5ae6309191e7768e28ebc951 Bc (7.0.3) - 464 KB: Página inicial: [362]https://github.com/gavinhoward Transferência: [363]https://github.com/gavinhoward/bc/releases/download/7.0.3/b c-7.0.3.tar.xz Soma de verificação MD5: ad4db5a0eb4fdbb3f6813be4b6b3da74 Binutils (2.45) - 27.216 KB: Página inicial: [364]https://www.gnu.org/software/binutils/ Transferência: [365]https://sourceware.org/pub/binutils/releases/binutils-2.45. tar.xz Soma de verificação MD5: dee5b4267e0305a99a3c9d6131f45759 Bison (3.8.2) - 2.752 KB: Página inicial: [366]https://www.gnu.org/software/bison/ Transferência: [367]https://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.xz Soma de verificação MD5: c28f119f405a2304ff0a7ccdcc629713 Bzip2 (1.0.8) - 792 KB: Transferência: [368]https://www.sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz Soma de verificação MD5: 67e051268d0c475ea773822f7500d0e5 Coreutils (9.7) - 6.015 KB: Página inicial: [369]https://www.gnu.org/software/coreutils/ Transferência: [370]https://ftp.gnu.org/gnu/coreutils/coreutils-9.7.tar.xz Soma de verificação MD5: 6b7285faf7d5eb91592bdd689270d3f1 D-Bus (1.16.2) - 1.090 KB: Página inicial: [371]https://www.freedesktop.org/wiki/Software/dbus Transferência: [372]https://dbus.freedesktop.org/releases/dbus/dbus-1.16.2.tar. xz Soma de verificação MD5: 97832e6f0a260936d28536e5349c22e5 DejaGNU (1.6.3) - 608 KB: Página inicial: [373]https://www.gnu.org/software/dejagnu/ Transferência: [374]https://ftp.gnu.org/gnu/dejagnu/dejagnu-1.6.3.tar.gz Soma de verificação MD5: 68c5208c58236eba447d7d6d1326b821 Diffutils (3.12) - 1.894 KB: Página inicial: [375]https://www.gnu.org/software/diffutils/ Transferência: [376]https://ftp.gnu.org/gnu/diffutils/diffutils-3.12.tar.xz Soma de verificação MD5: d1b18b20868fb561f77861cd90b05de4 E2fsprogs (1.47.3) - 9.851 KB: Página inicial: [377]https://e2fsprogs.sourceforge.net/ Transferência: [378]https://downloads.sourceforge.net/project/e2fsprogs/e2fspro gs/v1.47.3/e2fsprogs-1.47.3.tar.gz Soma de verificação MD5: 113d7a7ee0710d2a670a44692a35fd2e Elfutils (0.193) - 11.695 KB: Página inicial: [379]https://sourceware.org/elfutils/ Transferência: [380]https://sourceware.org/ftp/elfutils/0.193/elfutils-0.193.ta r.bz2 Soma de verificação MD5: ceefa052ded950a4c523688799193a44 Expat (2.7.1) - 485 KB: Página inicial: [381]https://libexpat.github.io/ Transferência: [382]https://github.com/libexpat/libexpat/releases/download/R_2_ 7_1/expat-2.7.1.tar.xz Soma de verificação MD5: 9f0c266ff4b9720beae0c6bd53ae4469 Expect (5.45.4) - 618 KB: Página inicial: [383]https://core.tcl.tk/expect/ Transferência: [384]https://prdownloads.sourceforge.net/expect/expect5.45.4.tar .gz Soma de verificação MD5: 00fce8de158422f5ccd2666512329bd2 File (5.46) - 1.283 KB: Página inicial: [385]https://www.darwinsys.com/file/ Transferência: [386]https://astron.com/pub/file/file-5.46.tar.gz Soma de verificação MD5: 459da2d4b534801e2e2861611d823864 Findutils (4.10.0) - 2.189 KB: Página inicial: [387]https://www.gnu.org/software/findutils/ Transferência: [388]https://ftp.gnu.org/gnu/findutils/findutils-4.10.0.tar.xz Soma de verificação MD5: 870cfd71c07d37ebe56f9f4aaf4ad872 Flex (2.6.4) - 1.386 KB: Página inicial: [389]https://github.com/westes/flex Transferência: [390]https://github.com/westes/flex/releases/download/v2.6.4/fle x-2.6.4.tar.gz Soma de verificação MD5: 2882e3179748cc9f9c23ec593d6adc8d Flit-core (3.12.0) - 53 KB: Página inicial: [391]https://pypi.org/project/flit-core/ Transferência: [392]https://pypi.org/packages/source/f/flit-core/flit_core-3.12 .0.tar.gz Soma de verificação MD5: c538415c1f27bd69cbbbf3cdd5135d39 Gawk (5.3.2) - 3.662 KB: Página inicial: [393]https://www.gnu.org/software/gawk/ Transferência: [394]https://ftp.gnu.org/gnu/gawk/gawk-5.3.2.tar.xz Soma de verificação MD5: b7014650c5f45e5d4837c31209dc0037 GCC (15.2.0) - 98.688 KB: Página inicial: [395]https://gcc.gnu.org/ Transferência: [396]https://ftp.gnu.org/gnu/gcc/gcc-15.2.0/gcc-15.2.0.tar.xz Soma de verificação MD5: b861b092bf1af683c46a8aa2e689a6fd GDBM (1.26) - 1.198 KB: Página inicial: [397]https://www.gnu.org/software/gdbm/ Transferência: [398]https://ftp.gnu.org/gnu/gdbm/gdbm-1.26.tar.gz Soma de verificação MD5: aaa600665bc89e2febb3c7bd90679115 Gettext (0.26) - 9.926 KB: Página inicial: [399]https://www.gnu.org/software/gettext/ Transferência: [400]https://ftp.gnu.org/gnu/gettext/gettext-0.26.tar.xz Soma de verificação MD5: 8e14e926f088e292f5f2bce95b81d10e Glibc (2.42) - 19.464 KB: Página inicial: [401]https://www.gnu.org/software/libc/ Transferência: [402]https://ftp.gnu.org/gnu/glibc/glibc-2.42.tar.xz Soma de verificação MD5: 23c6f5a27932b435cae94e087cb8b1f5 Nota Os(As) desenvolvedores(as) da Glibc mantém uma [403]ramificação Git contendo remendos considerados valiosos para a Glibc-2.42, porém infelizmente desenvolvidos depois do lançamento da Glibc-2.42. Os(As) editores(as) do LFS emitirão um aviso de segurança se alguma correção de segurança for acrescentada na ramificação, porém nenhuma ação será tomada para outros remendos acrescentados recentemente. Você possivelmente reveja os remendos você mesmo(a) e incorpore alguns remendos se você os considerar importantes. GMP (6.3.0) - 2.046 KB: Página inicial: [404]https://www.gnu.org/software/gmp/ Transferência: [405]https://ftp.gnu.org/gnu/gmp/gmp-6.3.0.tar.xz Soma de verificação MD5: 956dc04e864001a9c22429f761f2c283 Gperf (3.3) - 1.789 KB: Página inicial: [406]https://www.gnu.org/software/gperf/ Transferência: [407]https://ftp.gnu.org/gnu/gperf/gperf-3.3.tar.gz Soma de verificação MD5: 31753b021ea78a21f154bf9eecb8b079 Grep (3.12) - 1.874 KB: Página inicial: [408]https://www.gnu.org/software/grep/ Transferência: [409]https://ftp.gnu.org/gnu/grep/grep-3.12.tar.xz Soma de verificação MD5: 5d9301ed9d209c4a88c8d3a6fd08b9ac Groff (1.23.0) - 7.259 KB: Página inicial: [410]https://www.gnu.org/software/groff/ Transferência: [411]https://ftp.gnu.org/gnu/groff/groff-1.23.0.tar.gz Soma de verificação MD5: 5e4f40315a22bb8a158748e7d5094c7d GRUB (2.12) - 6.524 KB: Página inicial: [412]https://www.gnu.org/software/grub/ Transferência: [413]https://ftp.gnu.org/gnu/grub/grub-2.12.tar.xz Soma de verificação MD5: 60c564b1bdc39d8e43b3aab4bc0fb140 Gzip (1.14) - 865 KB: Página inicial: [414]https://www.gnu.org/software/gzip/ Transferência: [415]https://ftp.gnu.org/gnu/gzip/gzip-1.14.tar.xz Soma de verificação MD5: 4bf5a10f287501ee8e8ebe00ef62b2c2 Iana-Etc (20250807) - 592 KB: Página inicial: [416]https://www.iana.org/protocols Transferência: [417]https://github.com/Mic92/iana-etc/releases/download/2025080 7/iana-etc-20250807.tar.gz Soma de verificação MD5: de0a909103d4ff59d1424c5ec7ac9e4a Inetutils (2.6) - 1.724 KB: Página inicial: [418]https://www.gnu.org/software/inetutils/ Transferência: [419]https://ftp.gnu.org/gnu/inetutils/inetutils-2.6.tar.xz Soma de verificação MD5: 401d7d07682a193960bcdecafd03de94 Intltool (0.51.0) - 159 KB: Página inicial: [420]https://freedesktop.org/wiki/Software/intltool Transferência: [421]https://launchpad.net/intltool/trunk/0.51.0/+download/intlt ool-0.51.0.tar.gz Soma de verificação MD5: 12e517cac2b57a0121cda351570f1e63 IPRoute2 (6.16.0) - 910 KB: Página inicial: [422]https://www.kernel.org/pub/linux/utils/net/iproute2/ Transferência: [423]https://www.kernel.org/pub/linux/utils/net/iproute2/iproute 2-6.16.0.tar.xz Soma de verificação MD5: 80e1f91bf59d572acc15d5c6eb4f3e7c Jinja2 (3.1.6) - 240 KB: Página inicial: [424]https://jinja.palletsprojects.com/en/3.1.x/ Transferência: [425]https://pypi.org/packages/source/J/Jinja2/jinja2-3.1.6.tar. gz Soma de verificação MD5: 66d4c25ff43d1deaf9637ccda523dec8 Kbd (2.8.0) - 1.448 KB: Página inicial: [426]https://kbd-project.org/ Transferência: [427]https://www.kernel.org/pub/linux/utils/kbd/kbd-2.8.0.tar.xz Soma de verificação MD5: 24b5d24f7483726b88f214dc6c77aa41 Kmod (34.2) - 434 KB: Página inicial: [428]https://github.com/kmod-project/kmod Transferência: [429]https://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-34. 2.tar.xz Soma de verificação MD5: 36f2cc483745e81ede3406fa55e1065a Less (679) - 857 KB: Página inicial: [430]https://www.greenwoodsoftware.com/less/ Transferência: [431]https://www.greenwoodsoftware.com/less/less-679.tar.gz Soma de verificação MD5: 0386dc14f6a081a94dfb4c2413864eed Libcap (2.76) - 195 KB: Página inicial: [432]https://sites.google.com/site/fullycapable/ Transferência: [433]https://www.kernel.org/pub/linux/libs/security/linux-privs/ libcap2/libcap-2.76.tar.xz Soma de verificação MD5: 449ade7d620b5c4eeb15a632fbaa4f74 Libffi (3.5.2) - 1.390 KB: Página inicial: [434]https://sourceware.org/libffi/ Transferência: [435]https://github.com/libffi/libffi/releases/download/v3.5.2/l ibffi-3.5.2.tar.gz Soma de verificação MD5: 92af9efad4ba398995abf44835c5d9e9 Libpipeline (1.5.8) - 1.046 KB: Página inicial: [436]https://libpipeline.nongnu.org/ Transferência: [437]https://download.savannah.gnu.org/releases/libpipeline/libp ipeline-1.5.8.tar.gz Soma de verificação MD5: 17ac6969b2015386bcb5d278a08a40b5 Libtool (2.5.4) - 1.033 KB: Página inicial: [438]https://www.gnu.org/software/libtool/ Transferência: [439]https://ftp.gnu.org/gnu/libtool/libtool-2.5.4.tar.xz Soma de verificação MD5: 22e0a29df8af5fdde276ea3a7d351d30 Libxcrypt (4.4.38) - 612 KB: Página inicial: [440]https://github.com/besser82/libxcrypt/ Transferência: [441]https://github.com/besser82/libxcrypt/releases/download/v4. 4.38/libxcrypt-4.4.38.tar.xz Soma de verificação MD5: 1796a5d20098e9dd9e3f576803c83000 Linux (6.16.1) - 149.042 KB: Página inicial: [442]https://www.kernel.org/ Transferência: [443]https://www.kernel.org/pub/linux/kernel/v6.x/linux-6.16.1.t ar.xz Soma de verificação MD5: 32d45755e4b39d06e9be58f6817445ee Nota O kernel do Linux é atualizado com bastante frequência, muitas vezes devido a descobertas de vulnerabilidades de segurança. A mais recente versão estável do kernel disponível pode ser usada, a menos que a página da errata diga o contrário. Para usuários(as) com largura de banda de velocidade limitada ou cara que desejem atualizar o kernel Linux, uma versão da linha base do pacote e dos remendos pode ser transferida separadamente. Isso possivelmente economize algum tempo ou custo para uma posterior atualização de nível de remendo contendo um lançamento menor. Lz4 (1.10.0) - 379 KB: Página inicial: [444]https://lz4.org/ Transferência: [445]https://github.com/lz4/lz4/releases/download/v1.10.0/lz4-1. 10.0.tar.gz Soma de verificação MD5: dead9f5f1966d9ae56e1e32761e4e675 M4 (1.4.20) - 1.997 KB: Página inicial: [446]https://www.gnu.org/software/m4/ Transferência: [447]https://ftp.gnu.org/gnu/m4/m4-1.4.20.tar.xz Soma de verificação MD5: 6eb2ebed5b24e74b6e890919331d2132 Make (4.4.1) - 2.300 KB: Página inicial: [448]https://www.gnu.org/software/make/ Transferência: [449]https://ftp.gnu.org/gnu/make/make-4.4.1.tar.gz Soma de verificação MD5: c8469a3713cbbe04d955d4ae4be23eeb Man-DB (2.13.1) - 2.061 KB: Página inicial: [450]https://www.nongnu.org/man-db/ Transferência: [451]https://download.savannah.gnu.org/releases/man-db/man-db-2. 13.1.tar.xz Soma de verificação MD5: b6335533cbeac3b24cd7be31fdee8c83 Man-pages (6.15) - 1.817 KB: Página inicial: [452]https://www.kernel.org/doc/man-pages/ Transferência: [453]https://www.kernel.org/pub/linux/docs/man-pages/man-pages-6 .15.tar.xz Soma de verificação MD5: 16f68d70139dd2bbcae4102be4705753 MarkupSafe (3.0.2) - 21 KB: Página inicial: [454]https://palletsprojects.com/p/markupsafe/ Transferência: [455]https://pypi.org/packages/source/M/MarkupSafe/markupsafe-3. 0.2.tar.gz Soma de verificação MD5: cb0071711b573b155cc8f86e1de72167 Meson (1.8.3) - 2.282: Página inicial: [456]https://mesonbuild.com Transferência: [457]https://github.com/mesonbuild/meson/releases/download/1.8.3 /meson-1.8.3.tar.gz Soma de verificação MD5: 08221d2f515e759686f666ff6409a903 MPC (1.3.1) - 756 KB: Página inicial: [458]https://www.multiprecision.org/ Transferência: [459]https://ftp.gnu.org/gnu/mpc/mpc-1.3.1.tar.gz Soma de verificação MD5: 5c9bc658c9fd0f940e8e3e0f09530c62 MPFR (4.2.2) - 1.471 KB: Página inicial: [460]https://www.mpfr.org/ Transferência: [461]https://ftp.gnu.org/gnu/mpfr/mpfr-4.2.2.tar.xz Soma de verificação MD5: 7c32c39b8b6e3ae85f25156228156061 Ncurses (6.5-20250809) - 3.703 KB: Página inicial: [462]https://www.gnu.org/software/ncurses/ Transferência: [463]https://invisible-mirror.net/archives/ncurses/current/ncurs es-6.5-20250809.tgz Soma de verificação MD5: 679987405412f970561cc85e1e6428a2 Ninja (1.13.1) - 286 KB: Página inicial: [464]https://ninja-build.org/ Transferência: [465]https://github.com/ninja-build/ninja/archive/v1.13.1/ninja- 1.13.1.tar.gz Soma de verificação MD5: c35f8f55f4cf60f1a916068d8f45a0f8 OpenSSL (3.5.2) - 51.934 KB: Página inicial: [466]https://www.openssl-library.org/ Transferência: [467]https://github.com/openssl/openssl/releases/download/openss l-3.5.2/openssl-3.5.2.tar.gz Soma de verificação MD5: 890fc59f86fc21b5e4d1c031a698dbde Packaging (25.0) - 162 KB: Página inicial: [468]https://pypi.org/project/packaging/ Transferência: [469]https://files.pythonhosted.org/packages/source/p/packaging/ packaging-25.0.tar.gz Soma de verificação MD5: ab0ef21ddebe09d1803575120d3f99f8 Patch (2.8) - 886 KB: Página inicial: [470]https://savannah.gnu.org/projects/patch/ Transferência: [471]https://ftp.gnu.org/gnu/patch/patch-2.8.tar.xz Soma de verificação MD5: 149327a021d41c8f88d034eab41c039f Perl (5.42.0) - 14.084 KB: Página inicial: [472]https://www.perl.org/ Transferência: [473]https://www.cpan.org/src/5.0/perl-5.42.0.tar.xz Soma de verificação MD5: 7a6950a9f12d01eb96a9d2ed2f4e0072 Pkgconf (2.5.1) - 321 KB: Página inicial: [474]https://github.com/pkgconf/pkgconf Transferência: [475]https://distfiles.ariadne.space/pkgconf/pkgconf-2.5.1.tar.x z Soma de verificação MD5: 3291128c917fdb8fccd8c9e7784b643b Procps (4.0.5) - 1.483 KB: Página inicial: [476]https://gitlab.com/procps-ng/procps/ Transferência: [477]https://sourceforge.net/projects/procps-ng/files/Production /procps-ng-4.0.5.tar.xz Soma de verificação MD5: 90803e64f51f192f3325d25c3335d057 Psmisc (23.7) - 423 KB: Página inicial: [478]https://gitlab.com/psmisc/psmisc Transferência: [479]https://sourceforge.net/projects/psmisc/files/psmisc/psmisc -23.7.tar.xz Soma de verificação MD5: 53eae841735189a896d614cba440eb10 Python (3.13.7) - 22.236 KB: Página inicial: [480]https://www.python.org/ Transferência: [481]https://www.python.org/ftp/python/3.13.7/Python-3.13.7.tar. xz Soma de verificação MD5: 256cdb3bbf45cdce7499e52ba6c36ea3 Documentação do Python (3.13.7) - 10.183 KB: Transferência: [482]https://www.python.org/ftp/python/doc/3.13.7/python-3.13.7- docs-html.tar.bz2 Soma de verificação MD5: b84c0d81b2758398bb7f5b7411d3d908 Readline (8.3) - 3.340 KB: Página inicial: [483]https://tiswww.case.edu/php/chet/readline/rltop.html Transferência: [484]https://ftp.gnu.org/gnu/readline/readline-8.3.tar.gz Soma de verificação MD5: 25a73bfb2a3ad7146c5e9d4408d9f6cd Sed (4.9) - 1.365 KB: Página inicial: [485]https://www.gnu.org/software/sed/ Transferência: [486]https://ftp.gnu.org/gnu/sed/sed-4.9.tar.xz Soma de verificação MD5: 6aac9b2dbafcd5b7a67a8a9bcb8036c3 Setuptools (80.9.0) - 1.290 KB: Página inicial: [487]https://pypi.org/project/setuptools/ Transferência: [488]https://pypi.org/packages/source/s/setuptools/setuptools-80 .9.0.tar.gz Soma de verificação MD5: 82e1d67883b713f9493659b50d13b436 Shadow (4.18.0) - 2.293 KB: Página inicial: [489]https://github.com/shadow-maint/shadow/ Transferência: [490]https://github.com/shadow-maint/shadow/releases/download/4. 18.0/shadow-4.18.0.tar.xz Soma de verificação MD5: 30ef46f54363db1d624587be68794ef2 Systemd (257.8) - 16.002 KB: Página inicial: [491]https://www.freedesktop.org/wiki/Software/systemd/ Transferência: [492]https://github.com/systemd/systemd/archive/v257.8/systemd-2 57.8.tar.gz Soma de verificação MD5: 25fe5d328e22641254761f1baa74cee0 Páginas de Manual do Systemd (257.8) - 736 KB: Página inicial: [493]https://www.freedesktop.org/wiki/Software/systemd/ Transferência: [494]https://anduin.linuxfromscratch.org/LFS/systemd-man-pages-2 57.8.tar.xz Soma de verificação MD5: a44063e2ec0cf4adfd2ed5c9e9e095c5 Nota A equipe do Linux From Scratch gera o próprio tarball dela das páginas de manual usando o fonte do systemd. Isso é feito com a finalidade de evitar dependências desnecessárias. Tar (1.35) - 2.263 KB: Página inicial: [495]https://www.gnu.org/software/tar/ Transferência: [496]https://ftp.gnu.org/gnu/tar/tar-1.35.tar.xz Soma de verificação MD5: a2d8042658cfd8ea939e6d911eaf4152 Tcl (8.6.16) - 11.406 KB: Página inicial: [497]https://tcl.sourceforge.net/ Transferência: [498]https://downloads.sourceforge.net/tcl/tcl8.6.16-src.tar.gz Soma de verificação MD5: eaef5d0a27239fb840f04af8ec608242 Documentação do Tcl (8.6.16) - 1.169 KB: Transferência: [499]https://downloads.sourceforge.net/tcl/tcl8.6.16-html.tar.gz Soma de verificação MD5: 750c221bcb6f8737a6791c1fbe98b684 Texinfo (7.2) - 6.259 KB: Página inicial: [500]https://www.gnu.org/software/texinfo/ Transferência: [501]https://ftp.gnu.org/gnu/texinfo/texinfo-7.2.tar.xz Soma de verificação MD5: 11939a7624572814912a18e76c8d8972 Dados de Fuso Horário (2025b) - 454 KB: Página inicial: [502]https://www.iana.org/time-zones Transferência: [503]https://www.iana.org/time-zones/repository/releases/tzdata2 025b.tar.gz Soma de verificação MD5: ad65154c48c74a9b311fe84778c5434f Util-linux (2.41.1) - 9.382 KB: Página inicial: [504]https://git.kernel.org/pub/scm/utils/util-linux/util-linux. git/ Transferência: [505]https://www.kernel.org/pub/linux/utils/util-linux/v2.41/uti l-linux-2.41.1.tar.xz Soma de verificação MD5: 7e5e68845e2f347cf96f5448165f1764 Vim (9.1.1629) - 18.317 KB: Página inicial: [506]https://www.vim.org Transferência: [507]https://github.com/vim/vim/archive/v9.1.1629/vim-9.1.1629.t ar.gz Soma de verificação MD5: 4f856c3233c1c4570bc17572e4f9e8e4 Nota A versão do vim muda diariamente. Para obter a versão mais recente, vá até [508]https://github.com/vim/vim/tags. Wheel (0.46.1) - 54 KB: Página inicial: [509]https://pypi.org/project/wheel/ Transferência: [510]https://pypi.org/packages/source/w/wheel/wheel-0.46.1.tar.g z Soma de verificação MD5: 65e09ee84af36821e3b1e9564aa91bd5 XML::Parser (2.47) - 276 KB: Página inicial: [511]https://github.com/chorny/XML-Parser Transferência: [512]https://cpan.metacpan.org/authors/id/T/TO/TODDR/XML-Parser- 2.47.tar.gz Soma de verificação MD5: 89a8e82cfd2ad948b349c0a69c494463 Xz Utils (5.8.1) - 1.428 KB: Página inicial: [513]https://tukaani.org/xz Transferência: [514]https://github.com//tukaani-project/xz/releases/download/v5 .8.1/xz-5.8.1.tar.xz Soma de verificação MD5: cf5e1feb023d22c6bdaa30e84ef3abe3 Zlib (1.3.1) - 1.478 KB: Página inicial: [515]https://zlib.net/ Transferência: [516]https://zlib.net/fossils/zlib-1.3.1.tar.gz Soma de verificação MD5: 9855b6d802d7fe5b7bd5b196a2271655 Zstd (1.5.7) - 2.378 KB: Página inicial: [517]https://facebook.github.io/zstd/ Transferência: [518]https://github.com/facebook/zstd/releases/download/v1.5.7/z std-1.5.7.tar.gz Soma de verificação MD5: 780fc1896922b1bc52a4e90980cdda48 Tamanho total desses pacotes: cerca de NaN MB 3.3. Remendos Necessários Adicionalmente aos pacotes, vários remendos também são exigidos. Esses remendos corrigem alguns erros nos pacotes que deveriam ser consertados pelo(a) Mantenedor(a). Os remendos também fazem pequenas modificações para tornar os pacotes mais fáceis de se trabalhar. Os seguintes remendos serão necessários para construir um sistema LFS: Remendo da Documentação do Bzip2 - 1.6 KB: Transferência: [519]https://www.linuxfromscratch.org/patches/lfs/12.4/bzip2-1.0 .8-install_docs-1.patch Soma de verificação MD5: 6a5ac7e89b791aae556de0f745916f7f Remendo de Correção de Fluxo de Desenvolvimento do Coreutils - 4.1 KB: Transferência: [520]https://www.linuxfromscratch.org/patches/lfs/12.4/coreutils -9.7-upstream_fix-1.patch Soma de verificação MD5: 96382a5aa85d6651a74f94ffb61785d9 Remendo de Correções de Internacionalização do Coreutils - 159 KB: Transferência: [521]https://www.linuxfromscratch.org/patches/lfs/12.4/coreutils -9.7-i18n-1.patch Soma de verificação MD5: 33ebfad32b2dfb8417c3335c08671206 Remendo GCC15 do Expect - 12 KB: Download: [522]https://www.linuxfromscratch.org/patches/lfs/12.4/expect-5. 45.4-gcc15-1.patch Soma de verificação MD5: 0ca4d6bb8d572fbcdb13cb36cd34833e Remendo do FHS da Glibc - 2.8 KB: Transferência: [523]https://www.linuxfromscratch.org/patches/lfs/12.4/glibc-2.4 2-fhs-1.patch Soma de verificação MD5: 9a5997c3452909b1769918c759eff8a2 Remendo de Correção do Backspace/Delete do Kbd - 12 KB: Transferência: [524]https://www.linuxfromscratch.org/patches/lfs/12.4/kbd-2.8.0 -backspace-1.patch Soma de verificação MD5: f75cca16a38da6caa7d52151f7136895 Tamanho total desses remendos: cerca de 191.5 KB Adicionalmente aos remendos exigidos acima, existe um número de remendos opcionais criados pela comunidade do LFS. Esses remendos opcionais solucionam problemas menores ou habilitam funcionalidade que não está habilitada por padrão. Sinta-se à vontade para examinar a base de dados dos remendos localizada em [525]https://www.linuxfromscratch.org/patches/downloads/ e adquirir quaisquer remendos 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 a construção do sistema temporário. Nós criaremos um conjunto de diretórios em $LFS (no qual instalaremos as ferramentas temporárias); adicionaremos uma(m) usuária(o) desprivilegiada(o); e criaremos um ambiente apropriado de construção para aquela(e) usuária(o). Nós também explicaremos as unidades de tempo “UPCs” que usamos para medir quanto tempo leva para construir od pacotes do LFS e forneceremos alguma informação acerca de suítes de teste de pacote. 4.2. Criando um Layout Limitado de Diretório no Sistema de Arquivos do LFS Nesta seção, nós começamos povoando o sistema de arquivos do LFS com os lugares que constituirão o sistema Linux final. O primeiro passo é o de criar uma hierarquia limitada de diretório, de forma que os aplicativos compilados no [526]Capítulo 6 (bem como a glibc e a libstdc++ no [527]Capítulo 5) possam ser instalados no local final deles. Nós fazemos isso, de forma que aqueles aplicativos temporários sejam sobrescritos quando as versões finais sejam reconstruídas no [528]Capítulo 8. Crie o layout exigido de diretório emitindo os seguintes comandos 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 Os aplicativos no [529]Capítulo 6 serão compilados com um compilador cruzado (mais detalhes podem ser encontrados na seção [530]Observações Técnicas do Conjunto de Ferramentas). Esse compilador cruzado será instalado em um diretório especial, para separá-lo de outros aplicativos. Ainda atuando como root, crie esse diretório com este comando: mkdir -pv $LFS/tools Nota Os(As) editores(as) do LFS deliberadamente decidiram não usar um diretório /usr/lib64. Vários passos são tomados para se ter certeza de que o conjunto de ferramentas não o usará. Se por qualquer razão esse diretório aparecer (seja porque você cometeu um erro ao seguir as instruções, seja porque você instalou um pacote binário que o criou depois de finalizar o LFS), [então} possivelmente quebre o seu sistema. Você deveria sempre ter certeza de que esse diretório não existe. 4.3. Adicionando o(a) Usuário(a) 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 tornar mais fácil configurar um ambiente de trabalho limpo, nós criaremos um(a) usuário(a) novo(a) chamado(a) lfs como um(a) membro(a) de um novo grupo (também chamado lfs) e executar comandos como lfs durante o processo de instalação. Como root, emita os seguintes comandos para adicionar a(o) novo(a) usuário(a): groupadd lfs useradd -s /bin/bash -g lfs -m -k /dev/null lfs Isto é o que as opções da linha de comando significam: -s /bin/bash Isso torna o bash o shell padrão para o(a) usuário(a) lfs. -g lfs Essa opção acrescenta o(a) usuário(a) lfs ao grupo lfs. -m Isso cria um diretório home para lfs. -k /dev/null Esse parâmetro evita possível cópia de arquivos a partir de um diretório esqueleto (o padrão é /etc/skel) mudando o local da entrada gerada para o dispositivo especial null. lfs Esse é o nome do(a) usuário(a) nova(o). Se quiser logar como lfs ou alternar para lfs a partir de um(a) usuário(a) não root (em oposição a alternar para o(a) usuário(a) lfs quando estiver logado(a) como root, o que não exige que o(a) usuário(a) lfs tenha uma senha), [então] você precisa configurar uma senha para lfs. Emita o seguinte comando como o(a) usuário(a) root para configurar a 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{,/*},var,etc,tools} case $(uname -m) in x86_64) chown -v lfs $LFS/lib64 ;; esac Nota Em alguns sistemas anfitriões, o seguinte comando su não completa adequadamente e suspende o login para o(a) usuário(a) lfs para o segundo plano. Se o prompt "lfs:~$" não aparecer imediatamente, [então] emitir o comando fg corrigirá o problema. Em seguida, inicie um shell executando como usuária(o) lfs. Isso pode ser feito logando-se como lfs em um console virtual ou com o seguinte comando de substituir/alternar 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" está descrita em detalhes em "[531]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 ou quando alternado para o(a) usuário(a) lfs usando um comando su com a opção “-”, o shell inicial é 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 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 para 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. Alternando para desligada a função hash força o shell a procurar no PATH sempre que 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 Configura o umask conforme nós já explicamos em [532]Seção 2.6, “Configurando a Variável $LFS e o Umask.” 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 no ambiente de compilação cruzada. 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 é fornecida pelas [533]Observações Técnicas do Conjunto de Ferramentas. PATH=/usr/bin Muitas distribuições modernas do Linux mesclaram /bin e /usr/bin. Quando esse for o caso, a variável PATH padrão deveria ser configurada para /usr/bin/ para o ambiente do [534]Capítulo 6. Quando esse não for o caso, a seguinte linha acrescenta /bin ao caminho. if [ ! -L /bin ]; then PATH=/bin:$PATH; fi Se /bin não for um link simbólico, [então] ele precisa ser acrescentado à 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 do [535]Capítulo 5 é pego pelo shell imediatamente depois da instalação dele. 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 No [536]Capítulo 5 e no [537]Capítulo 6, se essa variável não estiver configurada, [então] os scripts configure possivelmente 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 evitar uma potencial contaminação oriunda do anfitrião. export ... Ao tempo que os comandos precedentes tenham configurado 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 acrescentam uma instância não documentada de /etc/bash.bashrc à inicialização do bash. Esse arquivo tem o potencial de modificar o ambiente do(a) usuário(a) lfs de formas que podem afetar a construção de pacotes LFS críticos. Para assegurar que o ambiente do(a) usuário(a) lfs esteja limpo, verifique a presença de /etc/bash.bashrc e, se presente, mova-o para fora do caminho. Como o(a) usuário(a) root, execute: [ ! -e /etc/bash.bashrc ] || mv -v /etc/bash.bashrc /etc/bash.bashrc.NOUSE Quando o(a) usuário(a) lfs não mais for necessária(o) (no início do [538]Capítulo 7), você pode seguramente restaurar /etc/bash.bashrc (se desejado). Perceba que o pacote Bash do LFS que nós construiremos na [539]Seção 8.36, “Bash-5.3” não é configurado para carregar ou para executar /etc/bash.bashrc, de modo que esse arquivo é inútil em um sistema LFS finalizado. Para muitos sistemas modernos com múltiplos processadores (ou núcleos), o tempo de compilação para um pacote pode ser reduzido executando-se um "make paralelo", informando-se ao aplicativo "make" quantos processadores estão disponíveis por meio de uma opção de linha de comando ou de uma variável de ambiente. Por exemplo, um processador "Intel" "Core i9-13900K" tem oito (08) núcleos "D" (desempenho) e dezesseis (16) núcleos "E" (eficiência), e um núcleo "D" consegue executar simultaneamente duas camadas, de forma que cada núcleo "D" seja modelado como dois núcleos lógicos pelo núcleo Linux. Como resultado, existem trinta e dois (32) núcleos lógicos no total. Uma maneira óbvia de usar todos esses núcleos lógicos é a de permitir que o "make" gere até trinta e duas (32) tarefas de construção. Isso pode ser feito passando-se a opção "-j32" para o "make": make -j32 Ou configure a variável de ambiente "MAKEFLAGS" e o conteúdo dela será usado automaticamente por "make" como opções de linha de comando: export MAKEFLAGS=-j32 Importante Nunca passe uma opção "-j" sem um número para "make" ou configure tal opção em "MAKEFLAGS". Fazer isso permitirá que "make" gere infinitas tarefas de construção e cause problemas de estabilidade do sistema. Para usar todos os núcleos lógicos disponíveis para construir pacotes em "[540]Capítulo 5" e "[541]Capítulo 6", configure "MAKEFLAGS" agora em ".bashrc": cat >> ~/.bashrc << "EOF" export MAKEFLAGS=-j$(nproc) EOF Substitua "$(nproc)" pelo número de núcleos lógicos que você deseja usar se não quiser usar todos os núcleos lógicos. Finalmente, para garantir que o ambiente esteja totalmente preparado para a construção das ferramentas temporárias, force o shell bash a ler o perfil do(a) novo(a) usuário(a): source ~/.bash_profile 4.5. A Respeito de UPCs Muitas pessoas gostariam de saber de antemão aproximadamente quanto tempo leva para compilar e instalar cada pacote. Devido ao Linux From Scratch poder ser construído em muitos sistemas, é impossível fornecer estimativas de tempo absolutas. O maior pacote (gcc) levará aproximadamente cinco (05) minutos nos sistemas mais rápidos, mas poderia levar dias nos 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 é o binutils no [542]Capítulo 5. O tempo necessário para compilar usando um núcleo é o que nós nos referiremos 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 é de quatro e meio (4,5) UPCs. Isso significa que, se o teu sistema precisou de quatro (04) minutos para compilar e instalar a primeira passagem do binutils, será necessário aproximadamente dezoito (18) minutos para construir o pacote de exemplo. Felizmente, a maioria dos tempos de construção é menor que uma UPC. As UPCs não são totalmente precisas, pois dependem de muitos fatores, incluindo a versão do 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. Em alguns sistemas mais novos, a placa-mãe é capaz de controlar a velocidade do clock do sistema. Isso pode ser controlado com um comando como powerprofilesctl. Isso não está disponível no LFS, mas pode estar disponível na distribuição anfitriã. Depois que o LFS estiver completo, ele pode ser adicionado a um sistema com os procedimentos na página [543]power-profiles-daemon do BLFS. Antes de mensurar o tempo de construção de qualquer pacote, é aconselhável usar um perfil de eletricidade do sistema configurado para desempenho máximo (e consumo máximo de eletricidade). Caso contrário, o valor da UPC mensurado pode ser impreciso porque o sistema pode reagir diferentemente ao construir [544]binutils-passagem1 ou outros pacotes. Esteja ciente de que uma imprecisão significativa ainda pode aparecer mesmo se o mesmo perfil for usado para ambos os pacotes, porque o sistema pode responder mais lentamente se estiver ocioso ao iniciar o procedimento de construção. Configurar o perfil de eletricidade para “performance” minimizará esse problema. E, obviamente, fazer isso também fará com que o sistema construa o LFS mais rápido. Se powerprofilesctl estiver disponível, emita o comando powerprofilesctl set performance para selecionar o perfil performance. Algumas distribuições fornecem o comando tuned-adm para gerenciar os perfis em vez de powerprofilesctl; nessas distribuições emita o comando tuned-adm profile throughput-performance para selecionar o perfil throughput-performance. Nota Quando múltiplos processadores são usados dessa maneira, as unidades UPC no livro variarão ainda mais do que normalmente aconteceria. Em alguns casos, o passo make simplesmente falhará. Analisar a saída gerada do processo de construção também será mais difícil, pois as linhas originárias 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. Os tempos apresentados aqui para todos os pacotes (exceto [545]binutils-passagem1, que é baseado em um núcleo) são baseados no uso de quatro núcleos (-j4). Os tempos no Capítulo 8 também incluem o tempo para executar os testes de regressão para o pacote, a menos que especificado de outra forma. 4.6. A Respeito das Suítes de Teste A maioria dos pacotes fornece uma suíte de teste. Executar 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 ultrapassa o conjunto de verificações dela geralmente prova que o pacote está funcionando como a(o) desenvolvedora(r) pretendia. Não garante, entretanto, 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 ao papel central delas em um sistema que funcione adequadamente. As suítes de teste para GCC e glibc podem levar bastante tempo para completarem, especialmente em hardware mais lento, mas são fortemente recomendadas. Nota Executar as suítes de teste no [546]Capítulo 5 e no [547]Capítulo 6 é impossível; dado que os aplicativos de teste são compilados com um compilador cruzado, eles provavelmente não conseguem executar no anfitrião de construção. Um problema comum com a execução de suítes de teste para o binutils e o GCC é ficar sem os 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 é a de que o sistema anfitrião não tem o sistema de arquivos devpts configurado corretamente. Esse problema é discutido em maiores detalhes em [548]https://www.linuxfromscratch.org/lfs/faq.html#no-ptys. Algumas vezes suítes de testes de pacotes falharão por razões as quais as(os) desenvolvedoras(es) estão cientes e consideraram não-críticas. Consulte os registros localizados em [549]https://www.linuxfromscratch.org/lfs/build-logs/12.4/ para verificar quando essas falhas são esperadas ou não. Esse sítio é válido para todas as suítes de teste ao longo deste livro. Parte III. Construindo o Conjunto de Ferramentas Cruzadas do LFS e Ferramentas Temporárias Material Preliminar Importante Introdução Esta parte é dividida em três estágios: primeiro construir 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 Essa é onde o trabalho real de construir um novo sistema inicia. Seja muito cuidadoso(a) em seguir as instruções exatamente conforme o livro as mostra. Você deveria tentar entender o que cada comando faz e, não importa o quão ansioso(a) você estiver para finalizar sua construção, você deveria evitar digitar cegamente os comandos como mostrado. Leia a documentação quando houver algo que você não entenda. Além disso, mantenha um rastreio da sua digitação e da saída gerada de comandos, usando o utilitário tee para enviar a saída gerada pelo terminal para um arquivo. Isso torna a depuração mais fácil se algo der errado. A próxima seção é uma introdução técnica ao processo de construção, enquanto que a seguinte apresenta instruções gerais muito importantes. Observações Técnicas do Conjunto de Ferramentas Esta seção explica algumas das razões e detalhes técnicos por trás do método completo de construção. Não tente imediatamente entender tudo nesta seção. A maior parte desta informação ficará mais clara depois de realizar uma construção real. Volte e releia este capítulo a qualquer tempo durante o processo de construção. O objetivo geral do [550]Capítulo 5 e do [551]Capítulo 6 é o de produzir uma área temporária contendo um conjunto de ferramentas que sejam conhecidas por serem boas e que estejam isoladas do sistema anfitrião. Usando-se o comando chroot, as compilações nos capítulos subsequentes estarão isoladas naquele ambiente, assegurando uma construção limpa e livre de problemas do sistema LFS alvo. O processo de construção foi projetado para minimizar os riscos para novos(as) leitores(as) e para fornecer o maior valor educacional ao mesmo tempo. O processo de construção é baseado em compilação cruzada. Compilação cruzada normalmente é usada para construir um compilador e o conjunto de ferramentas associadas dele para uma máquina diferente daquela que é usada para a construção. Isso não é estritamente necessário para o LFS, pois a máquina onde o novo sistema executará é a mesma que aquela usada para a construção. Porém, a compilação cruzada tem a grande vantagem: tudo o que for 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 cruzado de ferramentas (ou nativo). Não use os comandos no livro para um conjunto cruzado de ferramentas para algum outro propósito que não o de construir o LFS, a menos que você realmente entenda o que está fazendo. É sabido que instalar o GCC passagem 2 quebrará o conjunto cruzado de ferramentas. Nós não consideramos isso um defeito porque o GCC passagem 2 é o último pacote a ser compilado cruzadamente no livro, e não o “consertaremos” até que realmente precisemos compilar cruzadamente algum pacote depois do GCC passagem 2 no futuro. Compilação cruzada envolve alguns conceitos que merecem uma seção por si próprios. Embora esta seção possivelmente seja omitida em uma primeira leitura, retornar até ela posteriormente te ajudará a ganhar um entendimento mais completo do processo. Permita-nos primeiro definir alguns termos usados nesse contexto. A construtora é a máquina onde nós construímos programas. Observe que essa máquina também é referenciada como a “anfitriã.” A anfitriã é a máquina/sistema onde os programas construídos executarão. Observe que esse uso de “host” não é o mesmo que em outras seções. O alvo é usado somente para compiladores. Ele é a máquina para a qual o compilador produz código. Ele possivelmente seja diferente tanto da construtora quanto da anfitriã. Como um exemplo, permita-nos imaginar o seguinte cenário (ocasionalmente referenciado como “Cruzado Canadense”). Nós temos um compilador somente em uma máquina lenta, vamos chamá-la de máquina A, e o compilador de ccA. Nós também temos uma máquina rápida (B), porém nenhum compilador para (B), e nós queremos produzir código para uma terceira, máquina lenta (C). Nós construiremos um compilador para a máquina C em três estágios. Estágio Construtora Anfitriã Alvo 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 programas necessários para a máquina C podem ser compilados usando cc2 na rápida máquina B. Observe que a menos que B consiga executar programas produzidos por C, não existe maneira de testar os programas recém construídos até que a própria máquina C esteja executando. Por exemplo, para executar uma suíte de teste em ccC, nós possivelmente queiramos adicionar um quarto estágio: Estágio Construtora Anfitriã Alvo Ação 4 C C C Reconstruir e testar ccC usando ccC 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 executando. Os outros compiladores, ccA e ccC, produzem código para a máquina na qual estão executando. Tais compiladores são chamados de compiladores nativos. Implementação da Compilação Cruzada para o LFS Nota Todos os pacotes compilados cruzadamente neste livro usam um sistema de construção baseado no autoconf. O sistema de construção baseado no autoconf aceita tipos de sistema na forma cpu-vendor-kernel-os, referenciado como o tripleto do sistema. Dado que o campo vendor frequentemente é irrelevante, o autoconf te permite omiti-lo. Um(a) leitor(a) astuto(a) possivelmente questione porque um “tripleto” se refere a um nome de quatro componentes. O campo kernel e o campo os iniciaram como um campo único do “sistema”. Tal forma de três campos ainda é válida atualmente para alguns sistemas, por exemplo, x86_64-unknown-freebsd. Porém, dois sistemas conseguem compartilhar o mesmo núcleo e ainda serem muito diferentes para usarem o mesmo tripleto para descrevê-los. Por exemplo, o Android executando em um telefone móvel é completamente diferente do Ubuntu executando em um servidor ARM64, apesar de ambos estarem executando no mesmo tipo de CPU (ARM64) e usando o mesmo núcleo (Linux). Sem uma camada de emulação, você não consegue executar um executável para um servidor em um telefone móvel ou vice versa. Assim, o campo “system” foi dividido nos campos kernel e os para designar esses sistemas inequivocamente. No nosso exemplo, O sistema Android é designado como aarch64-unknown-linux-android e o sistema Ubuntu é designado como aarch64-unknown-linux-gnu. A palavra “tripleto” permanece embutida no léxico. Uma maneira simples para se determinar o teu tripleto do sistema é a de executar o conjunto de comandos sequenciais config.guess que vem com o fonte para muitos pacotes. Desempacote os fontes do binutils, execute o conjunto de comandos sequenciais ./config.guess e observe a saída gerada. Por exemplo, para um processador Intel de 32 bits, a saída gerada será i686-pc-linux-gnu. Em um sistema de 64 bits, será x86_64-pc-linux-gnu. Na maioria dos sistemas Linux, o comando ainda mais simples gcc -dumpmachine te dará informação semelhante. Você também deveria estar ciente do nome do vinculador dinâmico da plataforma, frequentemente referido como o carregador dinâmico (não seja confundido com o vinculador padrão ld que é parte do binutils). O vinculador dinâmico fornecido pelo pacote glibc encontra e carrega as bibliotecas compartilhadas necessárias para um programa, prepara o programa 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 em sistemas de 64 bits. Uma maneira infalível para se determinar o nome do vinculador dinâmico é a de inspecionar uma biblioteca aleatória oriunda do sistema anfitrião executando: readelf -l | grep interpreter e observar a saída gerada. A referência autoritativa cobrindo todas as plataformas está em [552]uma página wiki da Glibc. Existem dois pontos-chave para uma compilação cruzada: * Ao produzir e processar o código de máquina supostamente para ser executado na “anfitriã”, o conjunto cruzado de ferramentas precisa ser usado. Observe que o conjunto nativo de ferramentas originário da “construtora” ainda pode ser invocado para gerar código de máquina supostamente para ser executado na “construtora”. Por exemplo, o sistema de construção pode compilar um gerador com o conjunto nativo de ferramentas, então gerar um arquivo fonte C com o gerador, e finalmente compilar o arquivo fonte C com o conjunto cruzado de ferramentas, de forma que o código gerado estará apto para executar na “anfitriã.” Com um sistema de construção baseado em autoconf, esse requisito é garantido usando-se a chave --host para se especificar o tripleto da “anfitriã”. Com essa chave, o sistema de construção usará os componentes do conjunto de ferramentas prefixados com para gerar e processar o código de máquina para “a anfitriã”; por exemplo, o compilador será -gcc e a ferramenta readelf será -readelf. * O sistema de construção não deveria tentar executar nenhum código de máquina gerado supostamente para ser executado na “anfitriã.” Por exemplo, ao construir um utilitário nativamente, a página de manual dele pode ser gerada executando-se o utilitário com a chave --help e processando-se a saída gerada, mas geralmente não é possível fazer isso para uma compilação cruzada, pois o utilitário possivelmente falhe para executar na “construtora”: obviamente é impossível executar código de máquina ARM64 em uma CPU x86 (sem um emulador). Com um sistema de construção baseado em autoconf, esse requisito é satisfeito no “modo de compilação cruzada”, onde os recursos opcionais que exigem executar código de máquina para “a anfitriã” durante o tempo de construção são desabilitados. Quando o tripleto da “anfitriã” for especificado explicitamente, o “modo de compilação cruzada” é habilitado se e somente se o conjunto de comandos sequenciais configure falhar para executar um programa fictício compilado no código de máquina da “anfitriã” ou o tripleto da “construtora” for especificado explicitamente por meio da chave --build e ele for diferente do tripleto da “anfitriã”. Para a finalidade de compilar cruzadamente um pacote para o sistema temporário LFS, o nome do tripleto do sistema é ligeiramente ajustado mudando-se o campo "vendor" na variável LFS_TGT, de forma que ele diga "lfs" e LFS_TGT é então especificada como o tripleto “da anfitriã” via --host, de forma que o conjunto cruzado de ferramentas será usado para gerar e processar o código de máquina executando como parte do sistema temporário LFS. E também nós precisamos habilitar “o modo de compilação cruzada”: apesar do código de máquina da “anfitriã”, ou seja, o código de máquina para o sistema temporário LFS, estar apto para executar na CPU real, ele possivelmente se refira a uma biblioteca não disponível na “construtora” (a distribuição da anfitriã), ou algum código ou dados não existir ou ser definido diferentemente na biblioteca, mesmo se acontecer de estar disponível. Ao compilar cruzadamente um pacote para o sistema temporário LFS, nós não podemos confiar no conjunto de comandos sequenciais configure para detectar esse problema com o programa fictício: o fictício usa somente alguns componentes na libc que a libc da distribuição da anfitriã provavelmente fornece (a menos que, talvez, a distribuição da anfitriã use uma implementação da libc diferente, como Musl), de forma que ele não falhará como os programas realmente úteis provavelmente falhariam. Portanto, nós precisamos especificar explicitamente o tripleto da “construtora” para habilitar “o modo de compilação cruzada.” O valor que nós usamos é exatamente o padrão, ou seja, o tripleto original do sistema proveniente da saída gerada do config.guess, mas “o modo de compilação cruzada” depende de uma especificação explícita, como nós discutimos. Nós usamos a opção --with-sysroot ao construir o vinculador cruzado e o compilador cruzado, para dizer a eles onde encontrar os arquivos necessários para “a anfitriã.” Isso quase garante que nenhum dos outros programas construídos no [553]Capítulo 6 consiga vincular-se a bibliotecas na “construtora.” A palavra “quase” é usada porque libtool, um envolucrador de “compatibilidade” do compilador e do vinculador para sistemas de construção baseados em autoconf, pode tentar ser muito inteligente e passar erroneamente opções permitindo que o vinculador encontre bibliotecas da “construtora.” Para evitar essa precipitação, nós precisamos deletar os arquivos de arquivamento da libtool (.la) e consertar uma cópia desatualizada da libtool enviada com o código do Binutils. Estágio Construtora Anfitriã Alvo 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 Reconstrua (e talvez teste) cc-lfs usando cc-lfs no lfs. Na tabela precedente, “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 em um ambiente chroot. Esse não é ainda o fim da estória. A linguagem C não é meramente um compilador; ela também define uma biblioteca padrão. Neste livro, a biblioteca GNU C, chamada de glibc, é usada (existe uma alternativa, "musl"). Essa biblioteca precisa ser compilada para a máquina LFS; isto é, usando o compilador cruzado cc1. Porém, o próprio compilador usa uma biblioteca interna fornecendo sub rotinas complexas para funções não disponíveis no conjunto de instruções do montador. Essa biblioteca interna é chamada de libgcc e ela precisa ser lincada à biblioteca glibc para ser completamente funcional. Além disso, a biblioteca padrão para C++ (libstdc++) também precisa estar lincada com a glibc. A solução para esse problema de ovo e galinha é a de primeiro se construir uma libgcc degradada baseada em cc1, carecendo de algumas funcionalidades, tais como camadas e manuseio de exceções, e então se construir a glibc usando esse compilador degradado (a glibc em si não é degradada), e também se construir a libstdc++. Essa última biblioteca carecerá de algumas das funcionalidades da libgcc. O resultado do parágrafo precedente é o de que cc1 está inapto para construir uma libstdc++ totalmente funcional com a libgcc degradada, mas cc1 é o único compilador disponível para se construir as bibliotecas C/C++ durante o estágio 2. Conforme nós discutimos, não podemos executar cc-lfs na pc (a distribuição da anfitriã) porque ele possivelmente exija alguma biblioteca, código ou dados não disponível na “construtora” (a distribuição da anfitriã). Então, quando nós construímos o estágio 2 do gcc, substituímos o caminho de pesquisa da biblioteca para lincar libstdc++ à libgcc recém-reconstruída em vez da construção antiga e degradada. Isso torna a libstdc++ reconstruída totalmente funcional. No [554]Capítulo 8 (ou “estágio 3”), todos os pacotes necessários para o sistema LFS são construídos. Mesmo se um pacote já tiver sido instalado no sistema LFS em um capítulo anterior, nós ainda reconstruímos o pacote. O principal motivo para se reconstruir esses pacotes é para torná-los estáveis: se reinstalarmos um pacote do LFS em um sistema LFS concluído, o conteúdo reinstalado do pacote deveria ser o mesmo que o conteúdo do mesmo pacote quando instalado pela primeira vez no [555]Capítulo 8. Os pacotes temporários instalados no [556]Capítulo 6 ou no [557]Capítulo 7 não conseguem satisfazer essa exigência, porque alguns recursos opcionais deles são desabilitados devido ou às dependências ausentes ou ao “modo de compilação cruzada.” Além disso, um motivo secundário para se reconstruir os pacotes é para executar as suítes de teste. Outros Detalhes Procedurais O compilador cruzado será instalado em um diretório $LFS/tools separado, pois ele não será parte do sistema final. Binutils é instalado primeiro, pois as execuções do configure do gcc e da glibc realizam vários testes de recursos no montador e no lincador para determinar quais recursos de software habilitar ou desabilitar. Isso é mais importante do que, inicialmente, alguém possa perceber. Um gcc ou uma 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 suíte de teste normalmente destacará tal erro antes que muito mais trabalho adicional seja realizado. O Binutils instala o montador e o lincador dele em dois locais, $LFS/tools/bin e $LFS/tools/$LFS_TGT/bin. As ferramentas em um local são rigidamente lincadas às outras. Uma faceta importante do lincador é a ordem dele de procura de biblioteca. Informação detalhada pode ser obtida a partir do ld passando-lhe o sinalizador --verbose. Por exemplo, $LFS_TGT-ld --verbose | grep SEARCH ilustrará os caminhos atuais de procura e a ordem deles. (Observe que esse exemplo consegue ser executado conforme mostrado somente enquanto logado(a) como usuário(a) lfs. Se você retornar a esta página posteriormente, substitua $LFS_TGT-ld por ld). O próximo pacote instalado é gcc. Um exemplo do que pode ser visto durante a execução dele do 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 conjunto de comandos sequenciais de configuração do gcc não procura nos diretórios do PATH para encontrar quais ferramentas usar. Entretanto, durante a operação real do gcc em si, os mesmos caminhos de procura não são necessariamente usados. Para descobrir qual lincador padrão o gcc usará, execute: $LFS_TGT-gcc -print-prog-name=ld. (Novamente, remova o prefixo $LFS_TGT- se retornar a isso posteriormente.) Informação detalhada pode ser obtida a partir do gcc passando-se a opção de linha de comando -v enquanto compilar um programa. Por exemplo, $LFS_TGT-gcc -v example.c (ou sem $LFS_TGT- se retornar posteriormente) exibirá informação detalhada acerca do preprocessador, compilação e estágios da montagem, incluindo os caminhos de procura do gcc para cabeçalhos inclusos e a ordem deles. Em seguida: cabeçalhos sanitizados da API do Linux. Eles permitem que a biblioteca C padrão (glibc) interaja com os recursos que o núcleo Linux fornecerá. Em seguida vem glibc. Esse é o primeiro pacote que nós compilamos cruzadamente. Nós usamos a opção --host=$LFS_TGT para fazer o sistema de construção usar aquelas ferramentas prefixadas com $LFS_TGT-, e a opção --build=$(../scripts/config.guess) para habilitar “o modo de compilação cruzada” como discutimos. A variável DESTDIR é usada para forçar a instalação no sistema de arquivos do LFS. Conforme mencionado acima, a biblioteca padrão C++ é compilada em seguida, seguida no [558]Capítulo 6 por outros programas que precisam ser compilados cruzadamente para quebrar dependências circulares ao tempo da construção. As etapas para aqueles pacotes são semelhantes às etapas para glibc. No final do [559]Capítulo 6 o compilador nativo do LFS é instalado. Primeiro binutils-pass2 é construído, no mesmo diretório DESTDIR que os outros programas, então a segunda passagem de gcc é construída, omitindo-se algumas bibliotecas não críticas. Uma vez dentro do ambiente chroot no [560]Capítulo 7, as instalações temporárias de programas necessários para a operação apropriada do conjunto de ferramentas são realizadas. Deste ponto em diante, o conjunto central de ferramentas está auto-contido e auto-hospedado. No [561]Capítulo 8, as versões finais de todos os pacotes necessários para um sistema completamente funcional são construídas, testadas e instaladas. Instruções Gerais de Compilação Cuidado Durante um ciclo de desenvolvimento do LFS, as instruções no livro frequentemente são modificadas para se adaptarem a uma atualização de pacote ou para tirar vantagem de novos recursos provenientes de pacotes atualizados. Misturar-se as instruções de diferentes versões do livro LFS pode causar quebras sutis. Esse tipo de problema geralmente é um resultado do reuso de algum conjunto de comandos sequenciais criado para um lançamento anterior do LFS. Tal reuso é fortemente desencorajado. Se você estiver reusando conjuntos de comandos sequenciais para um lançamento anterior do LFS por qualquer motivo, você precisará ter muito cuidado para atualizar os conjuntos de comandos sequenciais para corresponderem à versão atual do livro do LFS. Aqui estão algumas coisas que você deveria saber a respeito de construir cada pacote: * Vários pacotes são remendados antes da compilação, porém somente quando o remendo for necessário para contornar um problema. Um remendo frequentemente é necessário tanto neste quanto nos capítulos seguintes, porém às vezes, quando o mesmo pacote for construído mais que uma vez, o remendo não é necessário imediatamente. Portanto, não se preocupe se as instruções para um remendo baixado pareçam estar ausentes. Mensagens de aviso acerca de offset ou fuzz também possivelmente sejam encontradas ao se aplicar um remendo. Não se preocupe com esses alertas; o remendo ainda foi aplicado com sucesso. * Durante a compilação da maioria dos pacotes, alguns avisos rolarão na tela. Esses são normais e seguramente podem ser ignorados. Esses alertas usualmente são a respeito do uso de sintaxe C ou C++ obsoleta, porém não inválida. Padrões C mudam com ampla frequência e alguns pacotes ainda não foram atualizados. Esse não é um problema sério, porém causa o aparecimento dos avisos. * Verifique uma última vez se a variável de ambiente LFS está configurada adequadamente: echo $LFS Certifique-se de que a saída gerada mostra o caminho para o ponto de montagem da partição do LFS, que é /mnt/lfs, usando nosso exemplo. * Finalmente, dois itens importantes precisam ser enfatizados: Importante As instruções de construção assumem que as [562]Exigências do Sistema Anfitrião, incluindo links simbólicos, tenham sido 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 pequeno conjunto de comandos sequenciais que executa bison. Importante Aqui está uma sinopse do processo de construção. 1. Coloque todos os pacotes e os remendos em um diretório que estará acessível a partir do ambiente chroot, tal como /mnt/lfs/sources/. 2. Mude para o diretório /mnt/lfs/sources/. 3. Para cada pacote: 1. Usando o programa tar, extraia o pacote para ser construído. No [563]Capítulo 5 e no [564]Capítulo 6, certifique-se de que você seja o(a) usuário(a) lfs quando extrair o pacote. Não use nenhum método, exceto o comando tar, para extrair o código fonte. Notadamente, usar o comando cp -R para copiar a árvore do código fonte para outro lugar pode destruir carimbos de tempo na árvore do fonte e causar falha de construção. 2. Mude para o diretório criado quando o pacote foi extraído. 3. Siga as instruções para construir o pacote. 4. Mude de volta para o diretório dos fontes quando a construção estiver completa. 5. Delete o diretório do fonte extraído, a menos que instruído(a) do contrário. Capítulo 5. Compilando um Conjunto Cruzado de Ferramentas 5.1. Introdução Este capítulo mostra como construir um compilador cruzado e as ferramentas associadas dele. Embora aqui a compilação cruzada ser falseada, os princípios são os mesmos que para um conjunto cruzado real de ferramentas. Os programas 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 no lugar final delas, pois elas pertencem ao sistema que nós queremos construir. 5.2. Binutils-2.45 - 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: 678 MB 5.2.1. Instalação do Binutils Cruzado Nota Volte e releia as observações na seção intitulada [565]Instruções Gerais de Compilação. Entender as observações rotuladas como importantes pode salvar você de um monte de problemas depois. É importante que o Binutils seja o primeiro pacote compilado, pois ambos a Glibc e o GCC realizam vários testes sobre o vinculador e o montador disponíveis para determinar quais dos próprios recursos deles habilitar. A documentação do Binutils recomenda construir o Binutils em um diretório dedicado à construção: mkdir -v build cd build Nota Para a finalidade de que os valores da UPC listados no resto do livro sejam de algum uso, meça o tempo que leva para construir esse pacote desde a configuração até, e incluindo, a primeira instalação. Para fazer isso facilmente, encapsule os comandos em um comando time desta forma: time { ../configure ... && make && make install; }. Agora prepare o Binutils para compilação: ../configure --prefix=$LFS/tools \ --with-sysroot=$LFS \ --target=$LFS_TGT \ --disable-nls \ --enable-gprofng=no \ --disable-werror \ --enable-new-dtags \ --enable-default-hash-style=gnu O significado das opções do configure: Nota Ao contrário de outros pacotes, nem todas as opções listadas abaixo aparecem ao executar ./configure --help. Por exemplo, para encontrar a opção --with-sysroot, você tem que executar ld/configure --help. Todas as opções podem ser listadas de uma só vez com ./configure --help=recursive. --prefix=$LFS/tools Isso diz para o script configure para preparar para instalar os aplicativos do 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. --enable-gprofng=no Isso desabilita a construção do gprofng o qual não é necessário 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. --enable-new-dtags Isso faz com que o vinculador use a etiqueta “runpath” para incorporar caminhos de pesquisa de biblioteca em executáveis e em bibliotecas compartilhadas, em vez da tradicional etiqueta “rpath”. Ela torna mais fácil depurar executáveis vinculados dinamicamente e contorna possíveis problemas na suíte de teste de alguns pacotes. --enable-default-hash-style=gnu Por padrão, o vinculador geraria a tabela "hash" no estilo "GNU" e a tabela "hash" "ELF" clássica para bibliotecas compartilhadas e executáveis vinculados dinamicamente. As tabelas "hash" destinam-se somente a um vinculador dinâmico para realizar a pesquisa de símbolos. No LFS, o vinculador dinâmico (fornecido pelo pacote "Glibc") sempre usará a tabela "hash" no estilo "GNU", que é mais rápida de consultar. Portanto, a tabela "hash" "ELF" clássica é completamente inútil. Isso faz com que o vinculador gere somente a tabela "hash" estilo "GNU" por padrão, de forma que possamos evitar desperdiçar tempo para gerar a tabela "hash" "ELF" clássica quando construirmos os pacotes ou desperdiçar espaço em disco para armazená-la. Continue compilando o pacote: make Instale o pacote: make install Detalhes deste pacote estão localizados na [566]Seção 8.20.2, “Conteúdo do Binutils.” 5.3. GCC-15.2.0 - Passagem 1 O pacote GCC contém a GNU Compiler Collection, a qual inclui os compiladores C e C++. Tempo aproximado de construção: 3,8 UPC Espaço em disco exigido: 5,4 GB 5.3.1. Instalação do GCC Cruzado O 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 o GCC. Desempacote cada pacote dentro do diretório de fonte do GCC e renomeie os diretórios resultantes, de forma que os procedimentos de construção do GCC automaticamente os usarão: Nota Existem mal-entendidos frequentes a respeito deste capítulo. Os procedimentos são os mesmos que todos os outros capítulos, conforme explicados anteriormente ([567]Instruções de construção de pacote). Primeiro, extraia o tarball gcc-15.2.0 a partir do diretório dos 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.2.2.tar.xz mv -v mpfr-4.2.2 mpfr tar -xf ../gmp-6.3.0.tar.xz mv -v gmp-6.3.0 gmp tar -xf ../mpc-1.3.1.tar.gz mv -v mpc-1.3.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 Nota Esse exemplo demonstra o uso da chave -i.orig. Ela faz com que o sed copie o arquivo t-linux64 para t-linux64.orig e, então, edite o arquivo t-linux64 original no local. Assim, você pode executar diff -u gcc/config/i386/t-linux64{.orig,} para visualizar a mudança feita pelo comando sed posteriormente. Nós usaremos simplesmente -i (que somente edita o arquivo original no local, sem copiá-lo) para todos os outros pacotes do livro, mas você pode mudá-lo para -i.orig em qualquer caso que queira manter uma cópia do arquivo original. A documentação do GCC recomenda construir o GCC em um diretório de construção dedicado: mkdir -v build cd build Prepare o GCC para compilação: ../configure \ --target=$LFS_TGT \ --prefix=$LFS/tools \ --with-glibc-version=2.42 \ --with-sysroot=$LFS \ --with-newlib \ --without-headers \ --enable-default-pie \ --enable-default-ssp \ --disable-nls \ --disable-shared \ --disable-multilib \ --disable-threads \ --disable-libatomic \ --disable-libgomp \ --disable-libquadmath \ --disable-libssp \ --disable-libvtv \ --disable-libstdcxx \ --enable-languages=c,c++ O significado das opções do configure: --with-glibc-version=2.42 Essa opção especifica a versão da Glibc que será usada no alvo. Ela não é relevante para a libc da distribuição anfitriã, pois tudo compilado pela passagem 1 do GCC executará no ambiente chroot, o qual é isolado da libc da distribuição 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 à libc. --without-headers Quando da criação de um compilador cruzado completo, o 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 o GCC procure por eles. --enable-default-pie e --enable-default-ssp Essas chaves permitem que o GCC compile aplicativos com alguns recursos de segurança reforçados (mais informação a respeito delas na [568]observação a respeito de PIE e SSP no capítulo 8) por padrão. Elas não são estritamente necessárias neste estágio, pois o compilador produzirá apenas executáveis temporários. Mas, é mais limpo ter os pacotes temporários o mais próximo possível dos finais. --disable-shared Essa chave força o GCC a vincular as bibliotecas internas dele estaticamente. Nós precisamos disso, pois as bibliotecas compartilhadas exigem a Glibc, que ainda não está instalada no sistema alvo. --disable-multilib Em x86_64, o LFS não suporta uma configuração multi bibliotecas. Essa chave é inofensiva para x86. --disable-threads, --disable-libatomic, --disable-libgomp, --disable-libquadmath, --disable-libssp, --disable-libvtv e --disable-libstdcxx Essas chaves desabilitam o suporte para threading, libatomic, libgomp, libquadmath, libssp, libvtv e à biblioteca padrão C++ respectivamente. Esses recursos possivelmente falhem para compilar quando da construção de um compilador cruzado e não são necessários 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 o GCC executando: make Instale o pacote: make install Essa construção do GCC instalou um par de cabeçalhos internos de sistema. Normalmente um deles, limits.h, sequencialmente incluiria o correspondente cabeçalho de sistema limits.h, nesse caso, $LFS/usr/include/limits.h. Entretanto, ao tempo dessa construção do GCC, $LFS/usr/include/limits.h não existe, de forma que o cabeçalho interno que tenha sido instalado é um arquivo parcial, auto-contido, e não inclui os recursos estendidos do cabeçalho de sistema. Isso é adequado para a construção da Glibc, porém o cabeçalho interno completo será necessário posteriormente. Crie uma versão completa do cabeçalho interno usando um comando que é idêntico ao que o sistema de construção do GCC faz em circunstâncias normais: Nota O comando abaixo mostra um exemplo da substituição de comando aninhada usando dois métodos: aspas invertidas e uma construção $(). Poderia ser reescrito usando o mesmo método para ambas as substituições, porém é mostrado dessa maneira para demonstrar o como eles podem ser misturados. Geralmente o método $() é preferido. cd .. cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \ `dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/include/limits.h Detalhes acerca deste pacote estão localizados na [569]Seção 8.29.2, “Conteúdo do GCC.” 5.4. Cabeçalhos da API do Linux-6.16.1 Os Cabeçalhos da API do Linux (em linux-6.16.1.tar.xz) expõem a API do kernel para uso pela Glibc. Tempo aproximado de construção: menos que 0,1 UPC Espaço em disco exigido: 1,7 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 no LFS) usar. Isso é feito por meio de sanitizar vários arquivos de cabeçalho C que são embarcados no tarball do fonte do 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 para o(a) usuário(a) a partir do fonte. O alvo recomendado do make “headers_install” não pode ser usado, pois ele exige rsync, que possivelmente não esteja disponível. Os cabeçalhos são primeiro colocados em ./usr, então copiados para o local necessário. make headers find usr/include -type f ! -name '*.h' -delete 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 e /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 e /usr/include/xen Descrições Curtas /usr/include/asm/*.h Os cabeçalhos ASM da API do Linux /usr/include/asm-generic/*.h Os cabeçalhos genéricos ASM da API do Linux /usr/include/drm/*.h Os cabeçalhos DRM da API do Linux /usr/include/linux/*.h Os cabeçalhos Linux da API do Linux /usr/include/misc/*.h Os cabeçalhos diversos da API do Linux /usr/include/mtd/*.h Os cabeçalhos MTD da API do Linux /usr/include/rdma/*.h Os cabeçalhos RDMA da API do Linux /usr/include/scsi/*.h Os cabeçalhos SCSI da API do Linux /usr/include/sound/*.h Os cabeçalhos de som da API do Linux /usr/include/video/*.h Os cabeçalhos de vídeo da API do Linux /usr/include/xen/*.h Os cabeçalhos Xen da API do Linux 5.5. Glibc-2.42 O pacote Glibc contém a principal biblioteca C. 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: 1,4 UPC Espaço em disco exigido: 870 MB 5.5.1. Instalação da Glibc Primeiro, crie um link simbólico para conformidade com a 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 várias versões sintáticas, de forma que tenha certeza de verificar "info coreutils ln" e "[570]ln(1)" antes de informar o que possivelmente aparente ser um erro. Alguns dos aplicativos Glibc usam o diretório não conforme com a FHS /var/db para armazenar os dados em tempo de execução deles. Aplique o seguinte remendo para fazer com que tais aplicativos armazenem os dados em tempo de execução deles nos locais conformes com a FHS: patch -Np1 -i ../glibc-2.42-fhs-1.patch A documentação da Glibc recomenda construir a 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 a Glibc para compilação: ../configure \ --prefix=/usr \ --host=$LFS_TGT \ --build=$(../scripts/config.guess) \ --disable-nscd \ libc_cv_slibdir=/usr/lib \ --enable-kernel=5.4 O significado das opções do configure: --host=$LFS_TGT, --build=$(../scripts/config.guess) O efeito combinado dessas chaves é o de que o sistema de construção da Glibc se autoconfigura para ser compilado cruzadamente, usando o vinculador cruzado e o compilador cruzado em $LFS/tools. --enable-kernel=5.4 Isso diz para a Glibc para compilar a biblioteca com suporte para núcleos Linux 5.4 e posteriores. Contornos para núcleos mais antigos não estão habilitados. 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. --disable-nscd Não construa o processo de segundo plano de armazenamento temporário do serviço de nomes, o qual não mais é usado. Durante este estágio o seguinte aviso 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 ausente ou incompatível aplicativo msgfmt geralmente é inofensivo. Esse aplicativo msgfmt é parte do pacote Gettext, que a distribuição anfitriã deveria fornecer. Nota Tem havido informes de que esse pacote possivelmente falhe quando construir-se como um “make paralelo”. Se isso ocorrer, [então] reexecute o comando "make" com a 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 quase certamente o tornará inutilizável. Portanto, verifique duas vezes se o ambiente está corretamente configurado e que você não é o(a) root antes de executar o seguinte comando. make DESTDIR=$LFS install O significado da opção make install: DESTDIR=$LFS A variável DESTDIR do make é usada por quase todos os pacotes para definir o local onde o pacote deveria ser instalado. Se ela não estiver configurada, padroniza para o diretório raiz (/). Aqui nós especificamos que o pacote seja instalado em $LFS, que se tornará o diretório raiz na [571]Seção 7.4, “Entrando no Ambiente Chroot.” Corrija caminho codificado rigidamente para o carregador de executável no script ldd: sed '/RTLDLIST=/s@/usr@@g' -i $LFS/usr/bin/ldd Agora que nosso conjunto cruzado de ferramentas está no lugar, é importante garantir que compilação e vinculação funcionarão conforme esperado. Nós fazemos isso realizando algumas verificações de sanidade: echo 'int main(){}' | $LFS_TGT-gcc -x c - -v -Wl,--verbose &> dummy.log readelf -l a.out | grep ': /lib' Não deveriam existir erros, e a saída gerada do último comando será (levando em consideração diferenças específicas da plataforma no nome do vinculador dinâmico): [Requesting program interpreter: /lib64/ld-linux-x86-64.so.2] Observe que esse caminho não deveria conter /mnt/lfs (ou o valor da variável LFS se você usou uma diferente). O caminho é resolvido quando o programa compilado for executado, e isso só deveria acontecer depois que nós entrarmos no ambiente chroot onde o núcleo consideraria $LFS como o diretório raiz (/). Agora certifique-se de que nós estamos configurados para usar os arquivos corretos de iniciação: grep -E -o "$LFS/lib.*/S?crt[1in].*succeeded" dummy.log A saída gerada do último comando deveria ser: /mnt/lfs/lib/../lib/Scrt1.o succeeded /mnt/lfs/lib/../lib/crti.o succeeded /mnt/lfs/lib/../lib/crtn.o succeeded Verifique se o compilador está procurando os arquivos corretos de cabeçalho: grep -B3 "^ $LFS/usr/include" dummy.log Esse comando deveria retornar a seguinte saída gerada: #include <...> search starts here: /mnt/lfs/tools/lib/gcc/x86_64-lfs-linux-gnu/15.2.0/include /mnt/lfs/tools/lib/gcc/x86_64-lfs-linux-gnu/15.2.0/include-fixed /mnt/lfs/usr/include Novamente, o diretório nomeado depois do teu tripleto alvo possivelmente seja diferente do acima, dependendo da arquitetura do teu sistema. Agora, verifique se o novo vinculador está sendo usado com os caminhos corretos de procura: grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g' Referências para caminhos que tenham componentes com '-linux-gnu' deveriam ser ignoradas, porém, do contrário, a saída gerada do último comando deveria ser: SEARCH_DIR("=/mnt/lfs/tools/x86_64-lfs-linux-gnu/lib64") SEARCH_DIR("=/usr/local/lib64") SEARCH_DIR("=/lib64") SEARCH_DIR("=/usr/lib64") SEARCH_DIR("=/mnt/lfs/tools/x86_64-lfs-linux-gnu/lib") SEARCH_DIR("=/usr/local/lib") SEARCH_DIR("=/lib") SEARCH_DIR("=/usr/lib"); Um sistema de 32 bits possivelmente use alguns outros diretórios, mas de qualquer maneira o aspecto importante aqui é que todos os caminhos deveriam começar com um sinal de igual (=), que seria substituído pelo diretório sysroot que nós configuramos para o vinculador. Em seguida, tenha certeza de que nós estamos usando a libc correta: grep "/lib.*/libc.so.6 " dummy.log A saída gerada do último comando deveria ser: attempt to open /mnt/lfs/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 gerada do último comando deveria ser (levando em consideração diferenças específicas da plataforma no nome do vinculador dinâmico): found ld-linux-x86-64.so.2 at /mnt/lfs/usr/lib/ld-linux-x86-64.so.2 Se a saída gerada não aparecer conforme mostrado acima ou não for recebida, então alguma coisa está seriamente errada. Investigue e refaça as etapas para descobrir onde está o problema e corrija-o. Quaisquer problemas deveriam ser resolvidos antes de se continuar com o processo. Uma vez que tudo esteja funcionando corretamente, remova os arquivos de teste: rm -v a.out dummy.log Nota Construir os 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 o Binutils-passagem 2 ou o GCC-passagem 2, falhar na construção, [então] isso é uma indicação de que alguma coisa deu errado com as instalações anteriores doe Binutils, GCC ou da Glibc. Detalhes acerca desse pacote estão localizados na [572]Seção 8.5.3, “Conteúdo do Glibc.” 5.6. Libstdc++ oriundo de GCC-15.2.0 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 a instalação dela quando construímos [573]gcc-pass1, pois a Libstdc++ depende da Glibc, que ainda não estava disponível no diretório alvo. Tempo aproximado de construção: 0,2 UPC Espaço em disco exigido: 1,3 GB 5.6.1. Instalação da Libstdc++ Alvo Nota Libstdc++ é parte dos fontes do GCC. Você deveria primeiro desempacotar o tarball do GCC e mudar para o diretório gcc-15.2.0. Crie um diretório separado de construção para a Libstdc++ e entre nele: mkdir -v build cd build Prepare a 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++/15.2.0 O significado das opções do 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 pré-compilados include, os quais não são necessários neste estágio. --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/15.2.0 Isso especifica o diretório de instalação para arquivos include. Por causa da Libstdc++ ser a biblioteca padrão C++ para o LFS, esse diretório deveria corresponder com o local onde o compilador C++ ($LFS_TGT-g++) procuraria pelos arquivos padrão include C++ . Em uma construção normal, essa informação é automaticamente passada para as opções configure da Libstdc++ a partir do diretório de nível de topo. Em nosso caso, essa informação precisa ser explicitamente dada. O compilador C++ precederá o caminho raiz do sistema $LFS (especificado quando da construção do GCC passagem 1) para o caminho de pesquisa de arquivo include, de forma que ele atualmente pesquisará em $LFS/tools/$LFS_TGT/include/c++/15.2.0. A combinação da variável DESTDIR (no comando make install abaixo) e essa chave causa os cabeçalhos serem instalados lá. Compile a Libstdc++ executando: make Instale a biblioteca: make DESTDIR=$LFS install Remova os arquivos de arquivamento do libtool, pois eles são danosos para compilação cruzada: rm -v $LFS/usr/lib/lib{stdc++{,exp,fs},supc++}.la Detalhes acerca deste pacote estão localizados na [574]Seção 8.29.2, “Conteúdo do 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 cruzados. 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. Usar os 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, possivelmente torne teu computador não usável. Este capítulo inteiro precisa ser feito como usuário(a) lfs, com o ambiente conforme descrito na [575]Seção 4.4, “Configurando o Ambiente.” 6.2. M4-1.4.20 O pacote M4 contém um processador de macro. Tempo aproximado de construção: 0,1 UPC Espaço em disco exigido: 38 MB 6.2.1. Instalação do M4 Prepare o 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 na [576]Seção 8.13.2, “Conteúdo de M4.” 6.3. Ncurses-6.5-20250809 O pacote Ncurses contém bibliotecas para manuseio independente de terminal das telas de caracteres . Tempo aproximado de construção: 0,4 UPC Espaço em disco exigido: 54 MB 6.3.1. Instalação do Ncurses Primeiro, execute os seguintes comandos para construir o programa tic no anfitrião de construção. Nós o instalamos em $LFS/tools de forma que ele seja encontrado no PATH quando necessário: mkdir build pushd build ../configure --prefix=$LFS/tools AWK=gawk make -C include make -C progs tic install progs/tic $LFS/tools/bin popd Prepare o Ncurses para compilação: ./configure --prefix=/usr \ --host=$LFS_TGT \ --build=$(./config.guess) \ --mandir=/usr/share/man \ --with-manpage-format=normal \ --with-shared \ --without-normal \ --with-cxx-shared \ --without-debug \ --without-ada \ --disable-stripping \ AWK=gawk O significado das novas opções de configuração: --with-manpage-format=normal Isso evita que o Ncurses instale páginas de manual comprimidas, o que possivelmente aconteça se a própria distribuição anfitriã tiver páginas de manual comprimidas. --with-shared Isso faz com que o Ncurses construa e instale bibliotecas C compartilhadas. --without-normal Isso evita que o Ncurses construa e instale bibliotecas C estáticas. --without-debug Isso evita que o Ncurses construa e instale bibliotecas de depuração. --with-cxx-shared Isso faz com que o Ncurses construa e instale vínculos C++ compartilhados. Também evita a construção e instalação de vínculos C++ estáticos. --without-ada Isso assegura que o Ncurses não construa suporte para o compilador Ada, o qual possivelmente 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 usar o aplicativo strip oriundo do anfitrião. Usar ferramentas do anfitrião em aplicativos compilados cruzadamente pode causar falha. AWK=gawk Essa chave impede o sistema de construção de usar o programa mawk oriundo do anfitrião. Algumas versões do mawk podem causar esse pacote falhar para construir. Compile o pacote: make Instale o pacote: make DESTDIR=$LFS install ln -sv libncursesw.so $LFS/usr/lib/libncurses.so sed -e 's/^#if.*XOPEN.*$/#if 1/' \ -i $LFS/usr/include/curses.h O significado das opções de instalação: ln -sv libncursesw.so $LFS/usr/lib/libncurses.so A biblioteca libncurses.so é necessária para uns poucos pacotes que nós construiremos breve. Nós criamos esse link simbólico para usar a libncursesw.so como uma substituta. sed -e 's/^#if.*XOPEN.*$/#if 1/' ... O arquivo de cabeçalho curses.h contém a definição de várias estruturas de dados do Ncurses. Com diferentes definições de macro de pré processador, dois conjuntos de definição de estrutura de dados podem ser usados: a definição de oito bits é compatível com a libncurses.so e a definição de caracteres largos é compatível com a libncursesw.so. Como estamos usando a libncursesw.so como uma substituta da libncurses.so, edite o arquivo de cabeçalho de forma que ele sempre usará a definição de estrutura de dados de caracteres largos compatível com a libncursesw.so. Detalhes acerca deste pacote estão localizados na [577]Seção 8.30.2, “Conteúdo do Ncurses.” 6.4. Bash-5.3 O pacote Bash contém o Bourne-Again SHell. Tempo aproximado de construção: 0,2 UPC Espaço em disco exigido: 72 MB 6.4.1. Instalação do Bash Prepare o Bash para compilação: ./configure --prefix=/usr \ --build=$(sh support/config.guess) \ --host=$LFS_TGT \ --without-bash-malloc O significado das opções do 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, o Bash usará as funções malloc originárias da 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 na [578]Seção 8.36.2, “Conteúdo do Bash.” 6.5. Coreutils-9.7 O pacote Coreutils contém aplicativos utilitários básicos necessitados por cada sistema operacional. Tempo aproximado de construção: 0,3 UPC Espaço em disco exigido: 181 MB 6.5.1. Instalação do Coreutils Prepare o 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 do 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 do Perl. Compile o pacote: make Instale o pacote: make DESTDIR=$LFS install Mova aplicativos para os locais finais deles 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 na [579]Seção 8.59.2, “Conteúdo do Coreutils.” 6.6. Diffutils-3.12 O pacote Diffutils contém aplicativos que mostram as diferenças entre arquivos ou diretórios. Tempo aproximado de construção: 0,1 UPC Espaço em disco exigido: 35 MB 6.6.1. Instalação do Diffutils Prepare o Diffutils para compilação: ./configure --prefix=/usr \ --host=$LFS_TGT \ gl_cv_func_strcasecmp_works=y \ --build=$(./build-aux/config.guess) O significado das opções do configure: gl_cv_func_strcasecmp_works=y Essa opção especifica o resultado de uma verificação para strcasecmp. A verificação exige executar um programa em C compilado, e isso é impossível durante a compilação cruzada, pois, em geral, um programa compilado cruzadamente não pode executar na distribuição anfitriã. Normalmente, para tal verificação, o conjunto de comandos sequenciais configure usaria um valor residual para compilação cruzada, mas o valor residual para essa verificação está ausente e o conjunto de comandos sequenciais configure não teria valor para usar e apresentaria um erro. O fluxo de desenvolvimento já corrigiu o problema, mas para aplicar a correção, nós precisaríamos executar autoconf, que a distribuição anfitriã possivelmente careça. Portanto, nós apenas especificamos o resultado da verificação (y, pois nós sabemos que a função strcasecmp na Glibc-2.42 funciona bem), então configure usará apenas o valor especificado e ignorará a verificação. Compile o pacote: make Instale o pacote: make DESTDIR=$LFS install Detalhes acerca deste pacote estão localizados na [580]Seção 8.60.2, “Conteúdo do Diffutils.” 6.7. File-5.46 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: 42 MB 6.7.1. Instalação do 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 produzir uma cópia temporária do comando file: mkdir build pushd build ../configure --disable-bzlib \ --disable-libseccomp \ --disable-xzlib \ --disable-zlib make popd O significado da nova opção do 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 possivelmente cause falha de compilação se um arquivo de biblioteca existir, porém os arquivos de cabeçalhos correspondentes não. Essas opções evitam usar essas capacidades desnecessárias oriundas do anfitrião. Prepare o 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 Remova o arquivo de arquivamento do libtool pois ele é danoso para compilação cruzada: rm -v $LFS/usr/lib/libmagic.la Detalhes acerca deste pacote estão localizados na [581]Seção 8.11.2, “Conteúdo do File.” 6.8. Findutils-4.10.0 O pacote Findutils contém aplicativos para encontrar arquivos. Os aplicativos são fornecidos para procurar ao longo de todos os arquivos em uma árvore de diretórios e para criar, manter e buscar uma base de dados (geralmente mais rápido que o find recursivo, porém não é confiável, a menos que a base de dados tenha sido atualizada recentemente). O Findutils também abastece o aplicativo xargs, o qual pode ser usado para executar um comando especificado sobre cada arquivo selecionado por uma pesquisa. Tempo aproximado de construção: 0,2 UPC Espaço em disco exigido: 48 MB 6.8.1. Instalação do Findutils Prepare o 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 na [582]Seção 8.62.2, “Conteúdo do Findutils.” 6.9. Gawk-5.3.2 O pacote Gawk contém aplicativos para manipular arquivos de texto. Tempo aproximado de construção: 0,1 UPC Espaço em disco exigido: 49 MB 6.9.1. Instalação do Gawk Primeiro, garanta que alguns arquivos desnecessários não sejam instalados: sed -i 's/extras//' Makefile.in Prepare o 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 na [583]Seção 8.61.2, “Conteúdo do Gawk.” 6.10. Grep-3.12 O pacote Grep contém aplicativos para procura ao longo do conteúdo de arquivos. Tempo aproximado de construção: 0,1 UPC Espaço em disco exigido: 32 MB 6.10.1. Instalação do Grep Prepare o Grep 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 na [584]Seção 8.35.2, “Conteúdo do Grep.” 6.11. Gzip-1.14 O pacote Gzip contém aplicativos para comprimir e descomprimir arquivos. Tempo aproximado de construção: 0,1 UPC Espaço em disco exigido: 12 MB 6.11.1. Instalação do Gzip Prepare o 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 na [585]Seção 8.65.2, “Conteúdo do Gzip.” 6.12. Make-4.4.1 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: menos que 0,1 UPC Espaço em disco exigido: 15 MB 6.12.1. Instalação do Make Prepare o Make 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 na [586]Seção 8.69.2, “Conteúdo do Make.” 6.13. Patch-2.8 O pacote Patch contém um aplicativo para modificar ou criar arquivos por aplicação de um arquivo “remendo” tipicamente criado pelo aplicativo diff. Tempo aproximado de construção: 0,1 UPC Espaço em disco exigido: 14 MB 6.13.1. Instalação do Patch Prepare o 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 na [587]Seção 8.70.2, “Conteúdo do Patch.” 6.14. Sed-4.9 O pacote Sed contém um editor de fluxo. Tempo aproximado de construção: 0,1 UPC Espaço em disco exigido: 21 MB 6.14.1. Instalação do Sed Prepare o Sed 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 na [588]Seção 8.31.2, “Conteúdo do Sed.” 6.15. Tar-1.35 O pacote Tar fornece a habilidade para criar arquivamentos tar bem como para realizar vários outros tipos de manipulação de arquivamento. Tar pode ser usado sobre 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,1 UPC Espaço em disco exigido: 42 MB 6.15.1. Instalação do Tar Prepare o 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 na [589]Seção 8.71.2, “Conteúdo do Tar.” 6.16. Xz-5.8.1 O pacote Xz contém aplicativos para comprimir e descomprimir arquivos. Ele fornece recursos 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 com os tradicionais comandos gzip ou bzip2. Tempo aproximado de construção: 0,1 UPC Espaço em disco exigido: 23 MB 6.16.1. Instalação do Xz Prepare o Xz para compilação: ./configure --prefix=/usr \ --host=$LFS_TGT \ --build=$(build-aux/config.guess) \ --disable-static \ --docdir=/usr/share/doc/xz-5.8.1 Compile o pacote: make Instale o pacote: make DESTDIR=$LFS install Remova o arquivo de arquivamento do libtool pois ele é danoso para compilação cruzada: rm -v $LFS/usr/lib/liblzma.la Detalhes acerca deste pacote estão localizados na [590]Seção 8.8.2, “Conteúdo do Xz.” 6.17. Binutils-2.45 - Passagem 2 O pacote Binutils contém um vinculador, um montador e outras ferramentas para manusear arquivos objeto. Tempo aproximado de construção: 0,4 UPC Espaço em disco exigido: 548 MB 6.17.1. Instalação do Binutils O sistema de construção do "Binutils" depende de uma cópia enviada da "libtool" para vincular-se a bibliotecas estáticas internas, mas as cópias "libiberty" e "zlib" enviadas no pacote não usam a "libtool". Essa inconsistência possivelmente cause binários produzidos vinculados erroneamente a bibliotecas originárias da distribuição anfitriã. Contorne esse problema: sed '6031s/$add_dir//' -i ltmain.sh Crie um diretório de construção separado novamente: mkdir -v build cd build Prepare o Binutils para compilação: ../configure \ --prefix=/usr \ --build=$(../config.guess) \ --host=$LFS_TGT \ --disable-nls \ --enable-shared \ --enable-gprofng=no \ --disable-werror \ --enable-64-bit-bfd \ --enable-new-dtags \ --enable-default-hash-style=gnu O significado das novas opções de configuração: --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). Isso possivelmente 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 Remova os arquivos de arquivamento da libtool, pois eles são danosos para compilação cruzada e remove bibliotecas estáticas desnecessárias: rm -v $LFS/usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes,sframe}.{a,la} Detalhes deste pacote estão localizados na [591]Seção 8.20.2, “Conteúdo do Binutils.” 6.18. GCC-15.2.0 - Passagem 2 O pacote GCC contém a GNU Compiler Collection, a qual inclui os compiladores C e C++. Tempo aproximado de construção: 4,5 UPC Espaço em disco exigido: 6,0 GB 6.18.1. Instalação do GCC Como na primeira construção do GCC, os pacotes GMP, MPFR e MPC são exigidos. Desempacote os tarballs e mova-os para os diretórios exigidos: tar -xf ../mpfr-4.2.2.tar.xz mv -v mpfr-4.2.2 mpfr tar -xf ../gmp-6.3.0.tar.xz mv -v gmp-6.3.0 gmp tar -xf ../mpc-1.3.1.tar.gz mv -v mpc-1.3.1 mpc Se você estiver construindo em x86_64, 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 Substitua as regras de construção dos cabeçalhos da libgcc e da libstdc++ para permitir construir essas bibliotecas com suporte a camadas POSIX: sed '/thread_header =/s/@.*@/gthr-posix.h/' \ -i libgcc/Makefile.in libstdc++-v3/include/Makefile.in Crie um diretório de construção separado novamente: mkdir -v build cd build Antes de iniciar a construção do GCC, lembre-se de desconfigurar quaisquer variáveis de ambiente que substituam os sinalizadores de otimização padrão. Agora prepare o GCC para compilação: ../configure \ --build=$(../config.guess) \ --host=$LFS_TGT \ --target=$LFS_TGT \ --prefix=/usr \ --with-build-sysroot=$LFS \ --enable-default-pie \ --enable-default-ssp \ --disable-nls \ --disable-multilib \ --disable-libatomic \ --disable-libgomp \ --disable-libquadmath \ --disable-libsanitizer \ --disable-libssp \ --disable-libvtv \ --enable-languages=c,c++ \ LDFLAGS_FOR_TARGET=-L$PWD/$LFS_TGT/libgcc O significado das novas opções de configuração: --with-build-sysroot=$LFS Normalmente, usar --host garante que um compilador cruzado seja usado para construir o GCC e que o compilador sabe que tem que procurar por cabeçalhos e por bibliotecas em $LFS. Porém, o sistema de construção para o GCC usa ferramentas adicionais, que não estão cientes desse local. Essa chave é necessária, de forma que tais ferramentas procurarão pelos arquivos necessários em $LFS, e não no anfitrião. --target=$LFS_TGT Nós estamos compilando cruzadamente o GCC, de forma que é impossível construir bibliotecas alvo (libgcc e libstdc++) com os binários do GCC compilados nesta passagem—esses binários não executariam no anfitrião. O sistema de construção do GCC tentará usar os compiladores C e C++ do anfitrião como uma solução alternativa por padrão. Construir as bibliotecas alvo do GCC com uma versão diferente do GCC não é suportado, de forma que usar os compiladores do anfitrião possivelmente cause falha de construção. Esse parâmetro assegura que as bibliotecas sejam construídas pelo GCC passagem 1. LDFLAGS_FOR_TARGET=... Permite que libstdc++ use o libgcc sendo construído nessa passagem, em vez da versão anterior construída em [592]gcc-pass1. A versão anterior não pode suportar adequadamente o tratamento de exceções C++ porque foi construída sem suporte a libc. --disable-libsanitizer Desabilita as bibliotecas sanitizadoras de tempo de execução do GCC. Elas não são necessárias para a instalação temporária. Em [593]gcc-pass1 estava implícito por --disable-libstdcxx e agora temos que passá-lo explicitamente. 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 GNU C nem sempre está instalado. Executar cc deixa o(a) administrador(a) do sistema livre para decidir qual compilador C instalar: ln -sv gcc $LFS/usr/bin/cc Detalhes acerca deste pacote estão localizados na [594]Seção 8.29.2, “Conteúdo do GCC.” Capítulo 7. Entrando no Chroot e Construindo Ferramentas Temporárias Adicionais 7.1. Introdução Este capítulo mostra como construir os bits ausentes finais do sistema temporário: as ferramentas necessárias para construir os vários pacotes. Agora que todas as dependências circulares foram resolvidas, um ambiente “chroot”, completamente isolado do sistema operacional anfitrião (exceto pelo núcleo em execução), pode ser usado para a construção. Para a operação adequada do ambiente isolado, alguma comunicação com o núcleo em execução precisa ser estabelecida. Isso é feito por meio dos assim chamados Sistemas de Arquivos Virtuais do Núcleo, que serão montados antes da entrada no ambiente chroot. Você possivelmente queira verificar se eles estão montados emitindo o comando findmnt. Até a [595]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 no chroot, todos os comandos são executados como root, por sorte sem acesso ao SO do computador no qual que você construiu o LFS. Seja cuidadoso(a) 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 logado(a) como usuário(a) root e não mais como usuário(a) lfs. Também, verifique duplamente se $LFS está configurada no ambiente do(a) root. Atualmente, a hierarquia de diretório inteira em $LFS é de propriedade do(a) usuário(a) lfs, um(a) usuário(a) que existe somente no sistema anfitrião. Se os diretórios e os 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 obter 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 --from lfs -R root:root $LFS/{usr,var,etc,tools} case $(uname -m) in x86_64) chown --from lfs -R root:root $LFS/lib64 ;; esac 7.3. Preparando Sistemas de Arquivos Virtuais do Núcleo Os aplicativos executando no espaço do(a) usuário(a) utilizam vários sistemas de arquivos criados pelo núcleo para comunicar com o próprio núcleo. Esses sistemas de arquivos são virtuais: nenhum espaço em disco é usado por eles. O conteúdo desses sistemas de arquivos reside em memória. Esses sistemas de arquivos precisam estar montados na árvore de diretórios $LFS, de modo que os aplicativos consigam encontrá-los no ambiente chroot. Comece criando os diretórios nos quais esses sistemas de arquivos virtuais serão montados: mkdir -pv $LFS/{dev,proc,sys,run} 7.3.1. Montando e Povoando /dev Durante uma inicialização normal de um sistema LFS, o núcleo automaticamente monta o sistema de arquivos devtmpfs no diretório /dev; o núcleo cria nós de dispositivo naquele sistema de arquivos virtuais durante o processo de inicialização ou quando um dispositivo for primeiro detectado ou acessado. O daemon udev possivelmente mude a propriedade ou as permissões dos nós de dispositivo criados pelo núcleo e crie novos nós de dispositivo ou links simbólicos para facilitar o trabalho dos(as) mantenedores(as) de distribuição e de administradores(as) de sistema. (Veja-se o [596]Seção 9.3.2.2, “Criação de Nó de Dispositivo” para detalhes). Se o núcleo do anfitrião suportar devtmpfs, [então] nós podemos simplesmente montar um devtmpfs em $LFS/dev e confiar no núcleo para povoá-lo. Porém, alguns núcleos de anfitrião carecem de suporte a devtmpfs; essas distribuições anfitriãs usam métodos diferentes para criar o conteúdo do /dev. Assim, a única maneira agnóstica ao anfitrião para povoar o diretório $LFS/dev é a de montar vinculadamente o diretório /dev do sistema anfitrião. Uma montagem vinculada é um tipo especial de montagem que produz uma sub árvore de diretórios ou de um arquivo visível em algum outro local. Use o seguinte comando para fazer isso. mount -v --bind /dev $LFS/dev 7.3.2. Montando Sistemas de Arquivos Virtuais do Núcleo Agora monte os restantes sistemas de arquivos virtuais do núcleo: mount -vt devpts devpts -o gid=5,mode=0620 $LFS/dev/pts mount -vt proc proc $LFS/proc mount -vt sysfs sysfs $LFS/sys mount -vt tmpfs tmpfs $LFS/run O significado das opções de montagem para devpts: gid=5 Isso garante que todos os nós de dispositivos criados pelo devpts são titularizados pelo ID de grupo 5. Esse é o ID que usaremos mais tarde para o grupo tty. Nós usamos o ID de grupo em vez de um nome, pois o sistema anfitrião pode usar um ID diferente para o grupo tty dele. mode=0620 Isso garante que todos os nós de dispositivos criados pelo devpts tenham o modo 0620 (legível e escrevível por usuário(a), escrevível por grupo). Juntamente com a opção acima, isso garante que o devpts criará nós de dispositivos que atendam às exigências de grantpt(), significando que o binário auxiliar da Glibc pt_chown (que não é instalado por padrão) não é necessário. Em alguns sistemas anfitriões, /dev/shm é um link simbólico para um diretório, tipicamente /run/shm. O tmpfs do /run foi montado acima, de modo que, nesse caso, somente um diretório precisa ser criado com as permissões corretas. Em outros sistemas anfitriões, /dev/shm é um ponto de montagem para um tmpfs. Nesse caso, a montagem do /dev acima somente criará /dev/shm como um diretório no ambiente chroot. Nessa situação, nós precisamos montar explicitamente um tmpfs: if [ -h $LFS/dev/shm ]; then install -v -d -m 1777 $LFS$(realpath /dev/shm) else mount -vt tmpfs -o nosuid,nodev tmpfs $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, é tempo de entrar no ambiente chroot e finalizar a instalação das ferramentas temporárias. Esse ambiente também será usado para instalar o 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 \ MAKEFLAGS="-j$(nproc)" \ TESTSUITEFLAGS="-j$(nproc)" \ /bin/bash --login Se você não quiser usar todos os núcleos lógicos disponíveis, [então] substitua "$(nproc)" pelo número de núcleos lógicos que você deseja usar para construir pacotes neste capítulo e nos capítulos seguintes. As suítes de teste de alguns pacotes (notadamente "Autoconf", "Libtool" e "Tar") no [597]Capítulo 8 não são afetadas por "MAKEFLAGS"; em vez disso, elas usam uma variável de ambiente "TESTSUITEFLAGS". Nós configuramos isso aqui também para executar essas suítes de teste com vários núcleos. A opção -i dada para o comando env limpará todas as variáveis no ambiente chroot. Depois disso, somente as variáveis HOME, TERM, PS1, e PATH são configuradas novamente. A construção TERM=$TERM configura a variável TERM dentro do chroot para o mesmo valor que fora do chroot. Essa variável é necessária, de modo que aplicativos como o vim e o less possam operar adequadamente. Se outras variáveis forem desejadas, tais como CFLAGS ou CXXFLAGS, [então] esse é um bom lugar para configurá-las. Deste ponto em diante, não existe mais necessidade de usar a variável LFS, pois todo o trabalho estará restrito ao sistema de arquivos do LFS; o comando chroot executa o shell Bash com o diretório raiz (/) configurado para $LFS. Observe que /tools/bin não está no PATH. Isso significa que o conjunto de ferramentas cruzadas não mais será usado. Observe também que o "prompt" do "bash" dirá "I have no name!" Isso é normal porque 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 (reinicializar, por exemplo), [então] certifique-se de que os sistemas de arquivos virtuais do núcleo estejam montados como explicado no [598]Seção 7.3.1, “Montando e Povoando /dev” e no [599]Seção 7.3.2, “Montando Sistemas de Arquivos Virtuais do Núcleo” e entre no chroot novamente antes de continuar com a instalação. 7.5. Criando Diretórios É tempo de criar a estrutura completa de diretórios no sistema de arquivos do LFS. Nota Alguns dos diretórios mencionados nesta seção possivelmente já tenham sido criados anteriormente com instruções explícitas ou quando da instalação de alguns pacotes. Elas estão repetidas abaixo para completude. 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: 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/lib/locale 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 em todos os lugares. Nos comandos acima, duas mudanças são feitas—uma para o diretório home do(a) usuário(a) root e outra para os diretórios para arquivos temporários. A primeira mudança de modo assegura que nem toda pessoa possa entrar no diretório "/root"—o mesmo que um(a) usuário(a) normal faria com o próprio diretório "home" dele ou dela. A segunda mudança de modo garante que qualquer usuário(a) consiga escrever nos diretórios "/tmp" e "/var/tmp", mas não consiga remover deles os arquivos de outros(as) usuários(as). A última é proibida pelo assim chamado “sticky bit”, o bit mais alto (1) na máscara de bits 1777. 7.5.1. Observação de Conformidade com o FHS Essa árvore de diretórios é baseada no Padrão de Hierarquia de Sistema de Arquivos (Filesystem Hierarchy Standard - FHS) (disponível em [600]https://refspecs.linuxfoundation.org/fhs.shtml). O FHS também especifica a existência opcional de diretórios adicionais, tais como /usr/local/games e /usr/share/games. No LFS, nós criamos apenas os diretórios que são realmente necessários. Entretanto, sinta-se livre para criar mais diretórios, se você desejar. Atenção O FHS não impõe a existência do diretório /usr/lib64 e os(as) editores(as) do LFS decidiram não usá-lo. Para as instruções no LFS e no BLFS funcionarem corretamente, é imperativo que esse diretório seja não existente. De tempos em tempos você deveria verificar se ele não existe, pois é fácil criá-lo inadvertidamente e isso provavelmente quebrará o seu sistema. 7.6. Criando Arquivos Essenciais e Links Simbólicos Historicamente, o Linux manteve uma lista dos sistemas de arquivos montados no arquivo /etc/mtab. Os Núcleos modernos mantém essa lista internamente e a expõem para o(a) usuário(a) via sistema de arquivos /proc. Para satisfazer utilitários que esperam encontrar o /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 o(a) usuário(a) root seja capaz de logar e para que o nome “root” seja reconhecido, precisam 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:65534:65534:Unprivileged User:/dev/null:/usr/bin/false EOF A senha atual para root será configurada posteriormente. 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: 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: users:x:999: nogroup:x:65534: EOF Os grupos criados não são parte de nenhum padrão—eles são grupos decididos em parte pelas exigências da configuração do Udev no Capítulo 9 e em parte pelas convenções comuns empregadas por um número de distribuições Linux existentes. Adicionalmente, algumas suítes de teste dependem de usuárias(os) ou grupos específicas(os). A Linux Standard Base (LSB, disponível em [601]http://refspecs.linuxfoundation.org/lsb.shtml) somente 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. O GID de 5 é amplamente usado para o grupo tty e o número 5 também é usado no systemd para o sistema de arquivos devpts. Todos os outros nomes de grupo e GIDs podem ser escolhidos livremente pelo(a) administrador(a) do sistema, uma vez que aplicativos bem escritos não dependem de números de GID, mas sim usam o nome do grupo. O ID 65534 é usado pelo núcleo para NFS e espaços de nome de usuário(a) separados para usuários(as) e grupos não mapeados(as) (aqueles(as) existem no servidor NFS ou no espaço de nome de usuário pai, porém “não existem” na máquina local ou no espaço de nome separado). Nós atribuímos nobody e nogroup para evitar um ID não nomeado. Porém, outras distribuições possivelmente tratem esse ID diferentemente, de forma que qualquer aplicativo portável não deveria depender dessa atribuição. Alguns testes no [602]Capítulo 8 precisam de um(a) usuário(a) regular. Nós adicionamos esse(a) usuário(a) 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 tenham sido criados, a 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 registro para registrar informação, tais como quem esteve logada(o) no sistema e quando. Entretanto, esses aplicativos não escreverão nos arquivos de registro se eles já não existirem. Inicialize os arquivos de registro 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) se 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 Os arquivos wtmp, btmp e lastlog usam números inteiros de 32 bits para carimbo de tempo e eles serão fundamentalmente quebrados depois do ano 2038. Muitos pacotes pararam de usá-los e outros pacotes pararão de usá-los. Não confie no conteúdo deles para nada. Provavelmente é melhor considerá-los obsoletos. 7.7. Gettext-0.26 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 do(a) usuário(a). Tempo aproximado de construção: 1,5 UPC Espaço em disco exigido: 463 MB 7.7.1. Instalação do Gettext Para nosso conjunto temporário de ferramentas, nós precisamos somente instalar três aplicativos originários do Gettext. Prepare o 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 do 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 na [603]Seção 8.33.2, “Conteúdo do Gettext.” 7.8. Bison-3.8.2 O pacote Bison contém um gerador de analisador. Tempo aproximado de construção: 0,2 UPC Espaço em disco exigido: 58 MB 7.8.1. Instalação do Bison Prepare o Bison para compilação: ./configure --prefix=/usr \ --docdir=/usr/share/doc/bison-3.8.2 O significado da nova opção do configure: --docdir=/usr/share/doc/bison-3.8.2 Isso diz ao sistema de construção para instalar a documentação do bison em um diretório versionado. Compile o pacote: make Instale o pacote: make install Detalhes acerca deste pacote estão localizados na [604]Seção 8.34.2, “Conteúdo do Bison.” 7.9. Perl-5.42.0 O pacote Perl contém o Practical Extraction and Report Language. Tempo aproximado de construção: 0,6 UPC Espaço em disco exigido: 295 MB 7.9.1. Instalação do Perl Prepare o Perl para compilação: sh Configure -des \ -D prefix=/usr \ -D vendorprefix=/usr \ -D useshrplib \ -D privlib=/usr/lib/perl5/5.42/core_perl \ -D archlib=/usr/lib/perl5/5.42/core_perl \ -D sitelib=/usr/lib/perl5/5.42/site_perl \ -D sitearch=/usr/lib/perl5/5.42/site_perl \ -D vendorlib=/usr/lib/perl5/5.42/vendor_perl \ -D vendorarch=/usr/lib/perl5/5.42/vendor_perl O significado das opções do 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 gerada não essencial. -D vendorprefix=/usr Isso garante que perl saiba como dizer aos pacotes onde eles deveriam instalar os módulos "Perl" deles. -D useshrplib Construa a libperl, necessária para alguns módulos "Perl", como uma biblioteca compartilhada, em vez de uma biblioteca estática. -D privlib,-D archlib,-D sitelib,... Essas configurações definem onde o "Perl" procura os módulos instalados. Os(As) editores(as) do LFS optaram por colocá-los em uma estrutura de diretórios baseada na versão PRINCIPAL.SECUNDÁRIA do "Perl" (5.42) que permite atualizar o "Perl" para níveis de remendo mais recentes (o nível de remendo é a última parte separada por pontos na sequência completa de caracteres da versão, como 5.42.0) sem reinstalar todos os módulos. Compile o pacote: make Instale o pacote: make install Detalhes acerca deste pacote estão localizados na [605]Seção 8.43.2, “Conteúdo do Perl.” 7.10. Python-3.13.7 O pacote Python 3 contém o ambiente de desenvolvimento do Python. Ele é útil para programação orientada a objeto, escrita de scripts, prototipagem de aplicativos grandes e desenvolvimento de aplicações inteiras. Python é uma linguagem interpretada de computador. Tempo aproximado de construção: 0,5 UPC Espaço em disco exigido: 546 MB 7.10.1. Instalação do Python Nota Existem dois arquivos de pacotes cujos nomes se iniciam com o prefixo “python”. Aquele a se extrair a partir dele é Python-3.13.7.tar.xz (perceba a primeira letra maiúscula). Prepare o Python para compilação: ./configure --prefix=/usr \ --enable-shared \ --without-ensurepip \ --without-static-libpython O significado da opção de configure: --enable-shared Essa chave impede a instalação de bibliotecas estáticas. --without-ensurepip Essa chave desabilita o instalador de pacote do Python, o qual não é necessário neste estágio. --without-static-libpython Essa chave impede instalar uma biblioteca estática grande, porém desnecessária. Compile o pacote: make Nota Alguns módulos do Python 3 não podem ser construídos agora, pois as dependências não estão instaladas ainda. Para o módulo ssl, uma mensagem Python requires a OpenSSL 1.1.1 or newer é gerada. A mensagem deveria ser ignorada. Apenas tenha certeza de que o comando de nível superior make não tenha falhado. Os módulos opcionais não são necessários agora e eles serão construídos no [606]Capítulo 8. Instale o pacote: make install Detalhes acerca deste pacote estão localizados na [607]Seção 8.51.2, “Conteúdo do Python 3.” 7.11. Texinfo-7.2 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: 152 MB 7.11.1. Instalação do Texinfo Prepare o Texinfo para compilação: ./configure --prefix=/usr Compile o pacote: make Instale o pacote: make install Detalhes acerca deste pacote estão localizados na [608]Seção 8.72.2, “Conteúdo do Texinfo.” 7.12. Util-linux-2.41.1 O pacote Util-linux contém diversos aplicativos utilitários. Tempo aproximado de construção: 0,2 UPC Espaço em disco exigido: 192 MB 7.12.1. Instalação do Util-linux O FHS recomenda usar o diretório /var/lib/hwclock em vez do usual diretório /etc como o local para o arquivo adjtime. Crie esse diretório com: mkdir -pv /var/lib/hwclock Prepare o Util-linux para compilação: ./configure --libdir=/usr/lib \ --runstatedir=/run \ --disable-chfn-chsh \ --disable-login \ --disable-nologin \ --disable-su \ --disable-setpriv \ --disable-runuser \ --disable-pylibmount \ --disable-static \ --disable-liblastlog2 \ --without-python \ ADJTIME_PATH=/var/lib/hwclock/adjtime \ --docdir=/usr/share/doc/util-linux-2.41.1 O significado das opções do configure: ADJTIME_PATH=/var/lib/hwclock/adjtime Isso configura o local 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 outro local, 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 do Python. Ela evita tentar construir ligações desnecessárias. runstatedir=/run Essa chave configura corretamente o local do soquete usado por uuidd e libuuid. Compile o pacote: make Instale o pacote: make install Detalhes acerca deste pacote estão localizados na [609]Seção 8.80.2, “Conteúdo do Util-linux.” 7.13. Limpando e Salvando o Sistema Temporário 7.13.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, em um sistema moderno Linux, os arquivos libtool.la somente são úteis para a libltdl. Nenhuma biblioteca no LFS é carregada pela libltdl e é sabido que alguns arquivos .la podem causar falhas de pacote do BLFS. Remova tais arquivos agora: find /usr/{lib,libexec} -name \*.la -delete O tamanho atual do 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.13.2. Cópia de segurança Neste ponto, os aplicativos e bibliotecas essenciais foram criados e o seu sistema LFS atual está em um bom estado. Seu sistema agora pode 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 maneira para recuperar. Infelizmente, todos os arquivos temporários serão removidos, também. Para evitar desperdiçar tempo extra para refazer tudo o que tenha sido feito com sucesso, criar uma cópia de segurança do sistema LFS atual possivelmente se prove útil. Nota Todos os passos restantes nesta seção são opcionais. Apesar disso, tão logo você comece a instalar pacotes no [610]Capítulo 8, os arquivos temporários serão sobrescritos. Assim, possivelmente 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 que você tem de deixar o ambiente chroot primeiro antes de continuar. A razão para isso é a de conseguir acesso a locais do sistema de arquivos do lado de fora do ambiente chroot para armazenar/ler o arquivamento da cópia de segurança, o qual convém não ser colocado dentro da hierarquia do $LFS. 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 pelo(a) root no seu sistema anfitrião. Tome cuidado extra acerca dos comandos que você vai executar, uma vez que erros cometidos aqui podem modificar seu sistema anfitrião. Esteja ciente de que a variável de ambiente LFS está configurada para usuário(a) lfs por padrão, porém possivelmente não esteja configurada para root. Sempre que comandos forem ser executados por root, tenha certeza de que você configurou LFS. Isso foi discutido na [611]Seção 2.6, “Configurando a Variável $LFS e o Umask.” Antes de fazer uma cópia de segurança, desmonte os sistemas de arquivos virtuais: mountpoint -q $LFS/dev/shm && umount $LFS/dev/shm umount $LFS/dev/pts umount $LFS/{sys,proc,run,dev} Tenha certeza de que tem pelo menos um (01) GB de espaço livre no disco (os tarballs do fonte serão incluídos no arquivamento da cópia de segurança) no sistema de arquivos contendo o diretório onde você criar o arquivamento da cópia de segurança. Observe que as instruções abaixo especificam o diretório home do(a) usuário(a) root do sistema anfitrião, o qual tipicamente é encontrado no sistema de arquivos raiz. Substitua $HOME por um diretório da sua escolha se não quiser ter a cópia de segurança armazenada no diretório home do(a)root. Crie o arquivamento da cópia de segurança executando o seguinte comando: Nota Por causa de que o arquivamento da cópia de segurança é comprimido, dura um tempo relativamente longo (mais que dez (10) minutos) mesmo em um sistema razoavelmente rápido. cd $LFS tar -cJpf $HOME/lfs-temp-tools-12.4-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 explicado na caixa “Importante” abaixo. 7.13.3. Restauro No caso de alguns erros tiverem sido cometidos 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 da cópia de segurança também, de forma que não precisam ser transferidos novamente. Após verificar se $LFS está configurada adequadamente, você consegue restaurar 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 o(a) usuário(a) root e você não mudar para o diretório $LFS ou a variável de ambiente LFS não estiver configurada para o(a) usuário(a) root, [então] isso destruirá seu sistema anfitrião inteiro. VOCÊ ESTÁ AVISADO(A). cd $LFS rm -rf ./* tar -xpf $HOME/lfs-temp-tools-12.4-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 na [612]Seção 7.3, “Preparando Sistemas de Arquivos Virtuais do Núcleo” e entre novamente no ambiente chroot (veja-se a [613]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 é direta. Embora em muitos casos as instruções de instalação pudessem ser mais curtas e mais genéricas, nós optamos por fornecer as instruções completas para cada pacote para minimizar as possibilidades de erros. A chave para aprender o que faz um sistema Linux funcionar é a de saber para que cada pacote é usado e porque você (ou o sistema) possivelmente precise dele. Nós não recomendamos usar otimizações personalizadas. Elas podem fazer com que um aplicativo execute ligeiramente mais rápido, mas elas também possivelmente causem dificuldades de compilação e problemas quando executar o aplicativo. Se um pacote se recusar a compilar com uma otimização personalizada, [então] tente compilá-lo sem otimização e veja se isso corrige o problema. Mesmo se o pacote compilar quando usar uma otimização personalizada, existe o risco de que ele possivelmente tenha sido compilado incorretamente devido às complexas interações entre o código e as ferramentas de construção. Observe também que as opções -march e -mtune usando valores não especificados no livro não foram testadas. Isso possivelmente cause problemas com os pacotes do conjunto de ferramentas (Binutils, GCC e Glibc). Os pequenos ganhos potenciais alcançados personalizando-se otimizações de compilador frequentemente são superados pelos riscos. Construtoras(es) de primeira vez do LFS são encorajadas(os) a construir sem otimizações personalizadas. Por outro lado, nós mantemos as otimizações habilitadas pela configuração padrão dos pacotes. Adicionalmente, as vezes, nós explicitamente habilitamos uma configuração otimizada fornecida por um pacote, porém não habilitada por padrão. Os(As) mantenedores(as) do pacote já testaram essas configurações e as consideraram seguras, de modo que não é provável que elas quebrariam a construção. Geralmente, a configuração padrão já habilita O2 ou O3, de forma que o sistema resultante ainda executará muito rápido sem qualquer otimização personalizada e será estável ao mesmo tempo. Antes das instruções de instalação, cada página de instalação fornece informação a respeito do pacote, incluindo uma descrição concisa do que ele contém, aproximadamente quando tempo levará para construir, e quanto espaço de disco é exigido durante esse processo de construção. Seguindo as instruções de instalação, existe uma lista de aplicativos e de bibliotecas (juntamente com breves descrições) que o pacote instala. Nota Os valores da UPC e espaço em disco exigido incluem dados da suíte de teste para todos os pacotes aplicáveis no [614]Capítulo 8. Os valores da UPC foram calculados usando quatro núcleos da CPU (-j4) para todas as operações, a menos que especificado do contrário. 8.1.1. Acerca de bibliotecas Em geral, as(os) editoras(es) do LFS desencorajam construir e instalar bibliotecas estáticas. A maior parte das bibliotecas estáticas tem sido tornada obsoleta em um sistema moderno Linux. Além disso, vincular uma biblioteca estática a um aplicativo pode ser prejudicial. Se uma atualização para a biblioteca for necessária para remover um problema de segurança, [então] cada aplicativo que usar a biblioteca estática precisará ser vinculado novamente à nova biblioteca. Como o uso de bibliotecas estáticas nem sempre é óbvio, os aplicativos relevantes (e os procedimentos necessários para fazer a vinculação) possivelmente nem mesmo sejam conhecidos. Os procedimentos neste capítulo removem ou desabilitam a instalação da maioria das bibliotecas estáticas. Usualmente isso é feito passando-se uma opção --disable-static para o configure. Em outros casos, meios alternativos são necessários. Em uns poucos casos, especialmente Glibc e GCC, o uso de bibliotecas estáticas permanece um recurso essencial do processo de construção do pacote. Para uma discussão mais completa acerca de bibliotecas, veja-se [615]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 rastreia a instalação de arquivos, tornando mais fácil remover e atualizar pacotes. Um bom gerenciador de pacote também lidará com os arquivos de configuração, especialmente para manter a configuração do(a) usuário(a) quando o pacote for reinstalado ou atualizado. 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ê possivelmente esteja entre essas técnicas ou possivelmente seja uma combinação de duas ou mais dessas técnicas. Esta seção menciona brevemente problemas que possivelmente surjam quando da atualização de pacotes. Algumas razões porque nenhum gerenciador de pacote é mencionado no LFS ou no 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. Encontrar uma solução que satisfaça todas as audiências é difícil. Existem algumas dicas escritas no tópico do gerenciamento de pacote. Visite o [616]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 as 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 núcleo 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 à interface bem definida entre o núcleo e o espaço de usuária(o). Especificamente, os cabeçalhos da API do Linux não precisam ser atualizados juntamente com o núcleo. Você meramente precisará reiniciar o teu sistema para usar o núcleo atualizado. * Se a Glibc precisar ser atualizada para uma versão mais recente (por exemplo, da Glibc-2.36 para a Glibc-2.42), [então] algumas etapas extras serão necessárias para evitar quebrar o sistema. Leia-se [617]Seção 8.5, “Glibc-2.42” para detalhes. * Se um pacote contendo uma biblioteca compartilhada for atualizado e se o nome da biblioteca[618]^[1] mudar, então quaisquer pacotes dinamicamente vinculados à biblioteca precisam ser recompilados, para vincular contra a biblioteca mais nova. Por exemplo, considere um pacote foo-1.2.3 que instala uma biblioteca compartilhada com o nome libfoo.so.1. Suponha que você atualize o pacote para uma versão mais nova foo-1.2.4 que instala uma biblioteca compartilhada com o nome libfoo.so.2. Nesse caso, quaisquer pacotes que estiverem dinamicamente vinculados à libfoo.so.1 precisam ser recompilados para vincular contra libfoo.so.2 para a finalidade de usar a nova versão da biblioteca. Você não deveria remover as bibliotecas antigas até que todos os pacotes dependentes tenham sido recompilados. * Se um pacote estiver (direta ou indiretamente) vinculado aos nomes antigo e novo de uma biblioteca compartilhada (por exemplo, o pacote aponta para libfoo.so.2 e libbar.so.1, enquanto o último se vincula a libfoo.so.3), [então] o pacote possivelmente funcione mal, pois as diferentes revisões da biblioteca compartilhada apresentam definições incompatíveis para alguns nomes de símbolo. Isso pode ser causado pela recompilação de alguns, mas não todos, dos pacotes vinculados à antiga biblioteca compartilhada depois que o pacote que fornece a biblioteca compartilhada for atualizado. Para evitar o problema, os(as) usuários(as) precisarão reconstruir cada pacote vinculado a uma biblioteca compartilhada com uma revisão atualizada (por exemplo, libfoo.so.2 para libfoo.so.3) o mais rápido possível. * 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 da biblioteca decrescer (por exemplo, a biblioteca ainda é chamada de libfoo.so.1, porém o nome do arquivo da biblioteca for mudado de libfoo.so.1.25 para libfoo.so.1.24), [então] você deveria remover o arquivo da biblioteca originário da versão previamente instalada (libfoo.so.1.25 nesse caso). Do contrário, um comando ldconfig (invocado por você mesmo(a) a partir da linha de comando ou pela instalação de algum pacote) reconfigurará o link simbólico libfoo.so.1 para apontar para o antigo arquivo da biblioteca, pois ele aparenta ser uma versão “mais nova”; o número de versão dele é mais largo. Essa situação possivelmente surge se você tiver que desatualizar um pacote ou se os(as) autores(as) mudarem o esquema de versionamento para 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 depois que a atualização estiver completa, listará quais processos estão usando as versões antigas daquelas bibliotecas (substitua libfoo pelo nome da biblioteca): grep -l 'libfoo.*deleted' /proc/*/maps | tr -cd 0-9\\n | xargs -r ps u Se o 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 executar o comando precedente novamente para confirmar se nada ainda está usando as bibliotecas deletadas. Se o daemon systemd (executando como o PID 1) for vinculado à biblioteca atualizada, [então] você pode reiniciá-lo sem reinicializar executando systemctl daemon-reexec como o(a) usuário(a) root. * Se um aplicativo executável ou uma biblioteca compartilhada for sobrescrito, [então] os processos usando o código ou os dados naquele aplicativo ou biblioteca possivelmente quebrem. A maneira correta para atualizar um aplicativo ou uma biblioteca compartilhada sem causar quebra ao processo é a de removê-lo primeiro, então instalar a versão nova. O comando install fornecido por coreutils já implementou isso e a maioria dos pacotes usa esse comando para instalar arquivos 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 "SpiderMonkey" no BLFS) apenas sobrescreve o arquivo se ele existir; isso causa uma quebra. Assim, é 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 de cada esquema em particular. 8.2.2.1. Está Tudo na Minha Cabeça! Sim, essa é uma técnica de gerenciamento de pacote. Algumas pessoas não necessitam de um gerenciador de pacote, pois elas conhecem os pacotes intimamente e sabem quais arquivos estão instalados por cada pacote. Alguns(mas) usuários(as) também não precisam de qualquer gerenciamento de pacote, pois eles(as) planejam reconstruir o sistema inteiro sempre que um pacote for mudado. 8.2.2.2. Instalação em Diretórios Separados Essa é uma técnica simplista de gerenciamento de pacotes que não precisa de um aplicativo especial para gerenciar os pacotes. Cada pacote é instalado em um diretório separado. Por exemplo, o pacote "foo-1.1" é instalado em "/opt/foo-1.1" e um link simbólico é feito de "/opt/foo" para "/opt/foo-1.1". Quando uma nova versão "foo-1.2" surge, ela é instalada em "/opt/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, como "PATH", "MANPATH", "INFOPATH", "PKG_CONFIG_PATH", "CPPFLAGS", "LDFLAGS", e o arquivo de configuração "/etc/ld.so.conf", possivelmente precisem ser expandidas para incluir os subdiretórios correspondentes em "/opt/foo -x.y". Esse esquema é usado pelo livro BLFS para instalar alguns pacotes muito grandes para facilitar a atualização deles. Se você instalar mais que alguns pacotes, [então] esse esquema se tornará ingerenciável. E alguns pacotes (por exemplo, os cabeçalhos de "API" do "Linux" e "Glibc") possivelmente não funcionem bem com esse esquema. Nunca use esse esquema em todo o sistema. 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 como no esquema anterior. Mas, em vez de fazer o link simbólico via um nome genérico de pacote, 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 pelo(a) usuário(a), muitos gerenciadores de pacote usam essa abordagem e automatizam a criação dos links simbólicos. Alguns dos populares inclui Stow, Epkg, Graft, e Depot. O script de instalação precisa ser falseado, 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, suponha que você está instalando um pacote libfoo-1.1. As seguintes instruções possivelmente não instalem adequadamente o pacote: ./configure --prefix=/usr/pkg/libfoo/1.1 make make install A instalação funcionará, mas os pacotes dependentes possivelmente não se vinculem à libfoo conforme você esperaria. Se você compilar um pacote que se vincula contra a libfoo, [então] você possivelmente perceba 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 é a de usar a variável DESTDIR para direcionar a instalação. 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ê possivelmente ou precise instalar manualmente o pacote, ou você possivelmente ache que é mais fácil instalar alguns pacotes problemáticos em /opt. 8.2.2.4. Baseado em Carimbo de Tempo Nessa técnica, um arquivo é carimbado temporalmente antes da instalação do pacote. Depois da instalação, um simples uso do comando find com as opções apropriadas consegue gerar um registro de todos os arquivos instalados após o arquivo de carimbo de tempo ser criado. Um gerenciador de pacote que use 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 algum outro carimbo de tempo que não 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 forem instalados simultaneamente a partir de 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 o cp, o installe o mv, e rastreando as chamadas de sistema que modificam o sistema de arquivos. Para essa abordagem funcionar, todos os executáveis precisam ser dinamicamente vinculados sem o bit suid ou sgid. Pré-carregar a biblioteca possivelmente cause alguns efeitos colaterais indesejados durante a instalação. Portanto, é uma boa ideia realizar alguns testes para garantir que o gerenciador de pacote não quebre nada e que ele registre todos os arquivos adequados. Outra técnica é a de usar o 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 previamente na seção do gerenciamento de pacote estilo Link Simbólico. Depois da instalação, um arquivamento de pacote é criado usando os arquivos instalados. Esse arquivamento é então usado para instalar o pacote na máquina local ou até mesmo em outras máquinas. Essa abordagem é a 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 [619]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 [620]https://www.linuxfromscratch.org/hints/downloads/files/fakeroot.tx t. A criação de arquivos de pacote que incluem informação de dependência é complexa e além do escopo do LFS. O 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 do Slackware, veja-se [621]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 [622]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-se a dica em [623]https://www.linuxfromscratch.org/hints/downloads/files/more_contro l_and_pkg_man.txt. 8.2.3. Implantando o 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 do LFS para outro computador com a mesma arquitetura que a do sistema base é tão simples quanto usar tar na partição do LFS que contém o diretório raiz (cerca de 900MB descomprimido para uma construção básica do LFS), copiando aquele arquivo via transferência de rede ou CD-ROM/stick USB para o novo sistema e expandindo-o. Depois disso, uns poucos arquivos de configuração terão que ser mudados. Arquivos de configuração que possivelmente precisem ser atualizados incluem: /etc/hosts, /etc/fstab, /etc/passwd, /etc/group, /etc/shadow e /etc/ld.so.conf. Um núcleo personalizado possivelmente seja necessário para o novo sistema, dependendo das diferenças no hardware do sistema e a configuração original do núcleo. Importante Se você quiser implementar o sistema LFS em um sistema com uma CPU diferente, ao construir [624]Seção 8.21, “GMP-6.3.0” e [625]Seção 8.50, “Libffi-3.5.2” você precisa seguir as observações acerca da substituição da otimização específica da arquitetura para produzir bibliotecas adequadas tanto para o sistema anfitrião quanto para o(s) sistema(s) onde você implementará o sistema LFS. Caso contrário, você obterá erros Illegal Instruction ao executar o LFS. Finalmente, o novo sistema tem de ser tornado inicializável via [626]Seção 10.4, “Usando o GRUB para Configurar o Processo de Inicialização”. 8.3. Man-pages-6.15 O pacote Man-pages contém mais que 2.400 páginas de manual. Tempo aproximado de construção: 0,1 UPC Espaço em disco exigido: 52 MB 8.3.1. Instalação das Páginas de Manual Remova duas páginas de manual para funções de resumo de senha. Libxcrypt fornecerá uma versão melhor dessas páginas de manual: rm -v man3/crypt* Instale as Páginas de Manual executando: make -R GIT=false prefix=/usr install O significado das opções: -R Isso impede que make configure quaisquer variáveis internas. O sistema de construção de páginas de manual não funciona bem com variáveis internas, mas atualmente não existe como desabilitá-las, exceto passando-se -R explicitamente pela linha de comando. GIT=false Isso evita que o sistema de construção emita muitas linhas de aviso git: command not found. 8.3.2. Conteúdo das Páginas de Manual Arquivos instalados: várias páginas de manual Descrições Curtas 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-20250807 O pacote Iana-Etc fornece dados para serviços e protocolos de rede de comunicação. Tempo aproximado de construção: menos que 0,1 UPC Espaço em disco exigido: 4,8 MB 8.4.1. Instalação do Iana-Etc Para esse pacote, nós precisamos somente copiar os arquivos para o lugar: cp services protocols /etc 8.4.2. Conteúdo do Iana-Etc Arquivos instalados: /etc/protocols e /etc/services Descrições Curtas /etc/protocols Descreve os vários protocolos DARPA da Internet que estão disponíveis a partir do subsistema TCP/IP /etc/services Fornece um mapeamento entre nomes amigáveis textuais para serviços de internet e os não expostos números de porta atribuídos e tipos de protocolos deles 8.5. Glibc-2.42 O pacote Glibc contém a principal biblioteca C. 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: 12 UPC Espaço em disco exigido: 3,3 GB 8.5.1. Instalação da Glibc Alguns dos aplicativos Glibc usam o diretório não conforme com o FHS /var/db para armazenar os dados em tempo de execução deles. Aplique o seguinte remendo para fazer com que tais aplicativos armazenem os dados em tempo de execução deles nos locais conformes com o FHS: patch -Np1 -i ../glibc-2.42-fhs-1.patch Agora corrija um problema que possivelmente quebre o Valgrind no BLFS: sed -e '/unistd.h/i #include ' \ -e '/libc_rwlock_init/c\ __libc_rwlock_define_initialized (, reset_lock);\ memcpy (&lock, &reset_lock, sizeof (lock));' \ -i stdlib/abort.c A documentação da Glibc recomenda construir a 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 a Glibc para compilação: ../configure --prefix=/usr \ --disable-werror \ --disable-nscd \ libc_cv_slibdir=/usr/lib \ --enable-stack-protector=strong \ --enable-kernel=5.4 O significado das opções do configure: --disable-werror Essa opção desabilita a opção -Werror passada para o GCC. Isso é necessário para executar a suíte de teste. --enable-kernel=5.4 Essa opção diz ao sistema de construção que esta Glibc possivelmente seja usada com núcleos tão antigos quanto 5.4. 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 do sistema adicionando código extra para verificar estouros de buffer, como ataques de esmagamento de pilha. Observe que a Glibc sempre substitui explicitamente o padrão do GCC, de forma que essa opção ainda é necessária mesmo que já tenhamos especificado --enable-default-ssp para GCC. --disable-nscd Não construa o processo de segundo plano de armazenamento temporário do serviço de nomes, o qual não mais é usado. libc_cv_slibdir=/usr/lib Essa variável configura a biblioteca correta para todos os sistemas. Nós não queremos que a lib64 seja usada. Compile o pacote: make Importante Nesta seção, a suíte de teste para a Glibc é considerada crítica. Não pule-a sob qualquer circunstância. Geralmente uns poucos testes não passam. As falhas de teste listadas abaixo usualmente são seguras ignorar. make check Você possivelmente veja algumas falhas de teste. A suíte de teste da Glibc é de alguma forma dependente do sistema anfitrião. Umas poucas falhas saídas de mais que 6.000 testes geralmente podem ignoradas. Esta é uma lista dos problemas mais comuns vistos para versões recentes do LFS: * io/tst-lchmod é conhecido por falhar no ambiente chroot do LFS. * misc/tst-preadvwritev2 e misc/tst-preadvwritev64v2 são conhecidos por falharem se o núcleo do anfitrião for Linux-6.14 ou posterior. * Alguns testes, por exemplo nss/tst-nss-files-hosts-multi e nptl/tst-thread-affinity* são conhecidos por falharem devido a um tempo limite (especialmente quando o sistema está relativamente lento e (ou) executando a suíte de teste com várias tarefas make paralelas). Esses testes podem ser identificados com: grep "Timed out" $(find -name \*.out) É possível reexecutar um teste com tempo limite aumentado com TIMEOUTFACTOR= make test t=. Por exemplo, TIMEOUTFACTOR=10 make test t=nss/tst-nss-files-hosts-multi reexecutará nss/tst-nss-files-hosts-multi com dez vezes o tempo limite original. * Além disso, alguns testes possivelmente falhem com um modelo de CPU relativamente antigo (por exemplo elf/tst-cpu-features-cpuinfo) ou versão do núcleo do anfitrião (por exemplo stdlib/tst-arc4random-thread). Mesmo sendo uma mensagem inofensiva, o estágio de instalação da Glibc reclamará acerca da ausência do /etc/ld.so.conf. Evite esse aviso com: touch /etc/ld.so.conf Corrija o Makefile para pular uma verificação de sanidade desatualizada que falha com uma configuração moderna da Glibc: sed '/test-installation/s@$(PERL)@echo not running@' -i ../Makefile Importante Se atualizar a Glibc para uma nova versão secundária (por exemplo, da Glibc-2.36 para a Glibc-2.42) em um sistema LFS em execução, [então] você precisará tomar algumas precauções extras para evitar quebrar o sistema: * Atualizar a Glibc em um sistema LFS anterior ao 11.0 (exclusivo) não é suportado. Reconstrua o LFS se você estiver executando um sistema LFS antigo, mas precisar de uma Glibc mais recente. * Se atualizar em um sistema LFS anterior a 12.0 (exclusivo), [então] instale a Libxcrypt seguindo a [627]Seção 8.27, “Libxcrypt-4.4.38.” Além de uma instalação normal da Libxcrypt, você DEVE seguir a observação na seção Libxcrypt para instalar a libcrypt.so.1* (substituindo libcrypt.so.1 originária da instalação anterior da Glibc). * Se atualizar em um sistema LFS anterior ao 12.1 (exclusivo), [então] remova o aplicativo nscd: rm -f /usr/sbin/nscd Se esse sistema (anterior ao LFS 12.1, exclusivo) for baseado em Systemd, [então] também é necessário desabilitar e parar o serviço nscd agora: systemctl disable --now nscd * Atualize o núcleo e reinicialize se ele for mais antigo que 5.4 (verifique a versão atual com uname -r) ou se quiser atualizá-lo mesmo assim, seguindo a [628]Seção 10.3, “Linux-6.16.1.” * Atualize os cabeçalhos da API do núcleo se forem mais antigos que 5.4 (verifique a versão atual com cat /usr/include/linux/version.h) ou se quiser atualizá-los mesmo assim, seguindo a [629]Seção 5.4, “Cabeçalhos da API do Linux-6.16.1” (mas removendo $LFS do comando cp). * Realize uma instalação DESTDIR e atualize as bibliotecas compartilhadas da Glibc no sistema usando um comando simples install: make DESTDIR=$PWD/dest install install -vm755 dest/usr/lib/*.so.* /usr/lib É obrigatório seguir rigorosamente essas etapas acima, a menos que você entenda completamente o que está fazendo. Qualquer desvio inesperado possivelmente torne o sistema completamente desusável. VOCÊ ESTÁ AVISADO(A). Em seguida, continue a executar o comando make install, o comando sed contra o /usr/bin/ldd e os comandos para instalar as localidades. Assim que estiverem finalizados, reinicialize o sistema imediatamente. Quando o sistema tiver reinicializado com sucesso, se você estiver executando um sistema LFS anterior à 12.0 (exclusivo) onde o GCC não foi construído com a opção --disable-fixincludes, mova dois cabeçalhos do GCC para um local melhor e remova as cópias “corrigidas” obsoletas dos cabeçalhos da Glibc: DIR=$(dirname $(gcc -print-libgcc-file-name)) [ -e $DIR/include/limits.h ] || mv $DIR/include{-fixed,}/limits.h [ -e $DIR/include/syslimits.h ] || mv $DIR/include{-fixed,}/syslimits.h rm -rfv $DIR/include-fixed/* unset DIR Instale o pacote: make install Corrija um caminho codificado rigidamente para o carregador de executável no script ldd: sed '/RTLDLIST=/s@/usr@@g' -i /usr/bin/ldd Em seguida, instale as localidades que podem fazer o sistema responder em um idioma diferente. Nenhuma dessas localidades é exigida, mas se algumas delas estiverem ausentes, as suítes de teste de alguns pacotes pularão importantes casos de teste. Localidades individuais podem ser instaladas usando-se o programa localedef. Por exemplo, o segundo comando localedef abaixo combina a definição de localidade independente do conjunto de caracteres /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 localidades necessário para a cobertura ótima de testes: localedef -i C -f UTF-8 C.UTF-8 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 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 Adicionalmente, instale a localidade para teu próprio país, idioma e conjunto de caracteres. Alternativamente, instale todas as localidades listadas no arquivo glibc-2.42/localedata/SUPPORTED (inclui cada localidade listada acima e muitas mais) de uma vez com o seguinte comando consumidor de tempo: make localedata/install-locales Nota A Glibc agora usa a libidn2 quando resolver nomes internacionalizados de domínio. Essa é uma dependência de tempo de execução. Se essa capacidade for necessária, as instruções para instalar a libidn2 estão na [630]página da libidn2 do BLFS. 8.5.2. Configurando a Glibc 8.5.2.1. Adicionando o nsswitch.conf O arquivo /etc/nsswitch.conf precisa ser criado, pois os padrões da Glibc não funcionam bem em um ambiente de rede de comunicação. Crie um novo arquivo /etc/nsswitch.conf executando o seguinte: cat > /etc/nsswitch.conf << "EOF" # Inicia /etc/nsswitch.conf passwd: files systemd group: files systemd shadow: files systemd hosts: mymachines resolve [!UNAVAIL=return] files myhostname dns networks: files protocols: files services: files ethers: files rpc: files # Termina /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 ../../tzdata2025b.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 tz 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 é a de executar o seguinte conjunto de comandos sequenciais: tzselect Depois de responder à umas poucas perguntas a respeito do local, o conjunto de comandos sequenciais 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 conjunto de comandos sequenciais, mas podem ser usados. Então crie o arquivo /etc/localtime executando: ln -sfv /usr/share/zoneinfo/ /etc/localtime Substitua pelo 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 /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 do /usr/lib, 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" # Inicia /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" # Adiciona um diretório de inclusão include /etc/ld.so.conf.d/*.conf EOF mkdir -pv /etc/ld.so.conf.d 8.5.3. Conteúdo do 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, 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, 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 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 do 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 o ldd com arquivos objeto. Isso não existe em arquiteturas mais novas como x86_64 locale Imprime várias informações a respeito da localidade atual localedef Compila especificações de localidade makedb Cria um banco de dados simples a partir de uma entrada gerada textual mtrace Lê e interpreta um arquivo de rastreamento de memória e exibe um resumo em formato legível por humanos 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(a) a respeito do local do sistema e relata 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 auxiliar para executáveis de bibliotecas compartilhadas libBrokenLocale Usado internamente pela Glibc como um hack grosseiro para executar aplicativos quebrados (por exemplo, alguns aplicativos Motif). Vejam-se comentários em glibc-2.42/locale/broken_cur_max.c para mais informação libanl Biblioteca fictícia que não contém funções. Anteriormente era a biblioteca assíncrona de pesquisa de nome, cujas funções agora estão em libc libc A biblioteca principal C libc_malloc_debug Liga verificação de alocação de memória quando pré-carregada 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 vinculada para libmemusage Usado por memusage para ajudar a coletar informação a respeito do uso de memória de um aplicativo libnsl A biblioteca de serviços de rede de comunicação, agora obsoleta libnss_* Os módulos de Name Service Switch, contendo funções para resolução de nomes de dispositivos, nomes de usuárias(os), nomes de grupos, pseudônimos, serviços, protocolos, etc. Carregados pela 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 maioria das interfaces especificadas pelas Extensões de Camadas POSIX.1c e as interfaces de semáforos especificadas pelas Extensões de Tempo Real POSIX.1b; 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 da Internet librt Contém funções fornecendo a maior parte das interfaces especificadas pelas Extensões de Tempo Real POSIX.1b 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 “padrão” usadas em muitos utilitários Unix. Essas funções agora estão na libc 8.6. Zlib-1.3.1 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: 6,4 MB 8.6.1. Instalação do Zlib Prepare o Zlib para compilação: ./configure --prefix=/usr Compile o pacote: make Para testar os resultados, emita: 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 do 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,3 MB 8.7.1. Instalação do Bzip2 Aplique um remendo 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 no local correto: sed -i "s@(PREFIX)/man@(PREFIX)/share/man@g" Makefile Prepare o Bzip2 para compilação com: make -f Makefile-libbz2_so make clean O significado do parâmetro do 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 do Bzip2 contra 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 do bzip2 por 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 do 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ório instalado: /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 o 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.8.1 O pacote Xz contém aplicativos para comprimir e descomprimir arquivos. Ele fornece recursos 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 com os tradicionais comandos gzip ou bzip2. Tempo aproximado de construção: 0,1 UPC Espaço em disco exigido: 24 MB 8.8.1. Instalação do Xz Prepare Xz para compilação com: ./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/xz-5.8.1 Compile o pacote: make Para testar os resultados, emita: make check Instale o pacote: make install 8.8.2. Conteúdo do 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.8.1 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. Lz4-1.10.0 Lz4 é um algoritmo de compressão sem perdas, fornecendo velocidade de compressão superior a 500 MB/s por elemento de processamento. Ele tem um decodificador extremamente rápido, com velocidade de vários GB/s por elemento de processamento. Lz4 pode trabalhar com Zstandard para permitir que ambos os algoritmos comprimam dados mais rapidamente. Tempo aproximado de construção: 0,1 UPC Espaço em disco exigido: 4,2 MB 8.9.1. Instalação do Lz4 Compile o pacote: make BUILD_STATIC=no PREFIX=/usr Para testar os resultados, emita: make -j1 check Instale o pacote: make BUILD_STATIC=no PREFIX=/usr install 8.9.2. Conteúdo do Lz4 Aplicativos instalados: lz4, lz4c (link para lz4), lz4cat (link para lz4) e unlz4 (link para lz4) Biblioteca instalada: liblz4.so Descrições Curtas lz4 Comprime ou descomprime arquivos usando o formato LZ4 lz4c Comprime arquivos usando o formato LZ4 lz4cat Lista o conteúdo de um arquivo comprimido usando o formato LZ4 unlz4 Descomprime arquivos usando o formato LZ4 liblz4 A biblioteca que implementa compressão de dados sem perdas, usando o algoritmo LZ4 8.10. Zstd-1.5.7 Zstandard é um algoritmo de compressão em tempo real, 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: 0,4 UPC Espaço em disco exigido: 86 MB 8.10.1. Instalação do Zstd Compile o pacote: make prefix=/usr Nota Na saída gerada do teste existem vários lugares que indicam 'failed'. Essas são esperadas e apenas 'FAIL' é uma atual falha de teste. Não deveriam existir falhas de teste. Para testar os resultados, emita: make check Instale o pacote: make prefix=/usr install Remova a biblioteca estática: rm -v /usr/lib/libzstd.a 8.10.2. Conteúdo do Zstd Aplicativos instalados: zstd, zstdcat (link para zstd), zstdgrep, zstdless, zstdmt (link para zstd) e unzstd (link para zstd) Biblioteca instalada: 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.11. File-5.46 O pacote File contém um utilitário para determinar o tipo de um dado arquivo ou arquivos. Tempo aproximado de construção: menos que 0,1 UPC Espaço em disco exigido: 19 MB 8.11.1. Instalação do File Prepare o File para compilação: ./configure --prefix=/usr Compile o pacote: make Para testar os resultados, emita: make check Instale o pacote: make install 8.11.2. Conteúdo do File Aplicativos instalados: file Biblioteca instalada: 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, usadas pelo aplicativo file 8.12. Readline-8.3 O pacote Readline é um conjunto de bibliotecas que oferecem recursos de edição de linha de comando e de histórico. Tempo aproximado de construção: menos que 0,1 UPC Espaço em disco exigido: 17 MB 8.12.1. Instalação do Readline Reinstalar Readline causará as bibliotecas antigas serem movidas para .old. Ao tempo em que isso normalmente não seja um problema, em alguns casos isso pode deflagrar um defeito de vinculação no ldconfig. Isso pode ser evitado emitindo-se os seguintes dois seds: sed -i '/MV.*old/d' Makefile.in sed -i '/{OLDSUFF}/c:' support/shlib-install Evite caminhos de pesquisa de biblioteca de codificação rígida (rpath) dentro das bibliotecas compartilhadas. Esse pacote não precisa do rpath para uma instalação no local padrão, e o rpath às vezes pode causar efeitos indesejados ou até mesmo problemas de segurança: sed -i 's/-Wl,-rpath,[^ ]*//' support/shobj-conf Prepare Readline para compilação: ./configure --prefix=/usr \ --disable-static \ --with-curses \ --docdir=/usr/share/doc/readline-8.3 O significado da nova opção do configure: --with-curses Essa opção diz ao Readline que ela pode encontrar as funções da biblioteca termcap na biblioteca curses, não uma biblioteca termcap separada. Isso gerará o arquivo readline.pc correto. Compile o pacote: make SHLIB_LIBS="-lncursesw" O significado da opção do make: SHLIB_LIBS="-lncursesw" Essa opção força o Readline a vincular-se à biblioteca libncursesw. Para detalhes, veja-se a seção “Bibliotecas Compartilhadas” no arquivo README do pacote. Esse pacote não vem com uma suíte de teste. Instale o pacote: make install Se desejado, instale a documentação: install -v -m644 doc/*.{ps,pdf,html,dvi} /usr/share/doc/readline-8.3 8.12.2. Conteúdo do Readline Bibliotecas instaladas: libhistory.so e libreadline.so Diretórios instalados: /usr/include/readline e /usr/share/doc/readline-8.3 Descrições Curtas libhistory Fornece uma consistente interface de usuária(o) para re-chamar linhas do histórico libreadline Fornece um conjunto de comandos para manipular texto digitado em uma sessão interativa de um aplicativo 8.13. M4-1.4.20 O pacote M4 contém um processador de macro. Tempo aproximado de construção: 0,4 UPC Espaço em disco exigido: 60 MB 8.13.1. Instalação do M4 Prepare o M4 para compilação: ./configure --prefix=/usr Compile o pacote: make Para testar os resultados, emita: make check Instale o pacote: make install 8.13.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 pelo(a) usuário(a) 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.14. Bc-7.0.3 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,8 MB 8.14.1. Instalação do Bc Prepare Bc para compilação: CC='gcc -std=c99' ./configure --prefix=/usr -G -O3 -r O significado das opções do configure: CC='gcc -std=c99' Esse parâmetro especifica o compilador padrão C a se usar. -G Omite partes da suíte de teste que não funcionariam até que o aplicativo bc tenha sido instalado. -O3 Especifica a optimização a usar. -r Habilita o uso de Readline para melhorar o recurso de edição de linha do bc. Compile o pacote: make Para testar bc, execute: make test Instale o pacote: make install 8.14.2. Conteúdo do Bc Aplicativos instalados: bc e dc Descrições Curtas bc Uma calculadora de linha de comando dc Uma calculadora de linha de comando de polonesa - reversa 8.15. 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,1 UPC Espaço em disco exigido: 33 MB 8.15.1. Instalação do 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, emita: make check Instale o pacote: make install Uns poucos aplicativos não sabem acerca do flex ainda e tentam executar o predecessor dele, lex. Para suportar esses aplicativos, crie um link simbólico chamado lex que executa o flex no modo de emulação lex, e também crie a página de manual do lex como um link simbólico: ln -sv flex /usr/bin/lex ln -sv flex.1 /usr/share/man/man1/lex.1 8.15.2. Conteúdo do Flex Aplicativos instalados: flex, flex++ (link para flex) e lex (link para flex) Bibliotecas instaladas: libfl.so Diretório instalado: /usr/share/doc/flex-2.6.4 Descrições Curtas flex Uma ferramenta para gerar aplicativos que reconhecem padrões em texto; ela permite, para a versatilidade, especificar as regras para encontrar padrões, erradicando a necessidade de desenvolver um aplicativo especializado flex++ Uma extensão do flex, é usada para gerar código e classes C++. É um link simbólico para flex lex Um link simbólico que executa o flex no modo de emulação lex libfl A biblioteca flex 8.16. Tcl-8.6.16 O pacote Tcl contém a Tool Command Language, uma linguagem de script robusta de propósito geral. O pacote Expect é escrito em Tcl (pronunciada "tickle"). Tempo aproximado de construção: 3,0 UPC Espaço em disco exigido: 91 MB 8.16.1. Instalação do 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, GCC e outros pacotes. Instalar três pacotes para propósitos de teste possivelmente pareça excessivo, mas é muito assegurador, se não essencial, saber que as ferramentas mais importantes estão funcionando adequadamente. Prepare Tcl para compilação: SRCDIR=$(pwd) cd unix ./configure --prefix=/usr \ --mandir=/usr/share/man \ --disable-rpath O significado dos novos parâmetros de configuração: --disable-rpath Esse parâmetro evita caminhos de pesquisa de biblioteca de codificação rígida (rpath) dentro dos arquivos binários executáveis e das bibliotecas compartilhadas. Esse pacote não precisa do rpath para uma instalação no local padrão, e o rpath às vezes pode causar efeitos indesejados ou até mesmo problemas de segurança. 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.10|/usr/lib/tdbc1.1.10|" \ -e "s|$SRCDIR/pkgs/tdbc1.1.10/generic|/usr/include|" \ -e "s|$SRCDIR/pkgs/tdbc1.1.10/library|/usr/lib/tcl8.6|" \ -e "s|$SRCDIR/pkgs/tdbc1.1.10|/usr/include|" \ -i pkgs/tdbc1.1.10/tdbcConfig.sh sed -e "s|$SRCDIR/unix/pkgs/itcl4.3.2|/usr/lib/itcl4.3.2|" \ -e "s|$SRCDIR/pkgs/itcl4.3.2/generic|/usr/include|" \ -e "s|$SRCDIR/pkgs/itcl4.3.2|/usr/include|" \ -i pkgs/itcl4.3.2/itclConfig.sh unset SRCDIR As várias instruções “sed” depois do comando “make” removem referências ao diretório de construção dos arquivos de configuração e as substituem pelo diretório de instalação. Isso não é obrigatório para o restante do LFS, porém possivelmente seja necessário se um pacote construído posteriormente usar a Tcl. Para testar os resultados, emita: make test Instale o pacote: make install chmod 644 /usr/lib/libtclstub8.6.a 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 da Tcl. O próximo pacote, Expect, exige elas. make install-private-headers Agora faça um link simbólico necessário: ln -sfv tclsh8.6 /usr/bin/tclsh Renomeie uma página de manual que conflita com uma página de manual do Perl: mv /usr/share/man/man3/{Thread,Tcl_Thread}.3 Opcionalmente, instale a documentação emitindo os seguintes comandos: cd .. tar -xf ../tcl8.6.16-html.tar.gz --strip-components=1 mkdir -v -p /usr/share/doc/tcl-8.6.16 cp -v -r ./html/* /usr/share/doc/tcl-8.6.16 8.16.2. Conteúdo do Tcl Aplicativos instalados: tclsh (link para tclsh8.6) e tclsh8.6 Biblioteca instalada: libtcl8.6.so e libtclstub8.6.a Descrições Curtas tclsh8.6 O shell de comando da Tcl tclsh Um link para tclsh8.6 libtcl8.6.so A biblioteca Tcl libtclstub8.6.a A biblioteca Stub da Tcl 8.17. Expect-5.45.4 O pacote Expect contém ferramentas para automatizar, via diálogos com script, aplicativos interativos, tais como o telnet, ftp, passwd, fsck, rlogin e tip. Expect também é útil para testar esses mesmos aplicativos, bem como para facilitar todos os tipos de tarefas que são proibitivamente difíceis com qualquer outra coisa. A estrutura subjacente da DejaGnu é escrita em Expect. Tempo aproximado de construção: 0,2 UPC Espaço em disco exigido: 3,9 MB 8.17.1. Instalação do Expect Expect precisa de PTYs para funcionar. Verifique se os PTYs estão funcionando corretamente dentro do ambiente chroot realizando um teste simples: python3 -c 'from pty import spawn; spawn(["echo", "ok"])' Esse comando deveria gerar ok. Se, em vez disso, a saída gerada incluir OSError: out of pty devices, então o ambiente não está configurado para operação adequada de PTY. Você precisa sair do ambiente chroot, ler [631]Seção 7.3, “Preparando Sistemas de Arquivos Virtuais do Núcleo” novamente e garantir que o sistema de arquivos devpts (e outros sistemas de arquivos virtuais do núcleo) foi montado corretamente. Em seguida, entre novamente no ambiente chroot seguindo [632]Seção 7.4, “Entrando no Ambiente Chroot”. Esse problema precisa ser resolvido antes de continuar ou as suítes de teste que exigem o Expect (por exemplo, as suítes de teste do Bash, Binutils, GCC, GDBM e, com certeza, a próprio Expect) falharão catastroficamente e outras falhas sutis possivelmente também aconteçam. Agora, faça algumas mudanças para permitir o pacote com gcc-15.1 ou posterior: patch -Np1 -i ../expect-5.45.4-gcc15-1.patch Prepare Expect para compilação: ./configure --prefix=/usr \ --with-tcl=/usr/lib \ --enable-shared \ --disable-rpath \ --mandir=/usr/share/man \ --with-tclinclude=/usr/include O significado das opções do configure: --with-tcl=/usr/lib Esse parâmetro é necessário para dizer ao configure onde o script tclConfig.sh está localizado. --with-tclinclude=/usr/include Isso explicitamente diz a Expect onde encontrar os cabeçalhos internos da Tcl. Construa o pacote: make Para testar os resultados, emita: make test Instale o pacote: make install ln -svf expect5.45.4/libexpect5.45.4.so /usr/lib 8.17.2. Conteúdo do 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 da Tcl ou ser usado diretamente a partir de C ou C++ (sem a Tcl) 8.18. 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 a Tcl (Tool Command Language). Tempo aproximado de construção: menos que 0,1 UPC Espaço em disco exigido: 6,9 MB 8.18.1. Instalação do 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 Para testar os resultados, emita: make check 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 8.18.2. Conteúdo do DejaGNU Aplicativo instalado: 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.19. Pkgconf-2.5.1 O pacote pkgconf é um sucessor do pkg-config e contém uma ferramenta para passar o caminho "include" e(ou) caminhos de biblioteca para construir ferramentas durante as fases "configure" e "make" de instalações de pacotes. Tempo aproximado de construção: menos que 0,1 UPC Espaço em disco exigido: 5,0 MB 8.19.1. Instalação do Pkgconf Prepare Pkgconf para compilação: ./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/pkgconf-2.5.1 Compile o pacote: make Instale o pacote: make install Para manter a compatibilidade com o Pkg-config original, crie dois links simbólicos: ln -sv pkgconf /usr/bin/pkg-config ln -sv pkgconf.1 /usr/share/man/man1/pkg-config.1 8.19.2. Conteúdo do Pkgconf Aplicativos instalados: pkgconf, pkg-config (link para pkgconf) e bomtool Biblioteca instalada: libpkgconf.so Diretório instalado: /usr/share/doc/pkgconf-2.5.1 Descrições Curtas pkgconf Retorna metainformações para a biblioteca ou pacote especificada bomtool Gera uma Lista de Materiais do Software a partir de arquivos ".pc" do "pkg-config" libpkgconf Contém a maior parte da funcionalidade do "pkgconf", enquanto permite que outras ferramentas, como "IDEs" e compiladores, usem a estrutura essencial de suporte dele 8.20. Binutils-2.45 O pacote Binutils contém um vinculador, um montador e outras ferramentas para manusear arquivos objeto. Tempo aproximado de construção: 1,6 UPC Espaço em disco exigido: 832 MB 8.20.1. Instalação do Binutils A documentação do Binutils recomenda construir o Binutils em um diretório dedicado à construção: mkdir -v build cd build Prepare o Binutils para compilação: ../configure --prefix=/usr \ --sysconfdir=/etc \ --enable-ld=default \ --enable-plugins \ --enable-shared \ --disable-werror \ --enable-64-bit-bfd \ --enable-new-dtags \ --with-system-zlib \ --enable-default-hash-style=gnu O significado dos novos parâmetros de configuração: --enable-ld=default Constrói o vinculador bfd original e o instala como ambos ld (o vinculador padrão) e ld.bfd. --enable-plugins Habilita suporte de plugin para o vinculador. --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 do make: tooldir=/usr Normalmente, o tooldir (o diretório onde os executáveis ultimamente estarão 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 a pule sob quaisquer circunstâncias. Teste os resultados: make -k check Para uma lista de testes falhos, execute: grep '^FAIL:' $(find -name '*.log') Instale o pacote: make tooldir=/usr install Remova bibliotecas estáticas inúteis e outros arquivos: rm -rfv /usr/lib/lib{bfd,ctf,ctf-nobfd,gprofng,opcodes,sframe}.a \ /usr/share/doc/gprofng/ 8.20.2. Conteúdo do Binutils Aplicativos instalados: addr2line, ar, as, c++filt, dwp, elfedit, gprof, gprofng, ld, ld.bfd, nm, objcopy, objdump, ranlib, readelf, size, strings e strip Bibliotecas instaladas: libbfd.so, libctf.so, libctf-nobfd.so, libgprofng.so, libopcodes.so e libsframe.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 com o endereço ar Cria, modifica e extrai a partir de arquivamentos as Um montador que monta a saída gerada do 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 gprofng Coleta e analisa dados de desempenho ld Um vinculador que combina um número de objetos e arquivos de arquivamento em um arquivo, realocando os dados deles e vinculando referências de símbolos ld.bfd Um link rígido para o ld nm Lista os símbolos ocorrentes em um dado arquivo objeto objcopy Traduz um tipo de arquivo objeto em outro objdump Exibe informação a respeito do dado arquivo objeto, com opções controlando a informação particular a exibir; a informação mostrada é útil para programadores(as) 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 objeto realocáveis readelf Exibe informação a respeito de binários do tipo ELF size Lista os tamanhos de seção e o tamanho total para os arquivos objeto dados strings Exibe, para cada arquivo dado, as sequências de caracteres imprimíveis que são, no mínimo, do comprimento especificado (padronizado para quatro); para arquivos objeto, ele imprime, por padrão, somente 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 originários de arquivos 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 da libctf que não usa funcionalidade da libbfd libgprofng Uma biblioteca contendo a maioria das rotinas usadas pelo gprofng libopcodes Uma biblioteca para lidar com opcodes—as versões de “texto legível” de instruções para o processador; é usada para construir utilitários como o objdump libsframe Uma biblioteca para suportar retrocesso em linha usando um desbobinador simples 8.21. GMP-6.3.0 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: 0,3 UPC Espaço em disco exigido: 54 MB 8.21.1. Instalação do GMP Nota Se você estiver construindo para x86 de 32 bits, mas tem uma CPU que seja 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 do configure abaixo com ABI=32 ./configure ... Nota As configurações padrão do "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 anexando a opção --host=none-linux-gnu ao comando configure. Primeiro, faça um ajustamento para compatibilidade com gcc-15 e posteriores: sed -i '/long long t1;/,+1s/()/(...)/' configure Prepare GMP para compilação: ./configure --prefix=/usr \ --enable-cxx \ --disable-static \ --docdir=/usr/share/doc/gmp-6.3.0 O significado das novas opções de configuração: --enable-cxx Esse parâmetro habilita suporte a C++ --docdir=/usr/share/doc/gmp-6.3.0 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 o GMP nesta seção é considerada crítica. Não a 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 seja construído. Ocasionalmente, o código que detecta o processador identifica erroneamente os recursos do sistema e existirão erros nos testes ou em outros aplicativos usando as bibliotecas "gmp" com a mensagem Illegal instruction. Nesse caso, o "gmp" deveria ser reconfigurado com a opção "--host=none-linux-gnu" e reconstruído. Certifique-se de que pelo menos 199 testes na suíte de teste passaram. Verifique os resultados emitindo 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.21.2. Conteúdo do GMP Bibliotecas instaladas: libgmp.so e libgmpxx.so Diretório instalado: /usr/share/doc/gmp-6.3.0 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.22. MPFR-4.2.2 O pacote MPFR contém funções para matemática de precisão múltipla. Tempo aproximado de construção: 0,2 UPC Espaço em disco exigido: 43 MB 8.22.1. Instalação do MPFR Prepare MPFR para compilação: ./configure --prefix=/usr \ --disable-static \ --enable-thread-safe \ --docdir=/usr/share/doc/mpfr-4.2.2 Compile o pacote e gere a documentação HTML: make make html Importante A suíte de teste para o MPFR nesta seção é considerada crítica. Não a pule sob quaisquer circunstâncias. Teste os resultados e certifique-se de que todos os 198 testes passaram: make check Instale o pacote e a documentação dele: make install make install-html 8.22.2. Conteúdo do MPFR Bibliotecas instaladas: libmpfr.so Diretório instalado: /usr/share/doc/mpfr-4.2.2 Descrições Curtas libmpfr Contém funções matemáticas de precisão múltipla 8.23. MPC-1.3.1 O pacote MPC contém uma biblioteca para a aritmética de números complexos com precisão arbitrariamente alta e arredondamento correto do resultado. Tempo aproximado de construção: 0,1 UPC Espaço em disco exigido: 22 MB 8.23.1. Instalação do MPC Prepare MPC para compilação: ./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/mpc-1.3.1 Compile o pacote e gere a documentação HTML: make make html Para testar os resultados, emita: make check Instale o pacote e a documentação dele: make install make install-html 8.23.2. Conteúdo do MPC Bibliotecas instaladas: libmpc.so Diretório instalado: /usr/share/doc/mpc-1.3.1 Descrições Curtas libmpc Contém funções matemáticas complexas 8.24. Attr-2.5.2 O pacote Attr contém utilitários para administrar os atributos estendidos dos objetos do sistema de arquivos. Tempo aproximado de construção: menos que 0,1 UPC Espaço em disco exigido: 4,1 MB 8.24.1. Instalação do Attr Prepare Attr para compilação: ./configure --prefix=/usr \ --disable-static \ --sysconfdir=/etc \ --docdir=/usr/share/doc/attr-2.5.2 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, emita: make check Instale o pacote: make install 8.24.2. Conteúdo do Attr Aplicativos instalados: attr, getfattr e setfattr Biblioteca instalada: libattr.so Diretórios instalados: /usr/include/attr e /usr/share/doc/attr-2.5.2 Descrições Curtas attr Estende atributos sobre objetos dos sistemas de arquivos getfattr Obtém os atributos estendidos dos objetos do sistema de arquivos setfattr Configura os atributos estendidos dos objetos do sistema de arquivos libattr Contém as funções de biblioteca para manipular atributos estendidos 8.25. Acl-2.3.2 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 refinados para arquivos e diretórios. Tempo aproximado de construção: menos que 0,1 UPC Espaço em disco exigido: 6,5 MB 8.25.1. Instalação do Acl Prepare Acl para compilação: ./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/acl-2.3.2 Compile o pacote: make Os testes de Acl precisam ser executados em um sistema de arquivos que suporte controles de acesso. Para testar os resultados, emita: make check Um teste chamado test/cp.test é conhecido por falhar porque Coreutils ainda não foi construído com o suporte de Acl. Instale o pacote: make install 8.25.2. Conteúdo do Acl Aplicativos instalados: chacl, getfacl e setfacl Biblioteca instalada: libacl.so Diretórios instalados: /usr/include/acl e /usr/share/doc/acl-2.3.2 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 do arquivo setfacl Configura listas de controle de acesso do arquivo libacl Contém as funções de biblioteca para manipular Listas de Controle de Acesso 8.26. Libcap-2.76 O pacote Libcap implementa a interface do espaço de usuária(o) para os recursos POSIX 1003.1e disponíveis em núcleos Linux. Esses recursos particionam o todo 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: 3,1 MB 8.26.1. Instalação do 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 do 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, emita: make test Instale o pacote: make prefix=/usr lib=lib install 8.26.2. Conteúdo do Libcap Aplicativos instalados: capsh, getcap, getpcaps e setcap Biblioteca instalada: libcap.so e libpsx.so Descrições Curtas capsh Um encapsulador de shell para explorar e restringir suporte a recurso getcap Examina recursos do arquivo getpcaps Exibe os recursos do(s) processo(s) consultado(s) setcap Configura recursos do arquivo libcap Contém as funções de biblioteca para manipular recursos POSIX 1003.1e libpsx Contém funções para suportar semântica POSIX para chamadas de sistema associadas com a biblioteca pthread 8.27. Libxcrypt-4.4.38 O pacote Libxcrypt contém uma biblioteca moderna para hash unidirecional de senhas. Tempo aproximado de construção: 0,1 UPC Espaço em disco exigido: 12 MB 8.27.1. Instalação do Libxcrypt Prepare Libxcrypt para compilação: ./configure --prefix=/usr \ --enable-hashes=strong,glibc \ --enable-obsolete-api=no \ --disable-static \ --disable-failure-tokens O significado das novas opções de configuração: --enable-hashes=strong,glibc Constrói algoritmos fortes de resumo recomendados para casos de uso de segurança e os algoritmos de resumo fornecidos pela tradicional libcrypt da "Glibc" para compatibilidade. --enable-obsolete-api=no Desabilita as funções obsoletas da API. Elas não são necessárias para um sistema moderno Linux construído a partir do fonte. --disable-failure-tokens Desabilita o recurso de ficha de falha. É necessário para compatibilidade com as bibliotecas tradicionais de resumo de algumas plataformas, mas um sistema Linux baseado na "Glibc" não precisa dele. Compile o pacote: make Para testar os resultados, emita: make check Instale o pacote: make install Nota As instruções acima desabilitaram funções obsoletas da API, pois nenhum pacote instalado por compilação a partir dos fontes se vincularia a elas em tempo de execução. No entanto, os únicos aplicativos somente binários conhecidos que se vinculam a essas funções exigem ABI versão 1. Se você precisar ter tais funções devido a algum aplicativo somente binário ou para estar conforme com a "LSB", [então] construa o pacote novamente com os seguintes comandos: make distclean ./configure --prefix=/usr \ --enable-hashes=strong,glibc \ --enable-obsolete-api=glibc \ --disable-static \ --disable-failure-tokens make cp -av --remove-destination .libs/libcrypt.so.1* /usr/lib 8.27.2. Conteúdo do Libxcrypt Bibliotecas instaladas: libcrypt.so Descrições Curtas libcrypt Contém funções para resumir senhas 8.28. Shadow-4.18.0 O pacote Shadow contém aplicativos para manusear senhas de uma maneira segura. Tempo aproximado de construção: 0,1 UPC Espaço em disco exigido: 115 MB 8.28.1. Instalação do Shadow Importante Se você tiver instalado o Linux-PAM, você deveria seguir [633]a instrução do BLFS em vez desta página para construir (ou reconstruir ou atualizar) shadow. Nota Se você gostaria de impor o uso de senhas fortes, [634]instale e configure o Linux-PAM primeiro. Então [635]instale e configure o shadow com o suporte PAM. Finalmente [636]instale o libpwquality e configure o PAM para usá-lo. Desabilite a instalação do aplicativo groups e as páginas de manual dele, uma vez que o Coreutils fornece uma versão melhor. Também, impeça a instalação de páginas de manual que já foram instaladas no [637]Seção 8.3, “Man-pages-6.15”: 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 muito mais seguro YESCRYPT de encriptação de senha, que também permite senhas com mais de oito (08) caracteres. Também é necessário mudar o local obsoleto /var/spool/mail para as caixas de correio de usuário(a) que o Shadow usa por padrão para o local /var/mail usado atualmente. E, remova /bin e /sbin do PATH, pois eles são simplesmente links simbólicos para seus contrapartes em /usr. Atenção Incluir /bin e (ou) /sbin na variável PATH pode fazer com que alguns pacotes do BLFS falhem para construir, de forma que não faça isso no arquivo .bashrc ou em qualquer outro lugar. sed -e 's:#ENCRYPT_METHOD DES:ENCRYPT_METHOD YESCRYPT:' \ -e 's:/var/spool/mail:/var/mail:' \ -e '/PATH=/{s@/sbin:@@;s@/bin:@@}' \ -i etc/login.defs Prepare o Shadow para compilação: touch /usr/bin/passwd ./configure --sysconfdir=/etc \ --disable-static \ --with-{b,yes}crypt \ --without-libbsd \ --with-group-name-max-length=32 O significado das novas opções de configuração: touch /usr/bin/passwd O arquivo /usr/bin/passwd precisa existir, pois o local dele é codificado rigidamente em alguns aplicativos; se ele já não existir, [então] o conjunto de comandos sequenciais de instalação o criará no lugar errado. --with-{b,yes}crypt O shell expande isso para duas chaves, --with-bcrypt e --with-yescrypt. Elas permitem que o shadow use os algoritmos Bcrypt e Yescrypt implementados pelo Libxcrypt para resumir senhas. Esses algoritmos são mais seguros (em particular, muito mais resistentes a ataques baseados em GPU) que os algoritmos SHA tradicionais. --with-group-name-max-length=32 O nome de usuário(a) mais longo permissível é o de trinta e dois (32) caracteres. Torne o comprimento máximo de um nome de grupo o mesmo. --without-libbsd Não use a função "readpassphrase" originária da "libbsd" a qual não está no LFS. Use a cópia interna. 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.28.2. Configurando o Shadow Esse pacote contém utilitários para adicionar, modificar e deletar usuários(as) e grupos; configurar e modificar as senhas deles(as); e realizar outras tarefas administrativas. Para uma explicação completa do que sombreamento de senha significa, veja-se o arquivo doc/HOWTO dentro da árvore desempacotada do fonte. Se usar suporte ao Shadow, [então] tenha na mente que aplicativos que necessitem verificar senhas (gerenciadores de tela, aplicativos de FTP, processos de segundo plano pop3, etc.) precisam ser conformantes com o Shadow. Isto é, eles precisam ser capazes de funcionar com senhas sombreadas. Para habilitar senhas sombreadas, execute o seguinte comando: pwconv Para habilitar senhas sombreadas de grupo, execute: grpconv A configuração padrão do "Shadow" para o utilitário "useradd" precisa de alguma explicação. Primeiro, a ação padrão para o utilitário "useradd" é a de criar o(a) usuário(a) e um grupo com o mesmo nome que o(a) usuário(a). Por padrão, os números de "ID" de usuário(a) ("UID") e "ID" de grupo ("GID") iniciarão em 1000. Isso significa que, se você não passar parâmetros extras para o "useradd", [então] cada usuário(a) será um(a) membro(a) de um grupo único no sistema. Se esse comportamento for indesejável, [então] você precisará passar, ou o parâmetro "-g", ou o "-N" para o "useradd", ou, do contrário, mudar a configuração de "USERGROUPS_ENAB" em "/etc/login.defs". Veja-se "[638]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 se adequar às tuas necessidades particulares. Crie-o com: mkdir -p /etc/default useradd -D --gid 999 Explicações do parâmetro do /etc/default/useradd GROUP=999 Esse parâmetro configura o início dos números de grupo usados no arquivo /etc/group. O valor específico 999 vem do parâmetro --gid acima. Você possivelmente o configure para qualquer valor desejado. Observe que useradd nunca reusará um UID ou um GID. Se o número identificado nesse parâmetro estiver usado, ele usará o próximo número disponível. Observe também que, se você não tiver um grupo com um ID igual a esse número em teu sistema, então na primeira vez que você usar o useradd sem o parâmetro -g, uma mensagem de erro será gerada—useradd: unknown GID 999, ainda que a conta tenha sido criada corretamente. Esse é o motivo pelo qual nós criamos o grupo users com esse ID de grupo no [639]Seção 7.6, “Criando Arquivos Essenciais e Links Simbólicos.” CREATE_MAIL_SPOOL=yes Esse parâmetro faz com que o useradd crie um arquivo de caixa de correio para cada novo(a) usuário(a). O useradd atribuirá a propriedade de grupo desse arquivo para o grupo mail com permissões 0660. Se você, em vez disso, não quisesse criar esses arquivos, [então] emita o seguinte comando: sed -i '/MAIL/s/yes/no/' /etc/default/useradd 8.28.3. Configurando a Senha do(a) Root Escolha uma senha para o(a) usuário(a) root e configure-a executando: passwd root 8.28.4. Conteúdo do Shadow Aplicativos instalados: chage, chfn, chgpasswd, chpasswd, chsh, expiry, faillog, getsubids, gpasswd, groupadd, groupdel, groupmems, groupmod, grpck, grpconv, grpunconv, 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 Diretórios instalados: /etc/default e /usr/include/shadow Bibliotecas instaladas: libsubid.so Descrições Curtas chage Usado para mudar o número máximo de dias entre mudanças obrigatórias de senha chfn Usado para mudar um nome completo do(a) usuário(a) e outra informação chgpasswd Usado para atualizar senhas de grupo em modo de lote chpasswd Usado para atualizar senhas de usuária(o) em modo de lote chsh Usado para mudar um shell de login padrão do(a) usuário(a) 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 um(a) usuário(a) gpasswd É usado para adicionar e deletar membros(as) e administradores(as) a grupos groupadd Cria um grupo com o nome dado groupdel Deleta o grupo com o nome dado groupmems Permite que um(a) usuário(a) administre a própria lista de filiação de grupo dele/dela sem a exigência de privilégios de superusuário(a). 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 login É usado pelo sistema para permitir usuárias(os) logar logoutd É um processo em segundo plano 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 mudar 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 dizendo que uma conta não está disponível; é projetado para ser usado como o shell padrão para contas desabilitadas passwd É usado para mudar 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 do(a) usuário(a) estiver configurado para aquele do grupo dado su Executa um shell com IDs de usuária(o) e grupo substitutos useradd Cria um(a) usuário(a) novo(a) com o nome dado ou atualiza a informação padrão de novo(a) usuário(a) userdel Deleta a conta de usuária(o) especificada usermod É usado para modificar o nome de login do(a) usuário(a) 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 lidar com intervalos subordinados de id para usuárias(os) e grupos 8.29. GCC-15.2.0 O pacote GCC contém a GNU Compiler Collection, a qual inclui os compiladores C e C++. Tempo aproximado de construção: 46 UPC (com os testes) Espaço em disco exigido: 6,6 GB 8.29.1. Instalação do GCC Se construir 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 A documentação do GCC recomenda construir o GCC em um diretório de construção dedicado: mkdir -v build cd build Prepare o GCC para compilação: ../configure --prefix=/usr \ LD=ld \ --enable-languages=c,c++ \ --enable-default-pie \ --enable-default-ssp \ --enable-host-pie \ --disable-multilib \ --disable-bootstrap \ --disable-fixincludes \ --with-system-zlib O GCC suporta sete linguagens computacionais, porém os pré-requisitos para a maior parte delas ainda não foram instalados. Veja-se a [640]página do GCC do Livro BLFS para instruções a respeito do como construir todas as linguagens suportadas do GCC. O significado dos novos parâmetros de configuração: LD=ld Esse parâmetro induz o script configure a usar o aplicativo ld instalado pelo pacote Binutils, construído anteriormente neste capítulo, em vez da versão construída cruzadamente, a qual de outra maneira seria usada. --disable-fixincludes Por padrão, durante a instalação do GCC alguns cabeçalhos de sistema seriam “corrigidos” para serem usados com o GCC. Isso não é necessário para um sistema moderno Linux e potencialmente danoso se um pacote for reinstalado depois de instalar o GCC. Essa chave evita que o GCC “corrija” os cabeçalhos. --with-system-zlib Essa chave diz ao GCC para vincular à cópia instalada do sistema da biblioteca Zlib, em vez da própria cópia interna dele. Nota PIE (position-independent executables) são aplicativos binários que conseguem ser carregados em qualquer lugar em memória. Sem PIE, o recurso de segurança chamado de ASLR (Address Space Layout Randomization) consegue ser aplicado para as bibliotecas compartilhadas, porém não para os próprios executáveis. Habilitar PIE permite ASLR para os executáveis em adição às bibliotecas compartilhadas e mitiga alguns ataques baseados em endereços fixos de código ou dados sensível(is) nos executáveis. SSP (Stack Smashing Protection) é uma técnica para garantir que a pilha de parâmetros não está corrompida. A corrupção da pilha consegue, por exemplo, alterar o endereço de retorno de uma sub-rotina, dessa forma transferindo controle para algum código perigoso (existente no aplicativo ou nas bibliotecas compartilhadas; ou injetado pelo(a) atacante de alguma maneira). Compile o pacote: make Importante Nesta seção, a suíte de teste para o GCC é considerada importante, porém ela toma um tempo longo. Construtoras(es) de primeira vez são encorajadas(os) a executar a suíte de teste. O tempo para executar os testes pode ser reduzido significantemente adicionando-se -jx ao comando make -k check abaixo, onde x é o número de núcleos da CPU em seu sistema. O GCC pode precisar de mais espaço de pilha para compilar alguns padrões de código extremamente complexos. Como precaução para as distribuições anfitriãs com um limite de pilha apertado, configure explicitamente o limite rígido do tamanho da pilha como infinito. Na maioria das distribuições anfitriãs (e no sistema LFS final), o limite rígido é infinito por padrão, mas não há mal algum em configurá-lo explicitamente. Não é necessário mudar o limite flexível do tamanho da pilha porque o GCC o configurará automaticamente para um valor apropriado, desde que o valor não exceda o limite rígido: ulimit -s -H unlimited Agora remova várias falhas conhecidas de teste: sed -e '/cpython/d' -i ../gcc/testsuite/gcc.dg/plugin/plugin.exp Teste os resultados como um(a) usuário(a) não privilegiado(a), porém não pare em erros: chown -R tester . su tester -c "PATH=$PATH make -k check" Para extrair um sumário dos resultados da suíte de teste, execute: ../contrib/test_summary Para filtrar somente os sumários, entube a saída gerada por grep -A7 Summ. Os resultados podem ser comparados com aqueles localizados em [641]https://www.linuxfromscratch.org/lfs/build-logs/12.4/ e [642]https://gcc.gnu.org/ml/gcc-testresults/. Os testes relacionados a pr90579.c são conhecidos por falharem. Umas poucas falhas inesperadas não podem ser evitadas sempre. A menos que os resultados do teste sejam amplamente diferentes daqueles na URL acima, é seguro continuar. Instale o pacote: make install O diretório de construção do GCC é de propriedade de tester agora e a propriedade do diretório do cabeçalho instalado (e o conteúdo dele) está incorreto. Mude a propriedade para o(a) usuário(a) e grupo root: chown -v -R root:root \ /usr/lib/gcc/$(gcc -dumpmachine)/15.2.0/include{,-fixed} Crie um link simbólico exigido pelo [643]FHS por razões "históricas". ln -svr /usr/bin/cpp /usr/lib Muitos pacotes usam o nome cc para chamar o compilador C. Já criamos cc como um link simbólico em [644]gcc-passagem2; crie a página de manual dele como um link simbólico também: ln -sv gcc.1 /usr/share/man/man1/cc.1 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)/15.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(){}' | cc -x c - -v -Wl,--verbose &> dummy.log readelf -l a.out | grep ': /lib' Não deveriam existir erros, e a saída gerada do último comando será (levando em consideração diferenças específicas da plataforma no nome do vinculador dinâmico): [Requesting program interpreter: /lib64/ld-linux-x86-64.so.2] Agora certifique-se de que nós estamos configurados para usar os arquivos corretos de iniciação: grep -E -o '/usr/lib.*/S?crt[1in].*succeeded' dummy.log A saída gerada do último comando deveria ser: /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.0/../../../../lib/Scrt1.o succeeded /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.0/../../../../lib/crti.o succeeded /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.0/../../../../lib/crtn.o succeeded Dependendo da arquitetura da sua máquina, o acima possivelmente difira ligeiramente. A diferença será o nome do diretório depois de /usr/lib/gcc. A coisa importante a se olhar aqui é que o gcc tenha encontrado todos os três arquivos crt*.o sob o diretório /usr/lib. Verifique se o compilador está procurando os arquivos corretos de cabeçalho: grep -B4 '^ /usr/include' dummy.log Esse comando deveria retornar a seguinte saída gerada: #include <...> search starts here: /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.0/include /usr/local/include /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.0/include-fixed /usr/include Novamente, o diretório nomeado depois do teu tripleto alvo possivelmente seja diferente do acima, dependendo da arquitetura do teu sistema. Agora, verifique se o novo vinculador está sendo usado com os caminhos corretos de procura: grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g' Referências para caminhos que tenham componentes com '-linux-gnu' deveriam ser ignoradas, porém, do contrário, a saída gerada 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 possivelmente use uns poucos outros diretórios. Por exemplo, aqui está a saída gerada 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 gerada 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 gerada do último comando deveria ser (levando em consideração diferenças específicas da plataforma no nome do vinculador dinâmico): found ld-linux-x86-64.so.2 at /usr/lib/ld-linux-x86-64.so.2 Se a saída gerada não aparecer conforme mostrado acima ou não for recebida, então alguma coisa está seriamente errada. Investigue e refaça as etapas para descobrir onde está o problema e corrija-o. Quaisquer problemas deveriam ser resolvidos antes de se continuar com o processo. Uma vez que tudo esteja funcionando corretamente, remova os arquivos de teste: rm -v 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.29.2. Conteúdo do 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}, libhwasan.{a,so}, libitm.{a,so}, liblsan.{a,so}, liblto_plugin.so, libquadmath.{a,so}, libssp.{a,so}, libssp_nonshared.a, libstdc++.{a,so}, libstdc++exp.a, 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-15.2.0 Descrições Curtas c++ O compilador C++ cc O compilador C cpp O preprocessador C; é usado pelo compilador para expandir as diretivas #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 somente para adicionar "link time optimization" e não é útil com as opções padrão de construção. gcc-nm Um encapsulador em torno de nm que adiciona um plugin à linha de comando. Esse aplicativo é usado somente para adicionar "link time optimization" e não é útil com as opções padrão de construção. gcc-ranlib Um encapsulador em torno de ranlib que adiciona um plugin à linha de comando. Esse aplicativo é usado somente para adicionar "link time optimization" e não é útil com as opções padrão de construção. gcov Uma ferramenta de testagem de cobertura; usada para analisar aplicativos para determinar onde as otimizações terão o maior 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 pelo GCC com LTO habilitado libasan A biblioteca de tempo de execução Address Sanitizer libatomic Biblioteca de tempo de execução integrada atômica do GCC libcc1 Uma biblioteca que permite ao "GDB" fazer uso do "GCC" libgcc Contém suporte de tempo de execução para o gcc libgcov Essa biblioteca é vinculada a um aplicativo quando o 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 libhwasan A biblioteca de tempo de execução do Address Sanitizer assistida por hardware libitm A biblioteca de memória transacional GNU liblsan A biblioteca de tempo de execução Leak Sanitizer liblto_plugin Plugin LTO do GCC permite ao Binutils processar arquivos objeto produzidos pelo GCC com LTO habilitado libquadmath API da Biblioteca GCC Quad Precision Math libssp Contém rotinas suportantes da funcionalidade de proteção contra esmagamento de pilha do GCC. libstdc++ A biblioteca padrão C++ libstdc++exp Biblioteca Experimental de Contratos C++ libstdc++fs Biblioteca de Sistema de Arquivos ISO/IEC TS 18822:2015 libsupc++ Fornece rotinas suportantes para a linguagem de programação C++ libtsan A biblioteca de tempo de execução Thread Sanitizer libubsan A biblioteca de tempo de execução Undefined Behavior Sanitizer 8.30. Ncurses-6.5-20250809 O pacote Ncurses contém bibliotecas para manuseio independente de terminal das telas de caracteres . Tempo aproximado de construção: 0,2 UPC Espaço em disco exigido: 46 MB 8.30.1. Instalação do Ncurses Prepare o Ncurses para compilação: ./configure --prefix=/usr \ --mandir=/usr/share/man \ --with-shared \ --without-debug \ --without-normal \ --with-cxx-shared \ --enable-pc-files \ --with-pkg-config-libdir=/usr/lib/pkgconfig O significado das novas opções de configuração: --with-shared Isso faz com que o Ncurses construa e instale bibliotecas C compartilhadas. --without-normal Isso evita que o Ncurses construa e instale bibliotecas C estáticas. --without-debug Isso evita que o Ncurses construa e instale bibliotecas de depuração. --with-cxx-shared Isso faz com que o Ncurses construa e instale vínculos C++ compartilhados. Também evita a construção e instalação de vínculos C++ estáticos. --enable-pc-files Essa chave gera e instala arquivos .pc para o pkg-config. Compile o pacote: make Esse pacote tem uma suíte de teste, entretanto ela só pode ser executada depois que o pacote tiver 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.5 no local. Isso possivelmente quebre o processo de shell que esteja usando código e dados oriundo do arquivo da biblioteca. Instale o pacote com DESTDIR e substitua corretamente o arquivo da biblioteca usando o comando install (o cabeçalho curses.h também é editado para garantir que a ABI de caracteres largos seja usada como fizemos em [645]Seção 6.3, “Ncurses-6.5-20250809”): make DESTDIR=$PWD/dest install install -vm755 dest/usr/lib/libncursesw.so.6.5 /usr/lib rm -v dest/usr/lib/libncursesw.so.6.5 sed -e 's/^#if.*XOPEN.*$/#if 1/' \ -i dest/usr/include/curses.h cp -av dest/* / Muitos aplicativos ainda esperam que o vinculador seja capaz de encontrar bibliotecas Ncurses de caracteres não largos. Engane esses aplicativos para se vincularem a bibliotecas de caracteres largos por meio de links simbólicos (observe que os links .so só são seguros com curses.h editado para sempre usar a ABI de caracteres largos): for lib in ncurses form panel menu ; do ln -sfv lib${lib}w.so /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: ln -sfv libncursesw.so /usr/lib/libcurses.so Se desejado, instale a documentação do Ncurses: cp -v -R doc -T /usr/share/doc/ncurses-6.5-20250809 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 dos 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 a versão 5. Se você precisa ter tais bibliotecas, por causa de algum aplicativo somente binário ou para estar conforme com a LSB, 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.30.2. Conteúdo do 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: libcurses.so (link simbólico), libform.so (link simbólico), libformw.so, libmenu.so (link simbólico), libmenuw.so, libncurses.so (link simbólico), libncursesw.so, libncurses++w.so, libpanel.so (link simbólico) e libpanelw.so, Diretórios instalados: /usr/share/tabset, /usr/share/terminfo e /usr/share/doc/ncurses-6.5-20250809 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 o 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 do terminfo que traduz um arquivo terminfo do formato fonte para o formato binário necessário para as rotinas de biblioteca do ncurses [Um arquivo terminfo contém informação a respeito dos recursos 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 recursos dependentes de terminal disponíveis para o shell; também pode ser usado para reconfigurar ou inicializar um terminal ou informar o nome longo dele tset Pode ser usado para inicializar terminais libncursesw Contém funções para exibir texto em muitas maneiras complexas em uma tela de terminal; um bom exemplo do uso dessas funções é o menu exibido durante o make menuconfig do núcleo libncurses++w Contém vinculamentos C++ para outras bibliotecas nesse pacote 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.31. Sed-4.9 O pacote Sed contém um editor de fluxo. Tempo aproximado de construção: 0,3 UPC Espaço em disco exigido: 30 MB 8.31.1. Instalação do Sed Prepare o Sed para compilação: ./configure --prefix=/usr Compile o pacote e gere a documentação HTML: make make html Para testar os resultados, emita: chown -R tester . su tester -c "PATH=$PATH make check" Instale o pacote e a documentação dele: make install install -d -m755 /usr/share/doc/sed-4.9 install -m644 doc/sed.html /usr/share/doc/sed-4.9 8.31.2. Conteúdo do Sed Aplicativo instalado: sed Diretório instalado: /usr/share/doc/sed-4.9 Descrições Curtas sed Filtra e transforma arquivos de texto em uma passagem única 8.32. Psmisc-23.7 O pacote Psmisc contém aplicativos para exibir informação a respeito de processos em execução. Tempo aproximado de construção: menos que 0,1 UPC Espaço em disco exigido: 6,7 MB 8.32.1. Instalação do Psmisc Prepare Psmisc para compilação: ./configure --prefix=/usr Compile o pacote: make Para executar a suíte de teste, execute: make check Instale o pacote: make install 8.32.2. Conteúdo do Psmisc Aplicativos instalados: fuser, killall, peekfd, prtstat, pslog, pstree e pstree.x11 (link para pstree) Descrições Curtas fuser Informa 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 a respeito de um processo pslog Informa 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.33. Gettext-0.26 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 do(a) usuário(a). Tempo aproximado de construção: 2,1 UPC Espaço em disco exigido: 395 MB 8.33.1. Instalação do Gettext Prepare o Gettext para compilação: ./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/gettext-0.26 Compile o pacote: make Para testar os resultados, emita: make check Instale o pacote: make install chmod -v 0755 /usr/lib/preloadable_libintl.so 8.33.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.26, /usr/share/gettext e /usr/share/gettext-0.26 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 natural de idioma para o idioma do(a) usuário(a) procurando a tradução em um catálogo de mensagens gettext.sh Primariamente serve como uma biblioteca de função de shell para o gettext gettextize Copia todos os arquivos padrão do Gettext 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 mescla 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 do(a) usuário(a) msgmerge Combina duas traduções cruas em arquivo único msgunfmt Descompila um catálogo de mensagem binário em 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 Re-codifica 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 gerada formatada em C utilizáveis em aplicativos C++, para uso com as sequências de caracteres e os fluxos libgettextlib Contém rotinas comuns usadas pelos vários aplicativos do Gettext; elas não são destinadas para uso geral libgettextpo Usada para escrever aplicativos especializados que processam arquivos .po; essa biblioteca é usada quando os aplicativos padrão embarcados com o Gettext (tais como msgcomm, msgcmp, msgattrib e msgen) não bastarão libgettextsrc Fornece rotinas comuns usadas pelos vários aplicativos do Gettext; elas não são destinadas para uso geral libtextstyle Biblioteca de estilização de texto preloadable_libintl Uma biblioteca, destinada a ser usada por LD_PRELOAD que auxilia a libintl a registrar mensagens não traduzidas 8.34. Bison-3.8.2 O pacote Bison contém um gerador de analisador. Tempo aproximado de construção: 2,1 UPC Espaço em disco exigido: 63 MB 8.34.1. Instalação do Bison Prepare o Bison para compilação: ./configure --prefix=/usr --docdir=/usr/share/doc/bison-3.8.2 Compile o pacote: make Para testar os resultados, emita: make check Instale o pacote: make install 8.34.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.35. Grep-3.12 O pacote Grep contém aplicativos para procura ao longo do conteúdo de arquivos. Tempo aproximado de construção: 0,6 UPC Espaço em disco exigido: 48 MB 8.35.1. Instalação do Grep Primeiro, remova um aviso a respeito de usar egrep e fgrep que induz os testes em alguns pacotes a falharem: sed -i "s/echo/#echo/" src/egrep.sh Prepare o Grep para compilação: ./configure --prefix=/usr Compile o pacote: make Para testar os resultados, emita: make check Instale o pacote: make install 8.35.2. Conteúdo do Grep Aplicativos instalados: egrep, fgrep e grep Descrições Curtas egrep Imprime linhas correspondentes a uma expressão regular estendida. Isso está obsoleto; use grep -E em vez disso fgrep Imprime linhas correspondentes a uma lista de sequências de caracteres fixas. Isso está obsoleto; use grep -F em vez disso grep Imprime linhas correspondentes a expressão regular básica 8.36. Bash-5.3 O pacote Bash contém o Bourne-Again SHell. Tempo aproximado de construção: 1,5 UPC Espaço em disco exigido: 56 MB 8.36.1. Instalação do Bash Prepare o Bash para compilação: ./configure --prefix=/usr \ --without-bash-malloc \ --with-installed-readline \ --docdir=/usr/share/doc/bash-5.3 O significado da nova opção do configure: --with-installed-readline Essa opção diz ao Bash para usar a biblioteca readline que já está instalada no sistema em vez de usar a própria versão dele da 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 o(a) usuário(a) tester consegue escrever na árvore dos fontes: chown -R tester . A suíte de teste desse pacote é projetada para ser executada como um(a) usuário(a) não root que é proprietário(a) do terminal conectado à entrada padrão. Para satisfazer a exigência, gere um novo pseudo terminal usando o Expect e execute os testes como o(a) usuário(a) tester: LC_ALL=C.UTF-8 su -s /usr/bin/expect tester << "EOF" set timeout -1 spawn make tests expect eof lassign [wait] _ _ _ value exit $value EOF A suíte de teste usa o diff para detectar a diferença entre a saída gerada do script de teste e a saída gerada esperada. Qualquer saída gerada oriunda do diff (prefixada com < e >) indica uma falha de teste, a menos que exista uma mensagem dizendo que a diferença pode ser ignorada. O teste chamado run-builtins é conhecido por falhar em algumas distribuições anfitriãs com uma diferença nas linhas 479 e 480 da saída gerada. Alguns outros testes precisam dos locais zh_TW.BIG5 e ja_JP.SJIS; eles são conhecidos por falhar, a menos que esses locais estejam instalados. 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.36.2. Conteúdo do Bash Aplicativos instalados: bash, bashbug e sh (link para bash) Diretório instalado: /usr/include/bash, /usr/lib/bash e /usr/share/doc/bash-5.3 Descrições Curtas bash Um interpretador de comandos vastamente usado; 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 o(a) usuário(a) a compor e enviar relatórios de defeitos formatados padrão concernentes ao bash sh Um link simbólico para o aplicativo bash; quando invocado como sh, o bash tenta imitar o comportamento de inicialização de versões históricas do sh o mais próximo possível, enquanto conformante ao padrão POSIX também 8.37. Libtool-2.5.4 O pacote Libtool contém o script de suporte à biblioteca genérica GNU. Ele torna o uso de bibliotecas compartilhadas mais simples com uma interface consistente, portável. Tempo aproximado de construção: 0,6 UPC Espaço em disco exigido: 44 MB 8.37.1. Instalação do Libtool Prepare Libtool para compilação: ./configure --prefix=/usr Compile o pacote: make Para testar os resultados, emita: make check Instale o pacote: make install Remova uma biblioteca estática útil somente para a suíte de teste: rm -fv /usr/lib/libltdl.a 8.37.2. Conteúdo do Libtool Aplicativos instalados: libtool e libtoolize Bibliotecas instaladas: 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 biblioteca libtoolize Fornece uma maneira padrão de adicionar suporte libtool a um pacote libltdl Esconde as várias dificuldades do abrir dinamicamente bibliotecas carregadas 8.38. GDBM-1.26 O pacote GDBM contém o GNU Database Manager. Ele é uma biblioteca de funções de base 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 pela sua chave deles e deletar uma chave junto com os dados dela. Tempo aproximado de construção: menos que 0,2 UPC Espaço em disco exigido: 13 MB 8.38.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 construir a biblioteca de compatibilidade libgdbm. Alguns pacotes fora do LFS possivelmente exijam as rotinas DBM mais antigas que ela fornece. Compile o pacote: make Para testar os resultados, emita: make check Instale o pacote: make install 8.38.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 uma base de dados GDBM para um arquivo gdbm_load Recria uma base de dados GDBM a partir de um arquivo de despejo gdbmtool Testa e modifica uma base de dados GDBM libgdbm Contém funções para manipular uma base de dados com hash libgdbm_compat Biblioteca de compatibilidade contendo funções DBM mais antigas 8.39. Gperf-3.3 Gperf gera uma função de hash perfeita a partir de um conjunto de chaves. Tempo aproximado de construção: 0,2 UPC Espaço em disco exigido: 12 MB 8.39.1. Instalação do Gperf Prepare Gperf para compilação: ./configure --prefix=/usr --docdir=/usr/share/doc/gperf-3.3 Compile o pacote: make Para testar os resultados, emita: make check Instale o pacote: make install 8.39.2. Conteúdo do Gperf Aplicativo instalado: gperf Diretório instalado: /usr/share/doc/gperf-3.3 Descrições Curtas gperf Gera um hash perfeito a partir de um conjunto de chaves 8.40. Expat-2.7.1 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: 14 MB 8.40.1. Instalação do Expat Prepare Expat para compilação: ./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/expat-2.7.1 Compile o pacote: make Para testar os resultados, emita: make check Instale o pacote: make install Se desejado, instale a documentação: install -v -m644 doc/*.{html,css} /usr/share/doc/expat-2.7.1 8.40.2. Conteúdo do Expat Aplicativo instalado: xmlwf Bibliotecas instaladas: libexpat.so Diretório instalado: /usr/share/doc/expat-2.7.1 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.41. Inetutils-2.6 O pacote Inetutils contém aplicativos para operação interativa básica de dispositivos via rede de comunicação. Tempo aproximado de construção: 0,3 UPC Espaço em disco exigido: 36 MB 8.41.1. Instalação do Inetutils Primeiro, faça a construção do pacote com gcc-14.1 ou posterior: sed -i 's/def HAVE_TERMCAP_TGETENT/ 1/' telnet/telnet.c 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 do 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 o instale, 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 de comunicação 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 de comunicação confiáveis. Observe que substituições melhores estão disponíveis para muitos desses servidores. Compile o pacote: make Para testar os resultados, emita: make check Um teste chamado libls.sh é conhecido por falhar ocasionalmente. Instale o pacote: make install Mova um aplicativo para o local adequado: mv -v /usr/{,s}bin/ifconfig 8.41.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 do protocolo de transferência de arquivos hostname Informa ou configura o nome do dispositivo ifconfig Gerencia interfaces da rede de comunicação ping Envia pacotes de solicitação de echo e informa quanto tempo as respostas demoram ping6 Uma versão do ping para redes de comunicação IPv6 talk É usado para conversar com outro(a) usuário(a) telnet Uma interface para o protocolo TELNET tftp Um aplicativo de transferência de arquivos trivial traceroute Traça a rota que seus pacotes fazem a partir do dispositivo no qual você está trabalhando para outro dispositivo em uma rede de comunicação, mostrando todos os saltos intermediários (gateways) ao longo do caminho 8.42. Less-679 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: 16 MB 8.42.1. Instalação do Less Prepare Less para compilação: ./configure --prefix=/usr --sysconfdir=/etc O significado das opções do 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 Para testar os resultados, emita: make check Instale o pacote: make install 8.42.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 o(a) usuário(a) role, encontre sequências de caracteres e pule para marcas lessecho Necessário para expandir meta caracteres, tais como * e ?, em nomes de arquivos em sistemas Unix lesskey Usado para especificar os atalhos de tecla para o less 8.43. Perl-5.42.0 O pacote Perl contém o Practical Extraction and Report Language. Tempo aproximado de construção: 1,3 UPC Espaço em disco exigido: 257 MB 8.43.1. Instalação do Perl Essa versão do Perl 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. Emita o seguinte comando de modo que o Perl usará as bibliotecas instaladas no sistema: export BUILD_ZLIB=False export BUILD_BZIP2=0 Para ter controle completo sobre a maneira como o 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 mostrado abaixo para usar os padrões que o Perl detecta automaticamente: sh Configure -des \ -D prefix=/usr \ -D vendorprefix=/usr \ -D privlib=/usr/lib/perl5/5.42/core_perl \ -D archlib=/usr/lib/perl5/5.42/core_perl \ -D sitelib=/usr/lib/perl5/5.42/site_perl \ -D sitearch=/usr/lib/perl5/5.42/site_perl \ -D vendorlib=/usr/lib/perl5/5.42/vendor_perl \ -D vendorarch=/usr/lib/perl5/5.42/vendor_perl \ -D man1dir=/usr/share/man/man1 \ -D man3dir=/usr/share/man/man3 \ -D pager="/usr/bin/less -isR" \ -D useshrplib \ -D usethreads O significado das novas opções do "Configure": -D pager="/usr/bin/less -isR" Isso garante que o less seja usado em vez do more. -D man1dir=/usr/share/man/man1 -D man3dir=/usr/share/man/man3 Uma vez que o Groff ainda não está instalado, Configure não criará páginas de manual para o Perl. Esses parâmetros substituem esse comportamento. -D usethreads Constrói O Perl com suporte para camadas. Compile o pacote: make Para testar os resultados, emita: TEST_JOBS=$(nproc) make test_harness Instale o pacote e limpe: make install unset BUILD_ZLIB BUILD_BZIP2 8.43.2. Conteúdo do Perl Aplicativos instalados: corelist, cpan, enc2xs, encguess, h2ph, h2xs, instmodsh, json_pp, libnetcfg, perl, perl5.42.0 (link rígido para perl), perlbug, perldoc, perlivp, perlthanks (link rígido para perlbug), piconv, pl2pm, pod2html, pod2man, pod2text, pod2usage, podchecker, podselect, prove, ptar, ptardiff, ptargrep, shasum, splain, xsubpp e zipdetails Bibliotecas instaladas: Muitas das quais não podem ser todas listadas aqui Diretório instalado: /usr/lib/perl5 Descrições Curtas corelist Uma estrutura de interação direta com o(a) usuário(a) por linha de comando para Module::CoreList cpan Interage com a Comprehensive Perl Archive Network (CPAN) a partir da linha de comando enc2xs Constrói uma extensão do Perl para o módulo Encode a partir tanto de Mapeamentos de Caracteres Unicode quanto de Arquivos de Codificação da 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 do Perl .ph h2xs Converte arquivos de cabeçalho C .h para extensões do Perl instmodsh Script de shell para examinar módulos do Perl instalados; consegue criar um tarball a partir de um módulo instalado json_pp Converte dados entre certos formatos de entrada gerada e de saída gerada libnetcfg Pode ser usado para configurar o módulo do Perl libnet perl Combina alguns dos melhores recursos do C, sed, awk e sh em uma linguagem canivete suíço única perl5.42.0 Um link rígido para perl perlbug Usado para gerar informes de defeitos a respeito do Perl ou dos módulos que vem como ele, e enviá-los por correio perldoc Exibe um pedaço da documentação em formato pod que está embutida na árvore de instalação do Perl ou em um script do Perl perlivp O Procedimento de Verificação de Instalação do Perl; pode ser usado para verificar se o Perl e as bibliotecas dele foram instalados corretamente perlthanks Usado para gerar mensagens de agradecimento para enviar para os(as) desenvolvedores(as) do 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 gerada formatada *roff pod2text Converte dados pod para texto formatado ASCII pod2usage Imprime mensagens de uso a partir de documentos pod embutidos em arquivos podchecker Verifica a sintaxe de arquivos de documentação do formato pod podselect Exibe seções selecionadas da 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 verbosos de aviso em Perl xsubpp Converte código Perl XS em código C zipdetails Exibe detalhes a respeito da estrutura interna de um arquivo Zip 8.44. XML::Parser-2.47 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.44.1. Instalação do XML::Parser Prepare XML::Parser para compilação: perl Makefile.PL Compile o pacote: make Para testar os resultados, emita: make test Instale o pacote: make install 8.44.2. Conteúdo do XML::Parser Módulo instalado: Expat.so Descrições Curtas Expat Fornece a interface Perl Expat 8.45. 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.45.1. Instalação do Intltool Primeiro, corrija 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, emita: make check Instale o pacote: make install install -v -Dm644 doc/I18N-HOWTO /usr/share/doc/intltool-0.51.0/I18N-HOWTO 8.45.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 os mescla com arquivos de tradução intltool-update Atualiza os arquivos de modelo po e os mescla com as traduções 8.46. Autoconf-2.72 O pacote Autoconf contém aplicativos para produzir scripts de shell que conseguem configurar automaticamente código fonte. Tempo aproximado de construção: menos que 0,1 UPC (cerca de 0,4 UPC com os testes) Espaço em disco exigido: 25 MB 8.46.1. Instalação do Autoconf Prepare Autoconf para compilação: ./configure --prefix=/usr Compile o pacote: make Para testar os resultados, emita: make check Instale o pacote: make install 8.46.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 muitos 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 da C para o 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 comuns de portabilidade 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 pelos nomes antigos delas para usar os nomes atuais de macro 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á tenha sido configurado para ter alguma portabilidade, [então] esse aplicativo pode ajudar a determinar o que o configure precisa verificar. Ele também consegue preencher lacunas em um arquivo configure.in gerado pelo autoscan]. 8.47. Automake-1.18.1 O pacote Automake contém aplicativos para gerar arquivos Make para uso com o Autoconf. Tempo aproximado de construção: menos que 0,1 UPC (cerca de 1,1 UPC com os testes) Espaço em disco exigido: 123 MB 8.47.1. Instalação do Automake Prepare Automake para compilação: ./configure --prefix=/usr --docdir=/usr/share/doc/automake-1.18.1 Compile o pacote: make Usar-se quatro tarefas paralelas acelera os testes, mesmo em sistemas com menos núcleos lógicos, devido a atrasos internos em testes individuais. Para testar os resultados, emita: make -j$(($(nproc)>4?$(nproc):4)) check Substitua "$((...))" pelo número de núcleos lógicos que você deseja usar se não quiser usar todos. Instale o pacote: make install 8.47.2. Conteúdo do Automake Aplicativos instalados: aclocal, aclocal-1.18 (vinculado rigidamente com aclocal), automake e automake-1.18 (vinculado rigidamente com automake) Diretórios instalados: /usr/share/aclocal-1.18, /usr/share/automake-1.18 e /usr/share/doc/automake-1.18.1 Descrições Curtas aclocal Gera arquivos aclocal.m4 baseados no conteúdo dos arquivos configure.in aclocal-1.18 Um link rígido 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 de nível superior. Escaneando o arquivo configure.in, ele automaticamente encontra cada arquivo Makefile.am apropriado e gera o arquivo Makefile.in correspondente]. automake-1.18 Um link rígido para automake 8.48. OpenSSL-3.5.2 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 o OpenSSH, aplicativos de correio eletrônico e navegadores de rede (para acessar sítios HTTPS). Tempo aproximado de construção: 1,9 UPC Espaço em disco exigido: 1,1 GB 8.48.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, emita: HARNESS_JOBS=$(nproc) make test Um teste, 30-test_afalg.t, é conhecido por falhar se o núcleo do anfitrião não tiver CONFIG_CRYPTO_USER_API_SKCIPHER habilitado ou não tiver quaisquer opções fornecendo um AES com implementação CBC (por exemplo, a combinação de CONFIG_CRYPTO_AES e CONFIG_CRYPTO_CBC; ou CONFIG_CRYPTO_AES_NI_INTEL se a CPU suportar AES-NI) habilitado. Se falhar, pode ser seguramente 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.5.2 Se desejado, instale alguma documentação adicional: cp -vfr doc/* /usr/share/doc/openssl-3.5.2 Nota Você deveria atualizar o OpenSSL quando uma versão nova que corrige vulnerabilidades for anunciada. Desde o OpenSSL 3.0.0, o esquema de versionamento do OpenSSL segue o formato MAIOR.MENOR.REMENDO. Compatibilidade de API/ABI é garantida para o mesmo número de versão MAIOR. Por causa de que o LFS instala somente as bibliotecas compartilhadas, não existe necessidade de recompilar pacotes que se vinculem à libcrypto.so ou à libssl.so quando atualizar para uma versão com o mesmo número de versão MAIOR. Entretanto, quaisquer aplicativos em execução vinculados àquelas bibliotecas precisam ser parados e reiniciados. Leiam-se as entradas relacionadas em [646]Seção 8.2.1, “Problemas de Atualização” para detalhes. 8.48.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.5.2 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. O uso do c_rehash é considerado obsoleto e deveria ser substituído pelo comando openssl rehash 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 "[647]openssl(1)" 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 a respeito da qual pode ser encontrada em "[648]ssl(7)" 8.49. Libelf originário do Elfutils-0.193 Libelf é uma biblioteca para lidar com arquivos ELF (Executable and Linkable Format). Tempo aproximado de construção: 0,3 UPC Espaço em disco exigido: 156 MB 8.49.1. Instalação do Libelf Libelf é parte do pacote elfutils-0.193. Use o arquivo elfutils-0.193.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, emita: make check Dois testes são conhecidos por falharem, dwarf_srclang_check e run-backtrace-native-core.sh. Instale somente o Libelf: make -C libelf install install -vm644 config/libelf.pc /usr/lib/pkgconfig rm /usr/lib/libelf.a 8.49.2. Conteúdo do Libelf Biblioteca instalada: libelf.so Diretório instalado: /usr/include/elfutils Descrições Curtas libelf.so Contém funções de API para lidar com arquivos objeto ELF 8.50. Libffi-3.5.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 um(a) programador(a) chamar qualquer função especificada por uma descrição de interface de chamada em tempo de execução. FFI significa Foreign Function Interface. Uma FFI permite a um aplicativo escrito em uma linguagem chamar um aplicativo escrito em outra linguagem. Especificamente, Libffi consegue fornecer uma ponte entre um interpretador, como Perl ou Python, e sub-rotinas da biblioteca compartilhada escrita em C, ou em C++. Tempo aproximado de construção: 1,7 UPC Espaço em disco exigido: 10 MB 8.50.1. Instalação do Libffi Nota Assim como o GMP, o Libffi constrói com otimizações específicas para o processador em uso. Se construir para outro sistema, mude o valor do parâmetro --with-gcc-arch= no comando a seguir para um nome de arquitetura totalmente implementado por ambos a CPU do anfitrião e a CPU naquele sistema. Se isso não for feito, todos os aplicativos que se vincularem a libffi deflagarão Erros de Operação Ilegal. Se você não conseguir descobrir um valor seguro para ambas as CPUs, substitua o parâmetro por --without-gcc-arch para produzir uma biblioteca genérica. Prepare Libffi para compilação: ./configure --prefix=/usr \ --disable-static \ --with-gcc-arch=native O significado da opção de configure: --with-gcc-arch=native Garante que o GCC otimize para o sistema atual. Se isso não for especificado, [então] o sistema é presumido e o código gerado possivelmente não esteja correto. 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 alternativos de sistema, vejam-se [649]as opções de x86 no manual do GCC. Compile o pacote: make Para testar os resultados, emita: make check Instale o pacote: make install 8.50.2. Conteúdo do Libffi Biblioteca instalada: libffi.so Descrições Curtas libffi Contém as funções de API da interface de função externa 8.51. Python-3.13.7 O pacote Python 3 contém o ambiente de desenvolvimento do Python. Ele é útil para programação orientada a objeto, escrita de scripts, prototipagem de aplicativos grandes e desenvolvimento de aplicações inteiras. Python é uma linguagem interpretada de computador. Tempo aproximado de construção: 2,0 UPC Espaço em disco exigido: 453 MB 8.51.1. Instalação do Python 3 Prepare o Python para compilação: ./configure --prefix=/usr \ --enable-shared \ --with-system-expat \ --enable-optimizations \ --without-static-libpython O significado das opções do configure: --with-system-expat Essa chave habilita vinculação contra a versão de sistema do Expat. --enable-optimizations Essa chave habilita etapas extensivas, porém consumidoras de tempo, de otimização. O interpretador é construído duas vezes; testes realizados na primeira construção são usados para melhorar a versão otimizada final. Compile o pacote: make Alguns testes são conhecidos por travarem, ocasionalmente, indefinidamente. Portanto, para testar os resultados, execute a suíte de teste, mas configure um limite de tempo de dois minutos para cada caso de teste: make test TESTOPTS="--timeout 120" Para um sistema relativamente lento, você possivelmente precise aumentar o limite de tempo e 1 UPC (medido ao construir a passagem 1 do Binutils com um núcleo da CPU) deveria ser suficiente. Alguns testes são instáveis, de forma que a suíte de teste automaticamente reexecutará testes falhos. Se um teste falhou, mas então passou quando reexecutado, ele deveria ser considerado como passado. Um teste, test_ssl, é conhecido por falhar no ambiente chroot. Instale o pacote: make install Nós usamos o comando pip3 para instalar os aplicativos e módulos do Python 3 para todos(as) os(as) usuários(as) como root em vários lugares neste livro. Isso conflita com a recomendação dos(as) desenvolvedores(as) do Python: instalar pacotes no ambiente virtual ou no diretório home de um(a) usuário(a) regular (executando pip3 como esse(a) usuário(a)). Um aviso multi linhas é deflagrado sempre que pip3 for emitido pelo(a) usuário(a) root. A razão principal para a recomendação é para evitar conflitos com o gerenciador de pacote do sistema (dpkg, por exemplo). O LFS não tem um gerenciador de pacote abrangente ao sistema, de modo que isso não é um problema. Também, o pip3 verificará se existe uma nova versão dele próprio sempre for executado. Uma vez que a resolução de nome de domínio ainda não está configurada no ambiente chroot do LFS, o pip3 não consegue verificar se existe uma nova versão dele próprio e produzirá um aviso. Depois que nós inicializarmos o sistema LFS e configurarmos uma conexão de rede de comunicação, um aviso diferente será emitido, informando para o(a) usuário(a) atualizar o pip3 a partir de uma roda pré-construída em PyPI (sempre que uma nova versão estiver disponível). Porém, o LFS considera que o pip3 é uma parte do Python 3, de forma que ele não deveria ser atualizado separadamente. Além disso, uma atualização a partir de uma roda pré-construída se desviaria do nosso objetivo: construir um sistema Linux a partir do código fonte. Assim, o aviso a respeito da nova versão do pip3 deveria ser ignorado também. Se desejar, você pode suprimir todos esses avisos executando o seguinte comando, o qual cria um arquivo de configuração: cat > /etc/pip.conf << EOF [global] root-user-action = ignore disable-pip-version-check = true EOF Importante No LFS e no BLFS normalmente nós construímos e instalamos módulos do Python com o comando pip3. Por favor, tenha certeza de que os comandos pip3 install em ambos os livros sejam executados como o(a) usuário(a) root (a menos que seja para um ambiente virtual do Python). Executar um pip3 install como um(a) usuário(a) não root possivelmente aparente funcionar, porém causará o módulo instalado ficar inacessível por outros(as) usuários(as). O pip3 install não reinstalará um módulo já instalado automaticamente. Quando usar o comando pip3 install para atualizar um módulo (por exemplo, de meson-0.61.3 para meson-0.62.0), insira a opção --upgrade na linha de comando. Se realmente for necessário desatualizar um módulo ou reinstalar a mesma versão por alguma razão, [então] insira --force-reinstall --no-deps na linha de comando. Se desejado, então instale a documentação pré-formatada: install -v -dm755 /usr/share/doc/python-3.13.7/html tar --strip-components=1 \ --no-same-owner \ --no-same-permissions \ -C /usr/share/doc/python-3.13.7/html \ -xvf ../python-3.13.7-docs-html.tar.bz2 O significado dos comandos de instalação da documentação: --no-same-owner e --no-same-permissions Garanta que os arquivos instalados tenham a titularidade de propriedade e as permissões corretas. Sem essas opções, o tar instalará os arquivos de pacote com os valores do(a) criador(a) desenvolvedor(a). 8.51.2. Conteúdo do Python 3 Aplicativos instalados: 2to3, idle3, pip3, pydoc3, python3 e python3-config Biblioteca instalada: libpython3.13.so e libpython3.so Diretórios instalados: /usr/include/python3.13, /usr/lib/python3 e /usr/share/doc/python-3.13.7 Descrições Curtas 2to3 é um aplicativo Python que lê código fonte Python 2.x e aplica uma série de correções para transformá-lo em código Python 3.x válido idle3 é um script encapsulador que abre um editor GUI ciente do Python. Para esse script executar, você precisa ter instalado Tk antes do Python, de forma que o módulo Tkinter do 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 do Python python3 é o interpretador para o Python, uma linguagem de programação orientada a objeto, interativa e interpretada 8.52. Flit-Core-3.12.0 Flit-core são as partes de construção de distribuição do Flit (uma ferramenta de empacotamento para módulos simples do Python). Tempo aproximado de construção: menos que 0,1 UPC Espaço em disco exigido: 1,3 MB 8.52.1. Instalação do Flit-Core Construa o pacote: pip3 wheel -w dist --no-cache-dir --no-build-isolation --no-deps $PWD Instale o pacote: pip3 install --no-index --find-links dist flit_core O significado das opções e comandos de configuração do pip3: wheel Esse comando constrói o arquivamento wheel para este pacote. -w dist Instrui o pip a colocar a roda criada no diretório dist. --no-cache-dir Impede que o "pip" copie a roda criada para o diretório /root/.cache/pip. install Esse comando instala o pacote. --no-build-isolation, --no-deps e --no-index Essas opções impedem a busca de arquivos do repositório de pacotes online (PyPI). Se os pacotes fossem instalados na ordem correta, o pip não precisaria buscar nenhum arquivo em primeiro lugar; essas opções adicionam alguma segurança em caso de erro do(a) usuário(a). --find-links dist Instrui o pip a procurar por arquivamentos wheel no diretório dist. 8.52.2. Conteúdo do Flit-Core Diretório instalado: /usr/lib/python3.13/site-packages/flit_core e /usr/lib/python3.13/site-packages/flit_core-3.12.0.dist-info 8.53. Packaging-25.0 O módulo de empacotamento é uma biblioteca Python que fornece utilitários que implementam as especificações de interoperabilidade que claramente têm um comportamento correto (PEP440) ou se beneficiam muito de ter uma implementação compartilhada (PEP425). Isso inclui utilitários para tratamento de versões, especificadores, marcadores, etiquetas e requisitos. Tempo aproximado de construção: menos que 0,1 UPC Espaço em disco exigido: 3,3 MB 8.53.1. Instalação do Packaging Compile packaging com o seguinte comando: pip3 wheel -w dist --no-cache-dir --no-build-isolation --no-deps $PWD Instale packaging com o seguinte comando: pip3 install --no-index --find-links dist packaging 8.53.2. Conteúdo do Packaging Diretórios instalados: /usr/lib/python3.13/site-packages/packaging e /usr/lib/python3.13/site-packages/packaging-25.0.dist-info 8.54. Wheel-0.46.1 Wheel é uma biblioteca do Python que é a implementação de referência do padrão de empacotamento de roda do Python. Tempo aproximado de construção: menos que 0,1 UPC Espaço em disco exigido: 608 KB 8.54.1. Instalação da Wheel Compile Wheel com o seguinte comando: pip3 wheel -w dist --no-cache-dir --no-build-isolation --no-deps $PWD Instale Wheel com o seguinte comando: pip3 install --no-index --find-links dist wheel 8.54.2. Conteúdo do Wheel Aplicativo instalado: wheel Diretórios instalados: /usr/lib/python3.13/site-packages/wheel e /usr/lib/python3.13/site-packages/wheel-0.46.1.dist-info Descrições Curtas wheel é um utilitário para desempacotar, empacotar ou converter arquivamentos roda 8.55. Setuptools-80.9.0 "Setuptools" é uma ferramenta usada para baixar, construir, instalar, atualizar e desinstalar pacotes "Python". Tempo aproximado de construção: menos que 0,1 UPC Espaço em disco exigido: 25 MB 8.55.1. Instalação do Setuptools Construa o pacote: pip3 wheel -w dist --no-cache-dir --no-build-isolation --no-deps $PWD Instale o pacote: pip3 install --no-index --find-links dist setuptools 8.55.2. Conteúdo do Setuptools Diretório instalado: /usr/lib/python3.13/site-packages/_distutils_hack, /usr/lib/python3.13/site-packages/pkg_resources, /usr/lib/python3.13/site-packages/setuptools e /usr/lib/python3.13/site-packages/setuptools-80.9.0.dist-info 8.56. Ninja-1.13.1 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: 43 MB 8.56.1. Instalação do Ninja Quando executado, ninja normalmente utiliza o maior número possível de processos em paralelo. Por padrão, esse é o número de núcleos no sistema, mais dois. Isso possivelmente superaqueça a CPU ou faça o sistema ficar sem memória. Quando ninja é invocado a partir da linha de comando, passar o parâmetro -jN limitará o número de processos paralelos. Alguns pacotes embutem a execução do ninja e não passam o parâmetro -j para ele. Usar o procedimento opcional abaixo permite que um(a) usuário(a) 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] faça o ninja reconhecer a variável de ambiente NINJAJOBS executando o editor de fluxo: 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 --verbose O significado da opção de construção: --bootstrap Esse parâmetro força Ninja a reconstruir ele próprio para o sistema atual. --verbose Esse parâmetro faz com que configure.py mostre o progresso da construção do Ninja. Os testes de pacote não podem executar no ambiente chroot. Eles exigem [650]cmake. Mas a função básica desse pacote já foi testada pela reconstrução dele mesmo (com a opção --bootstrap) de qualquer forma. 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.56.2. Conteúdo do Ninja Aplicativos instalados: ninja Descrições Curtas ninja é o sistema de construção Ninja 8.57. Meson-1.8.3 Meson é um sistema de construção de código fonte aberto projetado para ser ambos extremamente rápido e tão amigável para o(a) usuário(a) quanto possível. Tempo aproximado de construção: menos que 0,1 UPC Espaço em disco exigido: 45 MB 8.57.1. Instalação do Meson Compile Meson com o seguinte comando: pip3 wheel -w dist --no-cache-dir --no-build-isolation --no-deps $PWD A suíte de teste exige alguns pacotes fora do escopo do LFS. Instale o pacote: pip3 install --no-index --find-links dist meson 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 do install: -w dist Coloca as rodas criadas no diretório dist. --find-links dist Instala as rodas a partir do diretório dist. 8.57.2. Conteúdo do Meson Aplicativos instalados: meson Diretório instalado: /usr/lib/python3.13/site-packages/meson-1.8.3.dist-info e /usr/lib/python3.13/site-packages/mesonbuild Descrições Curtas meson Um sistema de construção de alta produtividade 8.58. Kmod-34.2 O pacote Kmod contém bibliotecas e utilitários para carregar módulos de núcleo Tempo aproximado de construção: menos que 0,1 UPC Espaço em disco exigido: 6,7 MB 8.58.1. Instalação do Kmod Prepare Kmod para compilação: mkdir -p build cd build meson setup --prefix=/usr .. \ --buildtype=release \ -D manpages=false O significado das opções do configure: -D manpages=false Essa opção desabilita gerar as páginas de manual, o que exige um programa externo. Compile o pacote: ninja A suíte de teste desse pacote exige cabeçalhos crus de núcleo (não os cabeçalhos “sanitizados” de núcleo instalados anteriormente), os quais estão além do escopo do LFS. Agora instale o pacote: ninja install 8.58.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 encontrar no conjunto existente de módulos; esse arquivo de dependência é usado pelo modprobe para carregar automaticamente os módulos exigidos insmod Instala um módulo carregável no núcleo em execução kmod Carrega e descarrega módulos de núcleo lsmod Lista módulos atualmente carregados modinfo Examina um arquivo objeto associado com um módulo de núcleo e exibe qualquer informação que ele consiga coletar modprobe Usa um arquivo de dependência, criado pelo depmod, para carregar automaticamente módulos relevantes rmmod Descarrega módulos a partir do núcleo em execução libkmod Essa biblioteca é usada por outros aplicativos para carregar e descarregar módulos de núcleo 8.59. Coreutils-9.7 O pacote Coreutils contém aplicativos utilitários básicos necessitados por cada sistema operacional. Tempo aproximado de construção: 1,2 UPC Espaço em disco exigido: 180 MB 8.59.1. Instalação do Coreutils Primeiro, aplique um remendo para um problema de segurança identificado pelo fluxo de desenvolvimento: patch -Np1 -i ../coreutils-9.7-upstream_fix-1.patch POSIX exige que aplicativos originários do Coreutils reconheçam limites de carácter corretamente, mesmo em localidades multi bytes. O seguinte remendo corrige essa não-conformidade e outros defeitos relacionados à internacionalização. patch -Np1 -i ../coreutils-9.7-i18n-1.patch Nota Muitos defeitos tem sido encontrados nesse remendo. Quando informar novos defeitos para os(as) mantenedores(as) do Coreutils, por favor, verifique primeiro para ver se tais defeitos são reproduzíveis sem esse remendo. Agora prepare Coreutils para compilação: autoreconf -fv automake -af FORCE_UNSAFE_CONFIGURE=1 ./configure \ --prefix=/usr \ --enable-no-install-program=kill,uptime O significado dos comandos e opções do configure: autoreconf -fv O remendo para internacionalização modificou o sistema de construção, portanto os arquivos de configuração precisam ser regenerados. Normalmente, nós usaríamos a opção -i para atualizar os arquivos auxiliares padrão, mas para esse pacote não funciona porque configure.ac especificou uma versão antiga do gettext. automake -af Os arquivos auxiliares do automake não foram atualizados pelo autoconf devido à ausência da opção -i. Esse comando os atualiza para evitar uma falha de construção. FORCE_UNSAFE_CONFIGURE=1 Essa variável de ambiente permite que o pacote seja construído pelo(a) usuário(a) root. --enable-no-install-program=kill,uptime O propósito dessa chave é o de impedir que o Coreutils instale aplicativos que serão instalados por outros pacotes. 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ário(a) root: make NON_ROOT_USERNAME=tester check-root Nós vamos executar o resto dos testes como o(a) usuário(a) tester. Certos testes exigem que o(a) usuário(a) seja um(a) membro(a) de mais que um grupo. Portanto, para que esses testes não sejam pulados, adicione um grupo temporário e torne o(a) usuário(a) tester uma parte dele: groupadd -g 102 dummy -U tester Corrija algumas das permissões, de modo que o(a) usuário(a) não root possa compilar e executar os testes: chown -R tester . Agora execute os testes (usando /dev/null para a entrada padrão, ou dois testes possivelmente sejam quebrados se construir o LFS em um terminal gráfico ou uma sessão em SSH ou GNU Screen porque a entrada padrão é conectada a um PTY a partir da distribuição anfitriã, e o nó de dispositivo para tal PTY não pode ser acessado a partir do ambiente chroot do LFS): su tester -c "PATH=$PATH make -k RUN_EXPENSIVE_TESTS=yes check" \ < /dev/null Remova o grupo temporário: groupdel dummy 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.59.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/[; é 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 gerada 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 serem feitas ou um número octal representando as novas permissões chown Muda a propriedade de usuário(a) e (ou) de 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, produzindo 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 produzindo 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 data e hora atual no formato dado ou configura a data e hora do sistema dd Copia um arquivo usando o tamanho de bloco e a contagem dado, enquanto opcionalmente realiza conversões sobre ele df Informa a quantidade de espaço em disco disponível (e usada) em todos os sistemas de arquivos montados ou somente 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 Produz comandos para configurar a variável de ambiente LS_COLOR para mudar o esquema de cores usado por ls dirname Extrai a(s) porção(ões) de diretório(s) do(s) nome(s) dado(s) du Informa a quantidade de espaço em disco usado pelo diretório atual, por cada dos diretórios dados (incluindo todos os subdiretórios) ou por cada 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 dos 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 Informa as associações de grupo de um(a) usuário(a) head Imprime as primeiras dez linhas (ou o número de linhas dado) de cada arquivo dado hostid Informa o identificador numérico (em hexadecimal) do dispositivo id Informa o efetivo ID de usuária(o), ID de grupo e as associações de grupo do(a) usuário(a) atual ou usuária(o) especificada(o) install Copia arquivos enquanto configura os modos de permissão deles e, se possível, proprietário e grupo deles join Junta as linhas que tenham idênticos campos de junção a partir de dois arquivos link Cria um link rígido (com o nome dado) para um arquivo ln Faz links rígidos ou links flexíveis (simbólicos) entre arquivos logname Informa o nome de login do(a) usuário(a) atual ls Lista o conteúdo de cada diretório dado md5sum Informa 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), "tubos 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 conjuntos de comandos sequenciais 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 a saída gerada dele 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 oriundos 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 informa alguma informação a respeito das(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 Informa o nome do diretório de trabalho atual readlink Informa 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 informa 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 gerada padrão enquanto escreve tanto para a saída gerada 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 carimbos de tempo 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 gerada padrão true Não faz nada, com sucesso; sempre sai com um código de situação indicando sucesso truncate Reduz 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 Informa o nome de arquivo do terminal conectado à entrada gerada padrão uname Informa 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 Informa os nomes das(os) usuárias(os) atualmente logadas(os) vdir É o mesmo que ls -l wc Informa o número de linhas, palavras e bytes para cada arquivo dado, bem como totais gerais quando mais que um arquivo for dado who Informa quem está logado(a) whoami Informa o nome de usuária(o) associado com o ID efetivo de usuária(o) atual yes Repetidamente produz y ou uma dada sequência de caracteres, até ser eliminado libstdbuf Biblioteca usada por stdbuf 8.60. Diffutils-3.12 O pacote Diffutils contém aplicativos que mostram as diferenças entre arquivos ou diretórios. Tempo aproximado de construção: 0,5 UPC Espaço em disco exigido: 51 MB 8.60.1. Instalação do Diffutils Prepare o Diffutils para compilação: ./configure --prefix=/usr Compile o pacote: make Para testar os resultados, emita: make check Instale o pacote: make install 8.60.2. Conteúdo do Diffutils Aplicativos instalados: cmp, diff, diff3 e sdiff Descrições Curtas cmp Compara dois arquivos e informa quaisquer diferenças bytes por bytes diff Compara dois arquivos ou diretórios e informa quais linhas nos arquivos diferem diff3 Compara três arquivos linha por linha sdiff Mescla dois arquivos e interativamente exibe os resultados 8.61. Gawk-5.3.2 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 8.61.1. Instalação do Gawk Primeiro, garanta que alguns arquivos desnecessários não sejam instalados: sed -i 's/extras//' Makefile.in Prepare o Gawk para compilação: ./configure --prefix=/usr Compile o pacote: make Para testar os resultados, emita: chown -R tester . su tester -c "PATH=$PATH make check" Instale o pacote: rm -f /usr/bin/gawk-5.3.2 make install O significado do comando: rm -f /usr/bin/gawk-5.3.2 O sistema de construção não recriará o link rígido gawk-5.3.2 se ele já existir. Remova-o para garantir que o link rígido anterior instalado na [651]Seção 6.9, “Gawk-5.3.2” seja atualizado aqui. O processo de instalação já criou awk como um link simbólico para gawk; crie a página de manual dele como um link simbólico também: ln -sv gawk.1 /usr/share/man/man1/awk.1 Se desejado, instale a documentação: install -vDm644 doc/{awkforai.txt,*.{eps,pdf,jpg}} -t /usr/share/doc/gawk-5.3.2 8.61.2. Conteúdo do Gawk Aplicativos instalados: awk (link para gawk), gawk e awk-5.3.2 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.3.2 Descrições Curtas awk Um link para gawk gawk Um aplicativo para manipular arquivos de texto; é a implementação GNU do awk gawk-5.3.2 Um link rígido para gawk 8.62. Findutils-4.10.0 O pacote Findutils contém aplicativos para encontrar arquivos. Os aplicativos são fornecidos para procurar ao longo de todos os arquivos em uma árvore de diretórios e para criar, manter e buscar uma base de dados (geralmente mais rápido que o find recursivo, porém não é confiável, a menos que a base de dados tenha sido atualizada recentemente). O Findutils também abastece o aplicativo xargs, o qual pode ser usado para executar um comando especificado sobre cada arquivo selecionado por uma pesquisa. Tempo aproximado de construção: 0,7 UPC Espaço em disco exigido: 61 MB 8.62.1. Instalação do Findutils Prepare o Findutils para compilação: ./configure --prefix=/usr --localstatedir=/var/lib/locate O significado das opções do configure: --localstatedir Essa opção move a base de dados locate para /var/lib/locate, o qual é o local conforme com FHS. Compile o pacote: make Para testar os resultados, emita: chown -R tester . su tester -c "PATH=$PATH make check" Instale o pacote: make install 8.62.2. Conteúdo do Findutils Aplicativos instalados: find, locate, updatedb e xargs Diretório instalado: /var/lib/locate Descrições Curtas find Pesquisa nas árvores de diretórios dadas por arquivos correspondendo a critérios especificados locate Pesquisa em uma base de dados de nomes de arquivo e informa os nomes que contém uma sequência de caracteres dada ou correspondem a um padrão dado updatedb Atualiza a base 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 na base de dados xargs Pode ser usado para aplicar um comando dado a uma lista de arquivos 8.63. Groff-1.23.0 O pacote Groff contém aplicativos para processar e formatar texto e imagens. Tempo aproximado de construção: 0,2 UPC Espaço em disco exigido: 108 MB 8.63.1. Instalação do Groff Groff espera que a variável de ambiente PAGE contenha o tamanho padrão de papel. Para usuárias(os) nos Estados Unidos da América do Norte, PAGE=letter é apropriado. Em outros lugares, PAGE=A4 possivelmente seja mais adequado. Embora o tamanho padrão do papel 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 Construa o pacote: make Para testar os resultados, emita: make check Instale o pacote: make install 8.63.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.23.0 e /usr/share/groff Descrições Curtas addftinfo Lê um arquivo de fonte troff e acrescenta alguma informação de métrica de fonte adicional que é usada 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 gerada do troff em comandos que são entendidos pelo troff eqn2graph Converte uma EQN (equação) do 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 a inserção de código perl em arquivos groff gpinyin Preprocessador para groff, permitindo a inserção do Pinyin (Chinês Mandarim escrito com o alfabeto romano) em arquivos groff. grap2graph Converte um arquivo do aplicativo grap em uma imagem recortada bitmap (grap é uma linguagem de programação antiga do Unix para criar diagramas) grn Um preprocessador groff para arquivos gremlin grodvi Um controlador para groff que produz arquivos de saída gerada do formato dvi do TeX groff Uma estrutura de interação direta com o(a) usuário(a) para o sistema de formatação de documentos groff; 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 do groff -e, -man, -me, -mm, -ms, -p, -s e -t são exigidas para imprimir arquivos e informa ao 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 gerada no formato PCL5 adequado para uma impressora HP LaserJet 4 gropdf Traduz a saída gerada do GNU troff para PDF grops Traduz a saída gerada do GNU troff para PostScript grotty Traduz a saída gerada 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 as bases de dados bibliográficas com um arquivo especificado para uso com refer, lookbib e lkbib lkbib Pesquisa em bases de dados bibliográficas por referências que contenham chaves especificadas e informa quaisquer referências encontradas lookbib Imprime um prompt na saída de erro padrão (a menos que a entrada gerada padrão não seja um terminal); lê uma linha contendo um conjunto de palavras chave a partir da entrada gerada padrão; pesquisa nas bases de dados bibliográficas, em um arquivo especificado, por referências contendo aquelas palavras chave; imprime quaisquer referências encontradas na saída gerada padrão; e repete esse processo até o final da entrada gerada mmroff Um preprocessador simples para groff neqn Formata equações para saída gerada American Standard Code for Information Interchange (ASCII) nroff Um script que emula o comando nroff usando groff pdfmom É um encapsulador em torno do 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 gerada troff ou TeX em comandos entendidos pelo TeX ou troff pic2graph Converte um diagrama PIC em uma imagem recortada post-grohtml Traduz a saída gerada do GNU troff para HTML preconv Converte codificação de arquivos de entrada gerada para alguma coisa que o GNU troff entenda pre-grohtml Traduz a saída gerada do GNU troff para HTML refer Copia o conteúdo de um arquivo para a saída gerada 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 para arquivos ps roff2text Transforma arquivos roff para arquivos de texto roff2x Transforma arquivos roff para 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 gerada do troff em comandos que são entendidos pelo 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.64. GRUB-2.12 O pacote GRUB contém o GRand Unified Bootloader. Tempo aproximado de construção: 0,3 UPC Espaço em disco exigido: 166 MB 8.64.1. Instalação do GRUB Nota Se o teu sistema tem suporte UEFI e você desejar inicializar o LFS com UEFI, você precisa instalar o GRUB com suporte UEFI (e as dependências dele) seguindo as instruções na [652]página BLFS. Você pode ignorar esse pacote ou instalar esse pacote e o pacote GRUB para UEFI do BLFS sem conflito (a página BLFS fornece instruções para ambos os casos). Atenção Desconfigure quaisquer variáveis de ambiente que possivelmente afetem a construção: unset {C,CPP,CXX,LD}FLAGS Não tente “ajustar” esse pacote com sinalizadores personalizados de compilação. Esse pacote é um carregador de inicialização. As operações de baixo nível no código fonte possivelmente sejam quebradas por otimização agressiva. Adicione um arquivo ausente a partir do tarball de lançamento: echo depends bli part_gpt > grub-core/extra_deps.lst Prepare GRUB para compilação: ./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-efiemu \ --disable-werror O significado das novas opções de configuração: --disable-werror Isso permite que a construção complete com avisos introduzidos por versões mais recentes do Flex. --disable-efiemu Essa opção minimiza o que é construído desabilitando um recurso e eliminando alguns programas 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 ambiente limitado do LFS. Para executar os testes mesmo assim, execute make check. Instale o pacote e mova o arquivo de suporte à completação do Bash para o local recomendado pelos(as) mantenedores(as) da completação do Bash: make install mv -v /etc/bash_completion.d/grub /usr/share/bash-completion/completions Tornar teu sistema LFS inicializável com GRUB será discutido no [653]Seção 10.4, “Usando o GRUB para Configurar o Processo de Inicialização.” 8.64.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 programa auxiliar para grub-install grub-editenv Uma ferramenta para editar o bloco ambiente grub-file Verifica para ver se o arquivo fornecido é do tipo especificado grub-fstest É uma ferramenta para depurar o controlador do sistema de arquivos grub-glue-efi Cola binários de 32 bits e de 64 bits em um arquivo (para máquinas Apple) grub-install Instala o GRUB na tua unidade grub-kbdcomp É um conjunto de comandos sequenciais que converte um esquema xkb em um reconhecido pelo GRUB grub-macbless É o bless ao estilo Mac para sistemas de arquivos HFS ou HFS+ (bless é peculiar às máquinas Apple; ele torna um dispositivo inicializável) grub-menulst2cfg Converte um menu.lst do GRUB Legado em um grub.cfg para uso com GRUB 2 grub-mkconfig Gera um arquivo grub.cfg 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 do GRUB de inicialização de rede de comunicação grub-mkpasswd-pbkdf2 Gera uma senha encriptada PBKDF2 para uso no menu de inicialização grub-mkrelpath Torna um nome de caminho de sistema relativo à raiz dele grub-mkrescue Faz uma imagem inicializável do GRUB adequada para um disquete, CDROM/DVD ou uma unidade USB grub-mkstandalone Gera uma imagem independente grub-ofpathname É um programa auxiliar que imprime o caminho para um dispositivo do GRUB grub-probe Sonda informação de dispositivo para um caminho ou dispositivo fornecido grub-reboot Configura a entrada padrão de inicialização para o GRUB somente para a próxima inicialização grub-render-label Renderiza .disk_label da Apple para Macs da Apple grub-script-check Verifica conjunto de comandos sequenciais de configuração do GRUB para erros de sintaxe grub-set-default Configura a entrada padrão de inicialização para o GRUB grub-sparc64-setup É um programa auxiliar para grub-setup grub-syslinux2cfg Transforma um arquivo de configuração do syslinux para o formato grub.cfg 8.65. Gzip-1.14 O pacote Gzip contém aplicativos para comprimir e descomprimir arquivos. Tempo aproximado de construção: 0,1 UPC Espaço em disco exigido: 21 MB 8.65.1. Instalação do Gzip Prepare o Gzip para compilação: ./configure --prefix=/usr Compile o pacote: make Para testar os resultados, emita: make check Instale o pacote: make install 8.65.2. Conteúdo do Gzip Aplicativos instalados: gunzip, gzexe, gzip, uncompress (link rígido 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 gerada 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 sobre todos os arquivos dados que sejam arquivos gzipados, de modo que o gzip não os comprimirá novamente; isso pode ser útil quando os 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 Re-comprime arquivos oriundos do formato compress para o formato gzip—.Z para .gz 8.66. IPRoute2-6.16.0 O pacote IPRoute2 contém aplicativos para operação interativa básica e avançada de dispositivos via rede de comunicação baseada em IPV4. Tempo aproximado de construção: 0,1 UPC Espaço em disco exigido: 17 MB 8.66.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 no LFS. Entretanto, um diretório e uma página de manual para o arpd ainda serão instalados. Impeça isso executando os comandos mostrados abaixo. sed -i /ARPD/d Makefile rm -fv man/man8/arpd.8 Compile o pacote: make NETNS_RUN_DIR=/run/netns Esse pacote não tem uma suíte de teste funcional. Instale o pacote: make SBINDIR=/usr/sbin install Se desejado, instale a documentação: install -vDm644 COPYING README* -t /usr/share/doc/iproute2-6.16.0 8.66.2. Conteúdo do IPRoute2 Aplicativos instalados: bridge, ctstat (link para lnstat), genl, ifstat, ip, lnstat, nstat, routel, rtacct, rtmon, rtpr, rtstat (link para lnstat), ss e tc Diretórios instalados: /etc/iproute2, /usr/lib/tc e /usr/share/doc/iproute2-6.16.0 Descrições Curtas bridge Configura pontes de redes de comunicação ctstat Utilitário de situação de conexão genl Estrutura genérica de interação direta com o(a) usuário(a) do utilitário de link de rede de comunicação ifstat Mostra as estatísticas de interface, incluindo o número de pacotes transmitidos e recebidos, por interface ip O executável principal. Ele tem várias funções, incluindo estas: ip link permite que usuários(as) olhem para o estado de dispositivos e façam mudanças ip addr permite que usuários(as) olhem para endereços e propriedades deles, adicionem novos endereços e deletem os antigos ip neighbor permite que usuários(as) olhem para vínculos de vizinho e propriedades deles, adicionem novas entradas de vizinho e deletem as antigas ip rule permite que usuários(as) olhem para as políticas de roteamento e as mudem ip route permite que usuários(as) olhem para a tabela de roteamento e mudem regras da tabela de roteamento ip tunnel permite que usuários(as) olhem para os tuneis IP e propriedades deles e as mudem ip maddr permite que usuários(as) olhem para os endereços multicast e propriedades deles e as mudem ip mroute permite que usuários(as) configurem, mudem ou deletem o roteamento multicast ip monitor permite que usuários(as) continuamente monitorem o estado de dispositivos, endereços e rotas lnstat Fornece estatísticas de rede de comunicação do Linux; ele é uma substituição difundida e mais completa de recursos para o antigo aplicativo rtstat nstat Mostra estatísticas da rede de comunicação routel Um componente do ip route 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 gerada de ip -o em um formato legível rtstat Utilitário de situação de rota ss Similar ao comando netstat; exibe conexões ativas tc Controle de Tráfego para implementações de Quality Of Service (QOS) e Class Of Service (COS) tc qdisc permite que usuários(as) configurem a disciplina de enfileiramento tc class permite que usuários(as) configurem classes baseadas no agendamento da disciplina de enfileiramento tc filter permite que usuários(as) configurem a filtragem de pacote QoS/CoS tc monitor pode ser usado para visualizar mudanças feitas para o Traffic Control no núcleo. 8.67. Kbd-2.8.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: 43 MB 8.67.1. Instalação do Kbd O comportamento das teclas backspace e delete não é consistente ao longo dos mapas de teclas no pacote Kbd. O seguinte remendo corrige esse problema para mapas de tecla i386: patch -Np1 -i ../kbd-2.8.0-backspace-1.patch Após remendar, a tecla backspace gera o carácter com código 127 e a tecla delete gera uma sequência de escape bem conhecida. 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, a qual não está disponível no ambiente chroot. Compile o pacote: make Os testes para esse pacote falharão todos no ambiente chroot porque exigem valgrind. Além disso, em um sistema completo com valgrind, vários testes ainda falham em um ambiente gráfico. Os testes passam em um ambiente não gráfico. 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 mapa de tecla “by” regular supõe a codificação ISO-8859-5 e o mapa de tecla CP1251 normalmente é usado. Usuários(as) de tais idiomas tem que transferir mapas de tecla funcionais separadamente. Se desejado, instale a documentação: cp -R -v docs/doc -T /usr/share/doc/kbd-2.8.0 8.67.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.8.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 núcleo kbdinfo Obtém informação a respeito da situação de um console kbd_mode Informa ou configura o modo de teclado kbdrate Configura as taxas de repetição e de atraso do teclado loadkeys Carrega as tabelas de tradução do teclado loadunimap Carrega a tabela de mapeamento Unicode para fonte do núcleo mapscrn Um aplicativo obsoleto que costumava carregar uma tabela de mapeamento de caractere de saída gerada definida pelo(a) usuário(a) 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 núcleo; 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 do teclado setvtrgb Configura o mapa de cor do console em todos os terminais virtuais showconsolefont Exibe a fonte de tela atual do console EGA/VGA showkey Informa 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 o 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.68. Libpipeline-1.5.8 O pacote Libpipeline contém uma biblioteca para manipular pipelines de subprocessos de uma maneira flexível e conveniente. Tempo aproximado de construção: 0,1 UPC Espaço em disco exigido: 10 MB 8.68.1. Instalação do Libpipeline Prepare Libpipeline para compilação: ./configure --prefix=/usr Compile o pacote: make Os testes exigem a biblioteca Check que nós removemos do LFS. Instale o pacote: make install 8.68.2. Conteúdo do Libpipeline Biblioteca instalada: libpipeline.so Descrições Curtas libpipeline Essa biblioteca é usada para construir seguramente pipelines entre subprocessos 8.69. Make-4.4.1 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,7 UPC Espaço em disco exigido: 13 MB 8.69.1. Instalação do Make Prepare o Make para compilação: ./configure --prefix=/usr Compile o pacote: make Para testar os resultados, emita: chown -R tester . su tester -c "PATH=$PATH make check" Instale o pacote: make install 8.69.2. Conteúdo do Make Aplicativo instalado: make Descrições Curtas make Automaticamente determina quais pedaços de um pacote precisam ser (re)compiladas e então emite os comandos relevantes 8.70. Patch-2.8 O pacote Patch contém um aplicativo para modificar ou criar arquivos por aplicação de um arquivo “remendo” tipicamente criado pelo aplicativo diff. Tempo aproximado de construção: 0,2 UPC Espaço em disco exigido: 13 MB 8.70.1. Instalação do Patch Prepare o Patch para compilação: ./configure --prefix=/usr Compile o pacote: make Para testar os resultados, emita: make check Instale o pacote: make install 8.70.2. Conteúdo do Patch Aplicativo instalado: patch Descrições Curtas patch Modifica arquivos de acordo com um arquivo de remendo (Um arquivo de remendo normalmente é uma listagem de diferenças criada com o aplicativo diff. Aplicando essas diferenças aos arquivos originais, patch cria as versões remendadas). 8.71. Tar-1.35 O pacote Tar fornece a habilidade para criar arquivamentos tar bem como para realizar vários outros tipos de manipulação de arquivamento. Tar pode ser usado sobre 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,6 UPC Espaço em disco exigido: 43 MB 8.71.1. Instalação do Tar Prepare o 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 o(a) usuário(a) root, porém, como ele está sendo executado em um sistema que foi construído somente parcialmente, substitui-lo está OK. Compile o pacote: make Para testar os resultados, emita: make check Um teste, "capabilities: binary store/restore", é conhecido por falhar se for executado, pois o LFS carece de "selinux"; porém, será pulado se o núcleo do anfitrião não suportar atributos estendidos ou rótulos de segurança no sistema de arquivos usado para construir o LFS. Instale o pacote: make install make -C doc install-html docdir=/usr/share/doc/tar-1.35 8.71.2. Conteúdo do Tar Aplicativos instalados: tar Diretório instalado: /usr/share/doc/tar-1.35 Descrições Curtas tar Cria, extrai arquivos originários de, e lista o conteúdo de, arquivamentos, também conhecidos como tarballs 8.72. Texinfo-7.2 O pacote Texinfo contém aplicativos para leitura, escrita e conversão de páginas info. Tempo aproximado de construção: 0,4 UPC Espaço em disco exigido: 160 MB 8.72.1. Instalação do Texinfo Corrija um padrão de código que faz com que o Perl-5.42 ou posterior exiba um alerta: sed 's/! $output_file eq/$output_file ne/' -i tp/Texinfo/Convert/*.pm Prepare o Texinfo para compilação: ./configure --prefix=/usr Compile o pacote: make Para testar os resultados, emita: make check Instale o pacote: make install Opcionalmente, instale os componentes pertencentes a uma instalação do TeX: make TEXMF=/usr/share/texmf install-tex O significado do parâmetro do 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 será instalado posteriormente. O sistema de documentação Info usa um arquivo de texto plano 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 às 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.72.2. Conteúdo do Texinfo Aplicativos instalados: info, install-info, makeinfo (link para texi2any), pdftexi2dvi, pod2texi, texi2any, texi2dvi, texi2pdf e texindex Biblioteca instalada: 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 explicar 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 plano 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.73. Vim-9.1.1629 O pacote Vim contém um editor poderoso de texto. Tempo aproximado de construção: 3,7 UPC Espaço em disco exigido: 259 MB Alternativas ao Vim Se você preferir outro editor—como o Emacs, Joe ou Nano—por favor, consulte [654]https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/ed itors.html para instruções sugeridas de instalação. 8.73.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 o Vim para compilação: ./configure --prefix=/usr Compile o pacote: make Para preparar os testes, certifique-se de que o(a) usuário(a) tester consiga escrever na árvore do fonte e excluir um arquivo contendo testes que exigem curl ou wget: chown -R tester . sed '/test_plugin_glvs/d' -i src/testdir/Make_all.mak Agora execute os testes como usuário(a) tester: su tester -c "TERM=xterm-256color LANG=en_US.UTF-8 make -j1 test" \ &> vim-test.log A suíte de teste emite um monte de dados binários para a tela. Isso pode causar problemas com as configurações do terminal atual (especialmente enquanto nós estivermos substituindo a variável TERM para satisfazer algumas suposições da suíte de teste). O problema pode ser evitado redirecionando-se a saída gerada para um arquivo de registro conforme mostrado acima. Um teste exitoso resultará nas palavras ALL DONE no arquivo de registro na conclusão. Instale o pacote: make install Muitos(as) usuários(as) reflexivamente digitam vi em vez de vim. Para permitir a execução do vim quando usuários(as) 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-9.1.1629, tornando-a consistente com o local da documentação para outros pacotes: ln -sv ../vim/vim91/doc /usr/share/doc/vim-9.1.1629 Se um X Window System vai ser instalado no sistema LFS, [então] possivelmente seja necessário recompilar o Vim depois que instalar o X. O Vim vem com uma versão GUI do editor que exige que o X e algumas bibliotecas adicionais seja instalado. Para mais informação a respeito desse processo, consulte a documentação do Vim e a página de instalação do Vim no livro BLFS em [655]https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/vi m.html. 8.73.2. Configurando o Vim Por padrão, vim executa em modo incompatível com vi. Isso possivelmente seja novo para usuários(as) que tenham usado 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 àqueles(as) que mudariam para o modo “compatible” que essa 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 depois dessa configuração. Crie um arquivo de configuração padrão do vim executando o seguinte: cat > /etc/vimrc << "EOF" " Início do /etc/vimrc " Certifique-se de que os padrões sejam configurados antes de personalizar as co nfigurações, não depois 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 " Fim do /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 antigo do vi. 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 a respeito da 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, o Vim instala somente arquivos de verificador ortográfico para o idioma inglês. Para instalar arquivos de verificador ortográfico para seu idioma preferido, copie os arquivos .spl e, opcionalmente, os .sug para seu idioma e codificação de carácter a partir de runtime/spell para /usr/share/vim/vim91/spell/. Para usar esses arquivos de verificador ortográfico, alguma configuração em /etc/vimrc é necessária, por exemplo: set spelllang=en,ru set spell Para mais informação, veja-se runtime/spell/README.txt. 8.73.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 e comandos básicas do vim xxd Cria um despejo hexadecimal do arquivo dado; ele também pode realizar a operação inversa, de forma que ele pode ser usado para remendamento de binário 8.74. MarkupSafe-3.0.2 MarkupSafe é um módulo do Python que implementa uma sequência de caracteres segura de marcação XML/HTML/XHTML. Tempo aproximado de construção: menos que 0,1 UPC Espaço em disco exigido: 500 KB 8.74.1. Instalação do MarkupSafe Compile MarkupSafe com o seguinte comando: pip3 wheel -w dist --no-cache-dir --no-build-isolation --no-deps $PWD Esse pacote não vem com uma suíte de teste. Instale o pacote: pip3 install --no-index --find-links dist Markupsafe 8.74.2. Conteúdo do MarkupSafe Diretório instalado: /usr/lib/python3.13/site-packages/MarkupSafe-3.0.2.dist-info 8.75. Jinja2-3.1.6 Jinja2 é um módulo do Python que implementa uma linguagem simples de modelo pitônico. Tempo aproximado de construção: menos que 0,1 UPC Espaço em disco exigido: 2,6 MB 8.75.1. Instalação do Jinja2 Construa o pacote: pip3 wheel -w dist --no-cache-dir --no-build-isolation --no-deps $PWD Instale o pacote: pip3 install --no-index --find-links dist Jinja2 8.75.2. Conteúdo do Jinja2 Diretório instalado: /usr/lib/python3.13/site-packages/Jinja2-3.1.6.dist-info 8.76. Systemd-257.8 O pacote systemd contém aplicativos para controlar a inicialização, execução e desligamento do sistema. Tempo aproximado de construção: 1,4 UPC Espaço em disco exigido: 310 MB 8.76.1. Instalação do systemd Remova dois grupos desnecessários, render e sgx, das regras padrão do "udev": sed -e 's/GROUP="render"/GROUP="video"/' \ -e 's/GROUP="sgx", //' \ -i rules.d/50-udev-default.rules.in Prepare systemd para compilação: mkdir -p build cd build meson setup .. \ --prefix=/usr \ --buildtype=release \ -D default-dnssec=no \ -D firstboot=false \ -D install-tests=false \ -D ldconfig=false \ -D sysusers=false \ -D rpmmacrosdir=no \ -D homed=disabled \ -D userdb=false \ -D man=disabled \ -D mode=release \ -D pamconfdir=no \ -D dev-kvm-mode=0660 \ -D nobody-group=nogroup \ -D sysupdate=disabled \ -D ukify=disabled \ -D docdir=/usr/share/doc/systemd-257.8 O significado das opções do meson: --buildtype=release Essa chave substitui o tipo de construção padrão (“debug”), que produz binários não otimizados. -D default-dnssec=no Essa chave desliga o suporte experimental a DNSSEC. -D firstboot=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 no LFS, pois tudo é feito manualmente. -D install-tests=false Essa chave impede a instalação dos testes compilados. -D ldconfig=false Essa chave impede a instalação de uma unidade do systemd que executa ldconfig ao inicializar; isso não é útil para distribuições de fonte, tais como o LFS, e torna o tempo de inicialização mais longo. Remova essa opção para habilitar a execução de ldconfig ao inicializar. -D sysusers=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 processo de segundo plano não é útil em um sistema LFS dado que contas de usuário(a) são criadas manualmente. -D rpmmacrosdir=no Essa chave desabilita a instalação das Macros RPM para uso com o systemd, pois o LFS não suporta RPM. -D homed=disabled and -D userdb=false Remova dois processos de segundo plano com dependências que não se encaixam no escopo do LFS. -D man=disabled 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. -D mode=release Desabilite alguns recursos considerados experimentais pelo(a) desenvolvedor(a). -D pamconfdir=no Evita a instalação de um arquivo de configuração do PAM não funcional no LFS. -D dev-kvm-mode=0660 A regra padrão do "udev" permitiria que todos(as) os(as) usuários(as) acessassem /dev/kvm. Os(As) editores(as) a consideram perigosa. Essa opção a substitui. -D nobody-group=nogroup Informe ao pacote que o nome do grupo com GID 65534 é nogroup. -D sysupdate=disabled Não instale a ferramenta "systemd-sysupdate". Ela foi projetada para atualizar automaticamente distribuições binárias, de forma que é inútil para um sistema básico do Linux construído a partir do fonte. E informará erros na inicialização se estiver habilitada, mas não configurada corretamente. -D ukify=disabled Não instale o conjunto de comandos sequenciais "systemd-ukify". Em tempo de execução, esse conjunto de comandos sequenciais exige o módulo do "Python" "pefile" que nem o LFS nem o BLFS fornecem. Compile o pacote: ninja Alguns testes precisam de um arquivo básico /etc/os-release. Para testar os resultados, emita: echo 'NAME="Linux From Scratch"' > /etc/os-release ninja test Um teste chamado systemd:core / test-namespace é conhecido por falhar no ambiente chroot do LFS. Alguns outros testes possivelmente falhem porque eles dependem de várias opções de configuração do núcleo. O teste chamado systemd:test / test-copy possivelmente expire devido a um congestionamento de E/S com um grande número de tarefas paralelas, mas passaria se executado sozinho com meson test test-copy. Instale o pacote: ninja install Instale as páginas de manual: tar -xf ../../systemd-man-pages-257.8.tar.xz \ --no-same-owner --strip-components=1 \ -C /usr/share/man Crie o arquivo /etc/machine-id necessitado pelo systemd-journald: systemd-machine-id-setup Configure a estrutura básica alvo: systemctl preset-all 8.76.2. Conteúdo do systemd Aplicativos instalados: busctl, coredumpctl, halt (link simbólico para systemctl), hostnamectl, init, journalctl, kernel-install, localectl, loginctl, machinectl, mount.ddi (link simbólico para systemd-dissect), 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-ac-power, systemd-analyze, systemd-ask-password, systemd-cat, systemd-cgls, systemd-cgtop, systemd-confext (link simbólico para systemd-sysext), 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-257.8.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-257.8, /usr/share/factory, /usr/share/systemd, /var/lib/systemd e /var/log/journal Descrições Curtas busctl É usado para introspecção e monitoramento do barramento D-Bus coredumpctl É usado para recuperar despejos da memória principal 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 núcleo 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 depois que o núcleo tenha inicializado o hardware; init assume o processo de inicialização e inicia os processos especificados pelos 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 núcleo e de initramfs para e de /boot; no LFS, isso é feito manualmente localectl É usado para consultar e mudar as configurações de locale e esquema de 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 do Container Registration Manager do systemd networkctl É usado para introspectar e configurar o estado dos links da rede de comunicação configurados pelo systemd-networkd oomctl Controla o processo de segundo plano Out Of Memory do systemd portablectl É usado para anexar ou desanexar serviços portáveis a partir do sistema local poweroff Instrui o núcleo a parar o sistema e desligar o computador (veja-se halt) reboot Instrui o núcleo a reinicializar o sistema (veja-se halt) resolvconf Registra a configuração do servidor de DNS e domínio com systemd-resolved resolvectl Envia comandos de controle para o gerenciador de resolução de nome da rede de comunicação 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 registro mais recente do nível de execução em /run/utmp shutdown Desativa o sistema de uma maneira segura e protegida, sinalizando para todos os processos e notificando todos(as) os(as) usuários(as) logados(as) systemctl É usado para introspectar e controlar o estado do gerenciador de sistema e serviço do systemd systemd-ac-power Informa se o sistema está conectado a uma fonte externa de eletricidade. systemd-analyze É usado para analisar o desempenho da inicialização do sistema, bem como para identificar unidades problemáticas do systemd systemd-ask-password É usado para consultar uma palavra secreta ou frase secreta do sistema a partir do(a) usuário(a), usando uma mensagem especificada na linha de comando do Linux systemd-cat É usado para conectar as saídas geradas STDOUT e STDERR de um processo com o diário do systemd systemd-cgls Recursivamente mostra o conteúdo da hierarquia do grupo de controle selecionado do Linux em uma árvore systemd-cgtop Mostra os grupos de controle superiores da hierarquia do grupo de controle local do Linux, 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 os padrões em /usr systemd-detect-virt Detecta se o sistema está sendo executado em um ambiente virtual e ajusta o Udev de acordo systemd-dissect É usado para inspecionar imagens de disco de SO systemd-escape É usado para escapar sequências de caracteres para inclusão em nomes de unidade do systemd systemd-hwdb É usado para gerenciar a base de dados de hardware (hwdb) systemd-id128 Gera e imprime sequências de caracteres id128 (UUID) 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 do sistema até que o processo seja completado systemd-machine-id-setup É usado por ferramentas de instalador do 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 montar temporariamente ou automontar discos systemd-notify É usado por scripts do processo de segundo para notificar o sistema init acerca de mudanças de situação systemd-nspawn É usado para executar um comando ou um OS inteiro, em um contêiner de espaço de nome peso leve systemd-path É usado para consultar caminhos de sistema e usuário(a) systemd-repart É usado para aumentar e adicionar partições à uma tabela de partição quando o systemd for usado com uma imagem de SO (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 transitória .service ou uma .scope 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 depois de 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 diretórios tmpfiles.d systemd-umount Desmonta pontos de montagem systemd-tty-ask-password-agent É usado para listar e (ou) processar solicitações pendentes de senha do systemd telinit Informa ao init para qual nível de execução mudar timedatectl É usado para consultar e mudar o relógio do sistema e as configurações dele udevadm É uma ferramenta genérica de administração do Udev que controla o processo de segundo plano udevd, fornece informação a partir da base 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.77. D-Bus-1.16.2 D-Bus é um sistema de barramento de mensagem, uma maneira simples para aplicativos conversarem entre si. D-Bus fornece ambos um processo de segundo plano de sistema (para eventos tais como "novo dispositivo de hardware adicionado" ou "fila de impressora mudou") e um processo de segundo plano de sessão de login de usuário(a) (para necessidades gerais de IPC entre aplicativos de usuário(a)). Também, o barramento de mensagem é construído no topo de uma estrutura geral de envio de mensagem um-a-um, a qual pode ser usada por quaisquer dois aplicativos para se comunicarem diretamente (sem transitar pelo processo de segundo plano do barramento de mensagem). Tempo aproximado de construção: 0,1 UPC Espaço em disco exigido: 17 MB 8.77.1. Instalação do D-Bus Prepare D-Bus para compilação: mkdir build cd build meson setup --prefix=/usr --buildtype=release --wrap-mode=nofallback .. O significado das opções do meson: --wrap-mode=nofallback Essa chave impede que o meson tente baixar uma cópia do pacote Glib para os testes. Compile o pacote: ninja Para testar os resultados, emita: ninja test Muitos testes são desabilitados, pois eles exigem pacotes adicionais que não estão inclusos no LFS. Instruções para executar a suíte completa de teste podem ser encontradas no [656]livro BLFS. Instale o pacote: ninja 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.77.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.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.16.2 e /var/lib/dbus Descrições Curtas dbus-cleanup-sockets é usado para remover soquetes restantes em um diretório dbus-daemon É o processo de segundo plano do barramento de mensagem do D-Bus dbus-launch inicia dbus-daemon a partir de um conjunto de comandos sequenciais de shell dbus-monitor monitora mensagens transitando ao longo de um barramento de mensagem do D-Bus dbus-run-session inicia uma instância de barramento de sessão do dbus-daemon a partir de um conjunto de comandos sequenciais de shell e inicia um programa 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.78. Man-DB-2.13.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: 44 MB 8.78.1. Instalação do Man-DB Prepare Man-DB para compilação: ./configure --prefix=/usr \ --docdir=/usr/share/doc/man-db-2.13.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 do configure: --disable-setuid Isso desabilita tornar o aplicativo man setuid para o(a) usuário(a) man. --enable-cache-owner=bin Isso muda a propriedade dos arquivos de cache de abrangência ao sistema para o(a) usuário(a) bin. --with-... Esses três parâmetros são usados para configurar alguns aplicativos padrão. lynx é um navegador da web baseado em texto (veja-se o BLFS para instruções de instalação); vgrind converte fontes de aplicativo para entrada gerada 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 do BLFS, mas você deveria ser capaz de instalá-los você mesmo(a) depois de terminar o LFS, se desejar fazer isso. Compile o pacote: make Para testar os resultados, emita: make check Instale o pacote: make install 8.78.2. Páginas de Manual não inglesas no LFS A seguinte tabela mostra o conjunto de caracteres que o Man-DB supõe que as páginas de manual instaladas sob /usr/share/man/ estarão codificadas. Em adição a isso, o Man-DB determina corretamente se páginas de manual instaladas naquele diretório estão codificadas em UTF-8. Tabela 8.1. Codificação de caracteres esperada das páginas de manual legadas de 8 bits 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 Grego (el) ISO-8859-7 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 Nota Páginas de manual em idiomas que não estão na lista não são suportadas. 8.78.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.13.1 Descrições Curtas accessdb Despeja o conteúdo da base de dados whatis em formato legível por humanos apropos Pesquisa na base 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 a respeito de 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 a base 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 do(a) usuário(a) whatis Pesquisa na base de dados whatis e exibe as descrições curtas de comandos do sistema que contenham 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.79. Procps-ng-4.0.5 O pacote Procps-ng contém aplicativos para monitorar processos. Tempo aproximado de construção: 0,1 UPC Espaço em disco exigido: 28 MB 8.79.1. Instalação do Procps-ng Prepare procps-ng para compilação: ./configure --prefix=/usr \ --docdir=/usr/share/doc/procps-ng-4.0.5 \ --disable-static \ --disable-kill \ --enable-watch8bit \ --with-systemd O significado da opção de configure: --disable-kill Essa chave desabilita a construção do comando kill; ele será instalado a partir do pacote Util-linux. --enable-watch8bit Essa chave habilita o suporte ncursesw para o comando watch, de forma que ele consiga manusear caracteres de 8 bits. Compile o pacote: make Para executar a suíte de teste, execute: chown -R tester . su tester -c "PATH=$PATH make check" Um teste chamado ps com sinalizador de saída bsdtime,cputime,etime,etimes é conhecido por falhar se o núcleo do anfitrião não for construído com CONFIG_BSD_PROCESS_ACCT habilitado. Além disso, um teste pgrep possivelmente falhe no ambiente chroot. Instale o pacote: make install 8.79.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: libproc-2.so Diretórios instalados: /usr/include/procps e /usr/share/doc/procps-ng-4.0.5 Descrições Curtas free Informa a quantidade de memória livre e usada (ambas memória física e de troca) no sistema pgrep Procura por processos baseado nos nomes deles e outros atributos pidof Informa os PIDs dos aplicativos dados pkill Sinaliza processos baseado nos nomes deles e outros atributos pmap Informa o mapeamento de memória do processo dado ps Lista os processos em execução atualmente pwdx Informa o diretório atual de trabalho de um processo slabtop Exibe informação detalhada do cache slab do núcleo em tempo real sysctl Modifica parâmetros do núcleo em tempo de execução tload Imprime um gráfico da média atual da carga do sistema top Exibe uma lista dos processos mais intensivos da CPU; ele fornece uma visão contínua da atividade do processador em tempo real uptime Informa há quanto tempo o sistema está executando, quantos(as) usuários(as) estão logados(as) e as médias de carga do sistema vmstat Informa estatísticas de memória virtual, dando informação a respeito de processos, memória, paginação, Entrada/Saída (E/S) de bloco, armadilhas e atividade da CPU w Mostra quais usuários(as) estão atualmente logados(as), onde e desde quando watch Executa um comando dado repetidamente, exibindo a primeira tela cheia da saída gerada dele; isso permite que um(a) usuário(a) observe a mudança de saída gerada ao longo do tempo libproc-2 Contém as funções usadas pela maioria dos aplicativos nesse pacote 8.80. Util-linux-2.41.1 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: 0,5 UPC Espaço em disco exigido: 346 MB 8.80.1. Instalação do Util-linux Prepare o Util-linux para compilação: ./configure --bindir=/usr/bin \ --libdir=/usr/lib \ --runstatedir=/run \ --sbindir=/usr/sbin \ --disable-chfn-chsh \ --disable-login \ --disable-nologin \ --disable-su \ --disable-setpriv \ --disable-runuser \ --disable-pylibmount \ --disable-liblastlog2 \ --disable-static \ --without-python \ ADJTIME_PATH=/var/lib/hwclock/adjtime \ --docdir=/usr/share/doc/util-linux-2.41.1 As opções --disable e --without impedem avisos acerca de construir componentes que ou exigem pacotes ausentes no LFS ou são inconsistentes com aplicativos instalados por outros pacotes. Compile o pacote: make Se desejado, crie um arquivo fictício /etc/fstab para satisfazer dois testes e execute a suíte de teste como um(a) usuário(a) não-root: Atenção Executar a suíte de teste como o(a) usuário(a) root pode ser danoso para o seu sistema. Para executá-lo, a opção CONFIG_SCSI_DEBUG para o núcleo precisa estar disponível no sistema em execução atualmente e precisa ser construída como um módulo. Construí-la dentro do núcleo impedirá a inicialização. Para cobertura completa, outros pacotes do BLFS precisam ser instalados. Se desejado, esse teste pode ser executado reinicializando-se no sistema completo LFS e executando: bash tests/run.sh --srcdir=$PWD --builddir=$PWD touch /etc/fstab chown -R tester . su tester -c "make -k check" Os testes de hardlink falharão se o núcleo do anfitrião não tiver a opção CONFIG_CRYPTO_USER_API_HASH habilitada ou não tiver quaisquer opções fornecendo uma implementação SHA256 (por exemplo, CONFIG_CRYPTO_SHA256; ou CONFIG_CRYPTO_SHA256_SSSE3, se a CPU suportar Suplemento SSE3) habilitada. Além disso, o teste lsfd: inotify falhará se a opção de núcleo CONFIG_NETLINK_DIAG não estiver habilitada. Um teste, kill: decode functions, é conhecido por falhar com bash-5.3-rc1 ou mais recente. Instale o pacote: make install 8.80.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, hardlink, hexdump, hwclock, i386 (link para setarch), ionice, ipcmk, ipcrm, ipcs, irqtop, isosize, kill, last, lastb (link para last), ldattach, linux32 (link para setarch), linux64 (link para setarch), logger, look, losetup, lsblk, lscpu, lsipc, lsirq, lsfd,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, swapon, switch_root, taskset, uclampset, ul, umount, uname26 (link para setarch), unshare, utmpdump, uuidd, uuidgen, uuidparse, wall, wdctl, whereis, wipefs, x86_64 (link para setarch) 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.41.1 e /var/lib/hwclock Descrições Curtas addpart Informa ao núcleo Linux das 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 É usado para gerenciar dispositivos zoneados de armazenamento de bloco blockdev Permite a usuários(as) chamarem 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 placares OOM-Killer, usados para determinar quais processos matar primeiro quando o Linux estiver Fora da Memória chrt Manipula atributos de tempo real de um processo col Filtra feeds de linha reversa colcrt Filtra saída gerada do nroff para terminais que carecem de alguns recursos, 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 rígida ou uma flexível delpart Pede ao núcleo Linux para remover uma partição dmesg Despeja as mensagens de inicialização do núcleo 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, ou pelo rótulo ou pelo 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 FIFREEZE/FITHAW do controlador ioctl de núcleo fstrim Descarta blocos não usados em um sistema de arquivos montado getopt Analisa opções na linha de comando dada hardlink Consolida arquivos duplicados criando links rígidos hexdump Despeja o arquivo dado em hexadecimal, decimal, octal ou ASCII hwclock Lê ou configura o relógio de hardware do sistema, também chamado de Real-Time Clock (RTC) ou de 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 dado recurso de Inter-Process Communication (IPC) ipcs Fornece informação de situação de IPC irqtop Exibe informação de contador de interrupção do núcleo em visão estilo "[657]top(1)" isosize Informa o tamanho de um sistema de arquivos iso9660 kill Envia sinais para processos last Mostra quais usuários(as) logaram-se (e deslogaram-se) mais recentemente, pesquisando de volta ao longo do arquivo /var/log/wtmp; ele também mostra inicializações do sistema, desligamentos e mudanças de nível de execução lastb Exibe as tentativas falhas de login, 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ção a respeito de todos ou de dispositivos de bloco selecionados em um formato semelhante a árvore lscpu Imprime informação de arquitetura da CPU lsfd Exibe informação a respeito de arquivos abertos; substitui o lsof lsipc Imprime informação acerca de facilidades de IPC empregadas atualmente no sistema lsirq Exibe informação do contador de interrupção do núcleo lslocks Lista travas locais de sistema lslogins Lista informação acerca de contas de usuários(as), de grupos e de 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 outros(as) usuários(as) podem enviar mensagens para o terminal atual do(a) usuário(a) 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 caminhos dados nsenter Executa um aplicativo com espaços de nome de outros processos partx Informa ao núcleo a respeito da 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 núcleo 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 núcleo Linux para redimensionar uma partição rev Inverte as linhas de um arquivo dado rfkill 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ção de tempo setarch Muda a arquitetura informada 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ário(a) único(a) swaplabel Faz mudanças para 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 de 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(a) ancestral utmpdump Exibe o conteúdo do arquivo de login dado em um formato amigável para o(a) usuário(a) uuidd Um processo de segundo plano 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" é um número aleatório considerado ser único entre todos os "UUIDs" criados, no sistema local e em outros sistemas, no passado e no futuro, com probabilidade extremamente alta (2^128 "UUIDs" são possíveis) uuidparse Um utilitário para analisar identificadores únicos wall Exibe o conteúdo de um arquivo ou, por padrão, a entrada gerada padrão dele, nos terminais de todos(as) os(as) usuários(as) logados(as) atualmente wdctl Mostra a situação do vigilante de hardware whereis Informa o local do binário, fonte e arquivos de 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 gerada de tela em forma tabular libuuid Contém rotinas para gerar identificadores únicos para objetos que possivelmente sejam acessíveis além do sistema local 8.81. E2fsprogs-1.47.3 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: 2,4 UPC em um disco rotatório, 0,5 UPC em um SSD Espaço em disco exigido: 100 MB 8.81.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 do configure: --enable-elf-shlibs Isso cria as bibliotecas compartilhadas as quais alguns aplicativos nesse pacote usam. --disable-* Isso evita construir e instalar as bibliotecas libuuid e libblkid, o processo de segundo plano uuidd e o encapsulador fsck; util-linux instala versões mais recentes. Compile o pacote: make Para executar os testes, emita: make check Um teste chamado m_assume_storage_prezeroed é conhecido por falhar. Outro teste chamado m_rootdir_acl é conhecido por falhar se o sistema de arquivos usado para o sistema LFS não for ext4. 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 abrangente ao 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 emitindo 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.81.2. Configurando o E2fsprogs /etc/mke2fs.conf contém o valor padrão de várias opções de linha de comando do mke2fs. Você possivelmente edite o arquivo para tornar os valores padrão convenientes para as tuas necessidades. Por exemplo, alguns utilitários (não no LFS ou no BLFS) não conseguem reconhecer um sistema de arquivos ext4 com o recurso metadata_csum_seed habilitado. Se você precisar de tal utilitário, você possivelmente remova o recurso da lista padrão de recurso do ext4 com o comando: sed 's/metadata_csum_seed,//' -i /etc/mke2fs.conf Leia-se a página de manual "[658]mke2fs.conf(5)" para detalhes. 8.81.3. 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 ruins chattr Muda os atributos de arquivos em sistemas de arquivos ext{234} compile_et Um compilador de tabela de erro; ele converte uma tabela de nomes e mensagens dos códigos de erros 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 sistemas de arquivos ext{234} dumpe2fs Imprime a informação de superblocos e de grupo de blocos para o sistema de arquivos presente em um dispositivo dado e2freefrag Informa informação de fragmentação de espaço livre e2fsck É usado para verificar e opcionalmente reparar sistema de arquivos ext{234} e2image É usado para salvar dados críticos do sistema de arquivos ext{234} para um arquivo e2label Exibe ou muda o rótulo do sistema de arquivos no sistema de arquivos ext{234} em um dispositivo dado e2mmpstatus Verifica a situação da MMP (Multiple Mount Protection) 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} para erros e2undo Repete o registro de desfazer para um sistema de arquivos ext[234} 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 do sistema de arquivos ext4 e4defrag Desfragmentador em linha para sistema de arquivos ext4 filefrag Informa o quão mau fragmentado um arquivo específico pode estar fsck.ext2 Por padrão verifica sistemas de arquivo ext2 e é um link rígido para e2fsck fsck.ext3 Por padrão verifica sistemas de arquivo ext3 e é um link rígido para e2fsck fsck.ext4 Por padrão verifica sistemas de arquivo ext4 e é um link rígido para e2fsck logsave Salva a saída gerada de um comando em um arquivo de registro lsattr Lista os atributos de arquivos em um sistema de arquivos segundo 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 ext{234} no dispositivo dado mkfs.ext2 Por padrão cria sistemas de arquivos ext2 e é um link rígido para mke2fs mkfs.ext3 Por padrão cria sistemas de arquivos ext3 e é um link rígido para mke2fs mkfs.ext4 Por padrão cria sistemas de arquivos ext4 e é um link rígido para mke2fs mklost+found Cria um diretório lost+found em um sistema de arquivos ext{234}; ele pré-aloca blocos de disco para esse diretório para facilitar a tarefa do e2fsck resize2fs Pode ser usado para alargar ou estreitar sistema de arquivos ext{234} tune2fs Ajusta parâmetros ajustáveis do sistema de arquivos em sistema de arquivos ext{234} 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ário(a) para manipular sistemas de arquivos ext{234} libss Usado por debugfs 8.82. Acerca dos Símbolos de Depuração A maioria dos aplicativos e bibliotecas é, por padrão, compilado com símbolos de depuração inclusos (com a 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 consegue fornecer não apenas endereços de memória, mas também os nomes das rotinas e variáveis. A inclusão desses símbolos de depuração alarga um aplicativo ou biblioteca significativamente. Aqui estão dois exemplos 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 (60% menor) * Arquivos da Glibc e do GCC (/lib e /usr/lib) com símbolos de depuração: 87 MB * Arquivos da Glibc e do GCC sem símbolos de depuração: 16 MB (82% menor) Os tamanhos variarão dependendo de qual compilador e biblioteca C foi usado, porém um aplicativo que tenha sido despojado dos símbolos de depuração usualmente é algo como 50% a 80% menor que o homônimo não despojado dele. Como a maioria dos(as) usuários(as) nunca usará um depurador no software do sistema deles(as), um monte de espaço em disco pode ser recuperado removendo-se esses símbolos. A próxima seção mostra como despojar todos os símbolos de depuração dos aplicativos e bibliotecas. 8.83. Despojando Esta seção é opcional. Se o(a) pretenso(a) usuário(a) não for um(a) programador(a) e não planeja fazer qualquer depuração do software do sistema, [então] o tamanho do sistema pode ser reduzido em cerca de 2 GB removendo-se os símbolos de depuração, e algumas entradas desnecessárias da tabela de símbolo, de binários e de bibliotecas. Isso não causa nenhum inconveniente real para um(a) usuário(a) típico(a) do Linux. A maioria das pessoas que usa os comandos mencionados abaixo não experiencia quaisquer dificuldades. Entretanto, é fácil cometer um erro e tornar o novo sistema inutilizável. Portanto, antes de executar os comandos strip, é uma boa ideia produzir uma cópia de segurança do sistema LFS no estado atual dele. Um comando strip com a opção --strip-unneeded remove todos os símbolos de depuração de um binário ou biblioteca. Ele também remove todas as entradas da tabela de símbolos normalmente não necessárias para o lincador (para bibliotecas estáticas) ou lincador dinâmico (para binários lincados dinamicamente e bibliotecas compartilhadas). Usar --strip-debug não remove entradas da tabela de símbolos que podem ser necessárias para alguns aplicativos. A diferença entre unneeded e debug é muito pequena. Por exemplo, uma libc.a não despojada tem 22,4 MB. Depois de despojada com --strip-debug, ela tem 5,9 MB. Usar --strip-unneeded somente reduz o tamanho para 5,8 MB. Os símbolos de depuração oriundos de bibliotecas selecionadas são comprimidos com Zstd e preservados em arquivos separados. Essa informação de depuração é necessária para se executar testes de regressão com [659]valgrind ou [660]gdb posteriormente, no BLFS. Observe que o strip sobrescreverá o binário ou arquivo de biblioteca que ele estiver processando. Isso pode quebrar os processos usando código ou dados oriundos do arquivo. Se o processo executando o strip for afetado, [então] o binário ou biblioteca sendo despojado pode ser destruído; isso pode tornar o sistema completamente inutilizável. Para evitar esse problema, nós copiamos algumas bibliotecas e binários para /tmp, despojamos elas lá e as reinstalamos com o comando install. (A entrada relacionada em [661]Seção 8.2.1, “Problemas de Atualização” dá 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, excluindo qualquer coisa terminada com g, no caso dos comandos abaixo já tiverem sido executados. Importante Se existir algum pacote cuja versão seja diferente da versão especificada pelo livro (ou seguindo um aviso de segurança ou satisfazendo preferência pessoal), [então] possivelmente seja necessário atualizar o nome de arquivo da biblioteca em save_usrlib ou online_usrlib. Falhar em fazer isso possivelmente torne o sistema completamente inutilizável. save_usrlib="$(cd /usr/lib; ls ld-linux*[^g]) libc.so.6 libthread_db.so.1 libquadmath.so.0.0.0 libstdc++.so.6.0.34 libitm.so.1.0.0 libatomic.so.1.2.0" cd /usr/lib for LIB in $save_usrlib; do objcopy --only-keep-debug --compress-debug-sections=zstd $LIB $LIB.dbg cp $LIB /tmp/$LIB strip --strip-debug /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.45.so libsframe.so.2.0.0 libhistory.so.8.3 libncursesw.so.6.5 libm.so.6 libreadline.so.8.3 libz.so.1.3.1 libzstd.so.1.5.7 $(cd /usr/lib; find libnss*.so* -type f)" for BIN in $online_usrbin; do cp /usr/bin/$BIN /tmp/$BIN strip --strip-debug /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-debug /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-debug $i ;; esac done unset BIN LIB save_usrlib online_usrbin online_usrlib Um número grande de arquivos será sinalizado como erros, por causa do formato de arquivo deles não é reconhecido. Esses avisos podem ser seguramente ignorados. Eles indicam que aqueles arquivos são scripts, não binários. 8.84. Limpando Finalmente, limpe alguns arquivos extras deixados pela execução de testes: rm -rf /tmp/{*,.*} Existem também vários arquivos nos diretórios /usr/lib e /usr/libexec com uma extensão de nome de arquivo de .la. Esses são arquivos "libtool archive". Em um sistema moderno Linux, os arquivos .la da libtool somente são úteis para a libltdl. Nenhuma biblioteca no LFS é esperada ser carregada pela libltdl e é sabido que alguns arquivos .la conseguem quebrar construções de pacote do BLFS. Remova aqueles arquivos agora: find /usr/lib /usr/libexec -name \*.la -delete Para mais informação acerca de arquivos libtool archive, veja-se a [662]seção do BLFS "About Libtool Archive (.la) files". O compilador construído em [663]Capítulo 6 e [664]Capítulo 7 ainda está instalado parcialmente e não é mais necessário. Remova-o com: find /usr -depth -name $(uname -m)-lfs-linux-gnu\* | xargs rm -rf Finalmente, remova a conta temporária do(a) usuário(a) 'tester' criada no início do capítulo anterior. userdel -r tester __________________________________________________________________ O nome de uma biblioteca compartilhada é a sequência de caracteres codificada na entrada DT_SONAME da seção dinâmica ELF dela. Você consegue obtê-lo com o comando readelf -d | grep SONAME. Na maioria dos casos, ele é sufixado com .so., mas existem alguns casos em que ele contém vários números para versionamento (como libbz2.so.1.0); contém o número da versão antes do sufixo .so (como libbfd-2.45); ou não contém nenhum número de versão (por exemplo, libmemusage.so). Geralmente não existe correlação entre a versão do pacote e o(s) número(s) da versão no nome da biblioteca. 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 gerais de configuração necessários para configurar a rede de comunicação são apresentados. * [665]Seção 9.2, “Configuração Geral da Rede de Comunicação.” * [666]Seção 9.2.3, “Configurando o nome de dispositivo do sistema.” * [667]Seção 9.2.4, “Personalizando o Arquivo /etc/hosts.” Segundo, problemas que afetam a configuração adequada de dispositivos são discutidos. * [668]Seção 9.3, “Visão Geral do Manuseio de Dispositivo e de Módulo.” * [669]Seção 9.4, “Gerenciando Dispositivos.” Terceiro, configurar o relógio do sistema e esquema de teclado é mostrado. * [670]Seção 9.5, “Configurando o Relógio do Sistema.” * [671]Seção 9.6, “Configurando o Console do Linux.” Quarto, uma introdução breve aos scripts e arquivos de configuração usados quando o(a) usuário(a) se loga no sistema é apresentado. * [672]Seção 9.7, “Configurando a Localidade do Sistema.” * [673]Seção 9.8, “Criando o Arquivo /etc/inputrc.” E finalmente, configurar o comportamento do systemd é discutido. * [674]Seção 9.10, “Uso e Configuração do Systemd.” 9.2. Configuração Geral da Rede de Comunicação Esta seção somente se aplica se uma placa de rede de comunicação for para ser configurada. 9.2.1. Arquivos de Configuração da Interface da Rede de Comunicação Iniciando com a versão 209, o systemd embarca um processo de segundo plano de configuração da rede de comunicação chamado systemd-networkd o qual pode ser usado para configuração básica da rede de comunicação. Adicionalmente, desde a versão 213, resolução de nome DNS pode ser lidada por systemd-resolved no lugar de um arquivo estático /etc/resolv.conf. Ambos os serviços são habilitados por padrão. Nota Se você não usará o systemd-networkd para configuração da rede de comunicação (por exemplo, quando o sistema não estiver conectado à rede de comunicação ou você desejar usar outro utilitário, como o NetworkManager para configuração da rede de comunicação), [então] desabilite um serviço para evitar uma mensagem de erro durante a inicialização: systemctl disable systemd-networkd-wait-online 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, consultem-se as páginas de manual "[675]systemd-link(5)", "[676]systemd-netdev(5)" e "[677]systemd-network(5)". 9.2.1.1. Nomeando Dispositivo da Rede de Comunicação O Udev normalmente atribui nomes de interface da placa de rede de comunicação baseados em características físicas do sistema, tais como enp2s1. Se não tiver certeza acerca do que é o nome da sua interface, [então] você sempre pode executar ip link depois que tiver inicializado seu sistema. Nota Os nomes de interface dependem da implementação e configuração do processo de segundo plano Udev em execução no sistema. O processo de segundo plano Udev para o LFS (systemd-udevd, instalado na [678]Seção 8.76, “Systemd-257.8”), 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 somente uma interface de rede de comunicação para cada tipo de conexão. Por exemplo, o nome clássico de interface 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 clássicos ou personalizados da interface de rede de comunicação, [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 manual de nomenclatura, 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 melhor de nomenclatura para as tuas interfaces de rede de comunicação. Por exemplo: cat > /etc/systemd/network/10-ether0.link << "EOF" [Match] # Muda o endereço MAC conforme apropriado para o seu dispositivo de rede de comu nicação MACAddress=12:34:45:78:90:AB [Link] Name=ether0 EOF Veja-se "[679]systemd.link(5)" para mais informações. * Em "/boot/grub/grub.cfg", passe a opção "net.ifnames=0" na linha de comando do núcleo. 9.2.1.2. Configuração de IP Estático O comando abaixo cria um arquivo básico de configuração 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 de Domínios se você pretende usar um arquivo estático /etc/resolv.conf. 9.2.1.3. Configuração do DHCP O comando abaixo cria um arquivo básico de configuração para uma configuração de IPv4 do DHCP: 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 do(a) administrador(a) da rede de comunicação, 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 da rede de comunicação (exemplo: ppp, etc.); ou se usar qualquer tipo de resolvedor local (exemplo: bind, dnsmasq, unbound, etc.); ou qualquer outro aplicativo que gere um /etc/resolv.conf (exemplo: 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, emita o seguinte comando: systemctl disable systemd-resolved Quando usar o systemd-resolved para configuração do DNS, ele cria o arquivo /run/systemd/resolve/stub-resolv.conf. E, se /etc/resolv.conf não existir, [então] 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. Nota Se você quiser usar systemd-resolved para o sistema LFS, mas precisar acessar a Internet no ambiente chroot (por exemplo, para construir um pacote BLFS cujo processo de construção exige uma conexão com a Internet), crie o arquivo /etc/resolv.conf seguindo a configuração estática abaixo para o ambiente chroot, de forma que a resolução de nomes funcione no ambiente chroot. Quando você sair do ambiente chroot, remova-o de forma que systemd-resolved crie o linque simbólico na inicialização. 9.2.2.2. Configuração Estática do resolv.conf Se um /etc/resolv.conf estático for desejado, [então] crie-o executando o seguinte comando: cat > /etc/resolv.conf << "EOF" # Início do /etc/resolv.conf domain nameserver nameserver # Fim do /etc/resolv.conf EOF A declaração domain pode ser omitida ou substituída por uma declaração search. Veja-se a página de manual para resolv.conf para mais detalhes. Substitua pelo endereço de IP do servidor DNS mais apropriado para a sua configuração. Frequentemente existirá mais que uma entrada (exigências demandam servidores secundários para capacidade de substituto). Se você precisa ou quer somente um servidor DNS, [então] remova a segunda linha servidor de nome do arquivo. O endereço de IP também possivelmente seja um roteador na rede local de comunicação. Outra opção é a de 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 pelo 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 estáticos de IP, [então] você também precisará decidir acerca de um endereço de IP. A sintaxe para uma entrada de arquivo "hosts" é: Endereços_IP meuhost.exemplo.org apelidos 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 atribuídos de IP—a maioria dos(as) usuários(as) não tem isso), assegure-se de que o endereço de IP está no intervalo de endereço privado de IP da rede de comunicação. Intervalos válidos são: Intervalo de Endereço Privado de Rede 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. Se o computador for para estar visível para a Internet, [então] um "FQDN" válido pode ser o próprio nome de domínio ou uma sequência de caracteres resultante da concatenação de um prefixo (geralmente o nome do dispositivo) e o nome de domínio com um caractere “.”. E você precisa contactar o provedor de domínio para resolver o "FQDN" para seu endereço de IP público. Mesmo se o computador não estiver visível para a Internet, um "FQDN" ainda é necessário para determinados programas, tais como "MTAs", funcionarem corretamente. Um "FQDN" especial, localhost.localdomain, pode ser usado para essa finalidade. Crie o arquivo /etc/hosts usando o seguinte comando: cat > /etc/hosts << "EOF" # Começo /etc/hosts <192.168.0.2> [apelido1] [apelido2] ... ::1 ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters # Fim /etc/hosts EOF Os valores <192.168.0.2> e precisam ser mudados para usuários(as) ou exigências específicos(as) (se atribuído um endereço de IP por um(a) administrador(a) de rede de comunicação/sistema e a máquina estará conectada a uma rede existente de comunicação). 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 autoconfiguração de "IPv6" ou usando localhost.localdomain como o "FQDN". O "/etc/hostname" não contém entradas para "localhost", "localhost.localdomain" ou o nome do dispositivo (sem um domínio) porque eles são manuseados pelo módulo "NSS" "myhostname"; leia-se a página de manual "[680]nss-myhostname(8)" para detalhes. A entrada ::1 é o homônimo "IPv6" do 127.0.0.1 e representa a interface de "loopback" "IPv6". 9.3. Visão Geral do Manuseio de Dispositivo e de Módulo No [681]Capítulo 8, nós instalamos o processo de segundo plano Udev quando systemd foi construído. Antes de entrarmos nos detalhes referentes a como o Udev funciona, um histórico breve dos métodos anteriores de manuseio de dispositivos é oportuno. Sistemas Linux em geral tradicionalmente usavam um método estático de criação de dispositivo, pelo qual um grande número de nós de dispositivo era criado sob /dev (às 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 continha um número de chamadas ao aplicativo mknod com os números relevantes de dispositivo maior e menor para cada dispositivo possível que pudesse existir no mundo. Usando o método Udev, nós de dispositivo somente são criados para aqueles dispositivos que são detectados pelo núcleo. Esses nós de dispositivo são criados a cada vez que o sistema inicializa; eles serão armazenados em um sistema de arquivos devtmpfs (um sistema de arquivos virtuais 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 de 2000, um novo sistema de arquivos chamado devfs foi mesclado no núcleo 2.3.46 e foi tornado disponível durante as séries 2.4 de núcleos estáveis. Embora ele estivesse presente no próprio fonte do núcleo, esse método de criar dispositivos dinamicamente nunca recebeu suporte decisivo dos(as) desenvolvedores(as) centrais do núcleo. 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. Geralmente é aceito que, se nomes de dispositivo forem configuráveis, [então] a política de nomenclatura de dispositivo deveria ser escolhida pelos(as) administradores(as) do sistema e não imposta a eles(as) pelos(as) desenvolvedores(as). O sistema de arquivos devfs também sofria com algumas condições que eram inerentes ao projeto dele; essas não poderiam ser corrigidas sem uma revisão substancial do núcleo. O devfs ficou marcado como obsoleto por um longo tempo, e finalmente foi removido do núcleo em junho de 2006. Com o desenvolvimento da árvore do núcleo instável 2.5, liberada posteriormente como a série 2.6 dos núcleos estáveis, um novo sistema de arquivos virtuais chamado sysfs veio a existir. O trabalho do sysfs é o de fornecer informação a respeito da configuração de hardware do sistema para processos do espaço de usuário(a). Com essa representação visível ao espaço de usuário(a), tornou-se possível desenvolver um substituto de espaço de usuário(a) para o devfs. 9.3.2. Implementação do Udev 9.3.2.1. Sysfs O sistema de arquivos sysfs foi brevemente mencionado acima. Alguém possivelmente questione como o sysfs sabe a respeito dos dispositivos presentes em um sistema e quais números de dispositivo deveriam ser usados para eles. Controladores que tenham sido compilados internamente no núcleo registram os objetos deles em sysfs (devtmpfs internamente) assim que são detectados pelo núcleo. Para controladores compilados como módulos, o registro acontece quando o módulo for carregado. Assim que o sistema de arquivos sysfs for montado (em /sys), os dados os quais os controladores tenham registrado com sysfs ficam disponíveis para os processos de espaço de usuário(a) e para o 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 núcleo no sistema de arquivos devtmpfs. Qualquer controlador que deseje registrar um nó de dispositivo usará o devtmpfs (via núcleo do controlador) para fazê-lo. Quando uma instância do devtmpfs é montada em /dev, o nó de dispositivo inicialmente será exposto para o espaço de usuário(a) com um nome, permissões e proprietário(a) fixos. Pouco tempo depois, o núcleo 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ário(a) ou grupo deles, ou modificará a entrada interna (nome) de base de dados do udevd 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 esteja 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 possivelmente tenham apelidos construídos dentro deles. Apelidos são visíveis na saída gerada 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 o "Udev" causarão 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 correspondam 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-se abaixo para maneiras nas quais o carregamento de controladores indesejados pode ser evitado. O próprio núcleo também é capaz de carregar módulos para protocolos de rede de comunicação, sistemas de arquivos e suporte NLS sob demanda. 9.3.2.4. Lidando com Dispositivos Plugáveis a Quente/Dinâmicos Quando você pluga um dispositivo, como um reprodutor de MP3 Universal Serial Bus (USB), o núcleo 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 Núcleo Não é Carregado Automaticamente O Udev só carregará um módulo se ele tiver um apelido específico de 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-6.16.1, o 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 o Udev, execute modinfo com o nome do módulo como o argumento. Agora tente localizar o diretório do 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 corrigido posteriormente. Se não existir arquivo modalias no diretório relevante sob /sys/bus, [então] isso significa que os(as) desenvolvedores(as) do núcleo ainda não adicionaram suporte modalias para esse tipo de barramento. Com o Linux-6.16.1, esse é o caso com barramentos ISA. Espere que esse problema seja corrigido em versões posteriores do núcleo. O Udev não é destinado para carregar controladores “encapsuladores”, tais como snd-pcm-oss, e controladores de não hardware, tais como loop, de maneira alguma. 9.3.3.2. Um Módulo do Núcleo Não é Carregado Automaticamente e o Udev Não é Destinado para Carregá-lo Se o módulo “encapsulador” somente 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 o modprobe para carregar o encapsulador depois que 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 "[682]modprobe.d(5)" para mais informação a respeito da sintaxe e recursos do “softdep”. 9.3.3.3. O 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. O Udev Cria um Dispositivo Incorretamente ou Faz o 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) por fornecedor(a). 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 possivelmente seja outra manifestação do problema anterior. Se não, e sua regra usar atributos do sysfs, [então] isso possivelmente seja um problema de temporização do núcleo, a ser corrigido em núcleos posteriores. Por hora, você pode contorná-lo criando uma regra que aguarda o atributo usado do sysfs e o adiciona 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. O Udev Não Cria um Dispositivo Primeiro, esteja certo(a) de que o driver está construído internamente no núcleo ou já carregado como um módulo e que o Udev não está criando um dispositivo mal nomeado. Se um controlador do núcleo não exportar os dados dele para o sysfs, [então] o Udev carece da informação necessária para criar um nó de dispositivo. Isso é mais provável de acontecer com controladores terceirizados oriundos de fora da árvore do núcleo. Crie um nó de dispositivo estático em /usr/lib/udev/devices com os números maior/menor apropriados (veja-se o arquivo devices.txt dentro da documentação do núcleo ou a documentação fornecida pelo(a) fornecedor(a) do controlador terceirizado). O nó de dispositivo estático será copiado para /dev pelo udev. 9.3.3.7. A Ordem de Nomenclatura do Dispositivo Muda Aleatoriamente Depois de 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á “corrigido”. Você não deveria confiar nos nomes de dispositivos do núcleo sendo estáveis. Em vez disso, crie as tuas 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 gerada dos vários utilitários "*_id" instalados pelo "Udev". Veja-se a "[683]Seção 9.4, “Gerenciando Dispositivos”" e "[684]Seção 9.2, “Configuração Geral da Rede de Comunicação”" para exemplos. 9.3.4. Leitura Útil Documentação útil adicional está disponível nos seguintes sítios: * Uma implementação de espaço de usuário(a) do devfs [685]http://www.kroah.com/linux/talks/ols_2003_udev_paper/Reprint-K roah-Hartman-OLS2003.pdf * O Sistema de Arquivos sysfs [686]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 [687]Seção 9.3, “Visão Geral do Manuseio de Dispositivo e de Módulo,” a ordem na qual dispositivos com a mesma função aparecem em /dev é essencialmente aleatória. Por exemplo, se você tiver uma câmera web USB e um sintonizador de TV, às vezes /dev/video0 se referirá à câmera e /dev/video1 se referirá ao sintonizador; e às vezes depois de uma reinicialização a ordem mudará. Para todas as classes de hardware, exceto placas de som e placas de rede de intercomunicação, isso é corrigível criando-se regras do udev para criar links simbólicos persistentes. O caso das placas de rede de intercomunicação está abrangido separadamente na [688]Seção 9.2, “Configuração Geral da Rede de Comunicação,” e configuração de placa de som pode ser encontrado no [689]BLFS. Para cada um dos seus dispositivos que é provável ter esse problema (mesmo que o problema não exista em sua distribuição atual Linux), encontre o diretório correspondente sob /sys/class ou /sys/block. Para dispositivos de vídeo, isso possivelmente seja /sys/class/video4linux/videoX. Descubra os atributos que identificam o dispositivo de maneira única (geralmente, IDs de fornecedor(a) 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" # Links simbólicos persistentes para webcam e sintonizador 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 gerada 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. 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 fuso horário atual, emita: timedatectl set-timezone FUSO_HORÁRIO Você consegue 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 de Comunicação Iniciando com a versão 213, o systemd embarca um processo de segundo plano chamado systemd-timesyncd o qual pode ser usado para sincronizar a hora do sistema com servidores remotos do NTP. O processo de segundo plano não é destinado como um substituto para o bem estabelecido processo de segundo plano 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 processo de segundo plano systemd-timesyncd está habilitado por padrão. Se você desejar desabilitá-lo, [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 do console virtual e mapa de teclas do console. O serviço systemd-vconsole-setup lê o arquivo /etc/vconsole.conf para informação de configuração. Decida qual mapa de teclas e fonte de tela será usada. Vários HOWTOs específicos de idioma também podem ajudar com isso, veja-se [690]https://tldp.org/HOWTO/HOWTO-INDEX/other-lang.html. Examine a saída gerada de localectl list-keymaps para uma lista dos mapas válidos de teclas do console. Olhe no diretório /usr/share/consolefonts para fontes válidas de tela. 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 alternância de teclas 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. Usaremos C.UTF-8 como localidade para sessões interativas no console do Linux na [691]Seção 9.7, “Configurando a Localidade do Sistema.” As fontes do console fornecidas pelo pacote Kbd contendo os glifos para todos os caracteres provenientes das mensagens do aplicativo na localidade C.UTF-8 são LatArCyrHeb*.psfu.gz, LatGrkCyr*.psfu.gz, Lat2-Terminus16.psfu.gz e pancyrillic .f16.psfu.gz em /usr/share/consolefonts (as outras fontes de console fornecidas carecem de glifos de alguns caracteres, como as aspas esquerda/direita do Unicode e o Traço inglês do Unicode). Portanto, configure uma delas, por exemplo Lat2-Terminus16.psfu.gz como fonte padrão do console: echo FONT=Lat2-Terminus16 > /etc/vconsole.conf Um exemplo para um teclado e console alemão é dado abaixo: cat > /etc/vconsole.conf << "EOF" KEYMAP=de-latin1 FONT=Lat2-Terminus16 EOF Você consegue mudar o valor de KEYMAP em tempo de execução usando o utilitário localectl: localectl set-keymap MAPA 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 consegue 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 ESQUEMA [MODELO] [VARIANTE] [OPÇÕES] Para listar valores possíveis para os parâmetros do localectl set-x11-keymap, execute localectl com os parâmetros listados abaixo: list-x11-keymap-models Mostra os modelos conhecidos de mapeamento de teclado do X11. list-x11-keymap-layouts Mostra esquemas conhecidos de mapeamento de teclado do X11. list-x11-keymap-variants Mostra variantes conhecidas de mapeamento de teclado do X11. list-x11-keymap-options Mostra opções conhecidas de mapeamento de teclado do X11. Nota Usar quaisquer dos parâmetros listados acima exige o pacote XKeyboard-Config originário do BLFS. 9.7. Configurando a Localidade do Sistema Algumas variáveis de ambiente são necessárias para suporte ao idioma nativo. Configurá-las adequadamente resulta em: * A saída gerada de aplicativos sendo traduzida para seu idioma nativo * A 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 localidades não inglesas * A sequência de ordenação alfabética correta para o país * O apropriado tamanho padrão de papel * A formatação correta dos valores monetário, hora e data Substitua abaixo pelo código de duas letras para teu idioma desejado (por exemplo, en) e pelo código de duas letras para o país apropriado (por exemplo, GB). deveria ser substituído pelo mapa de caracteres canônico para a tua localidade escolhida. Modificadores opcionais, tais como @euro, também podem estar presentes. A lista de todas as localidades suportadas pela Glibc pode ser obtida executando-se 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 conseguem 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 uma localidade específica. Para determinar o nome canônico, execute o seguinte comando, onde é a saída gerada dada por locale -a para a tua localidade preferida (en_GB.iso88591 no nosso exemplo). LC_ALL= mapa de caracteres da localidade Para a localidade en_GB.iso88591, o comando acima imprimirá: ISO-8859-1 Isso resulta em uma configuração final de localidade de en_GB.ISO-8859-1. É importante que a localidade encontrada usando-se a heurística acima seja testada antes que seja adicionada aos arquivos de iniciaçã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 pela localidade, a moeda local, e o prefixo para discar antes do número de telefone para a finalidade de se alcançar o país. Se quaisquer dos comandos acima falhar com uma mensagem similar àquela mostrada abaixo, isso significa que tua localidade ou não foi instalada no Capítulo 8 ou não é suportada pela instalação padrão da Glibc. locale: Cannot set LC_* to default locale: No such file or directory Se isso acontecer, você deveria ou instalar a localidade desejada usando o comando localedef, ou considerar escolher uma localidade 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, possivelmente não necessariamente exibam quaisquer mensagens de erro) se o nome da localidade não corresponder às expectativas deles. Nesses casos, investigar-se como outras distribuições do Linux suportam tua localidade poderia fornecer alguma informação útil. Uma vez que as configurações adequadas de localidade tenham sido determinadas, crie o arquivo /etc/locale.conf: cat > /etc/locale.conf << "EOF" LANG=_.<@modificadores> EOF O aplicativo de shell /bin/bash (aqui chamado de “o shell”) usa uma coleção de arquivos de iniciação para ajudar a criar o ambiente para execução. Cada arquivo tem um uso específico e pode afetar o login e os ambientes interativos diferentemente. Os arquivos no diretório /etc fornecem configurações globais. Se arquivos equivalentes existirem no diretório inicial, eles poderão substituir as configurações globais. Um shell interativo de login é iniciado depois de um login bem-sucedido, usando /bin/login, lendo o arquivo /etc/passwd. Um shell interativo sem login é iniciado na linha de comando (por exemplo, [prompt]$/bin/bash). Um shell não interativo geralmente está presente quando um conjunto de comandos sequenciais de shell está em execução. Não é interativo porque está processando um conjunto de comandos sequenciais e não aguardando a entrada do(a) usuário(a) entre os comandos. Os shells de login geralmente não são afetados pelas configurações em /etc/locale.conf. Crie o /etc/profile para ler as configurações de localidade a partir de /etc/locale.conf e exportá-las, mas defina a localidade C.UTF-8 se executar no console do Linux (para evitar que aplicativos emitam caracteres que o console do Linux não consiga renderizar): cat > /etc/profile << "EOF" # Inicia /etc/profile for i in $(locale); do unset ${i%=*} done if [[ "$TERM" = linux ]]; then export LANG=C.UTF-8 else source /etc/locale.conf for i in $(locale); do key=${i%=*} if [[ -v $key ]]; then export $key fi done fi # Termina /etc/profile EOF Observe que você consegue 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="_.<@modificadores>" 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 gerada de locale. Apenas separe-as 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. As localidades C (padrão) e en_US (aquele recomendado para usuários(as) 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 de ordem alta configurado como caracteres inválidos. Esse é o porquê, por exemplo, do comando ls substitui-los por pontos de interrogação nessa localidade. Também, uma tentativa de enviar mensagem com tais caracteres a partir do Mutt ou do Pine resulta em mensagens de não conformidade com RFC sendo enviadas (o conjunto de caracteres na mensagem de saída é indicado como unknown 8-bit). É sugerido que você use a localidade C somente se 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 recursos de edição enquanto o(a) usuário(a) estiver digitando uma linha a partir do terminal. Ele funciona traduzindo entradas geradas do teclado em ações específicas. Readline é usada pelo Bash e pela maioria dos outros shells, bem como muitos outros aplicativos. A maioria das pessoas não necessita de funcionalidade específica de usuário(a), de forma que o comando abaixo cria um /etc/inputrc global usado por qualquer um(a) que se logue. Se posteriormente decidir que precisa sobrepor os padrões em uma base por usuário(a), [então] você pode criar um arquivo .inputrc no diretório lar do(a) usuário(a) com os mapeamentos modificados. Para mais informação a respeito de 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 os comentários não podem estar na mesma linha que os comandos. Crie o arquivo usando o seguinte comando: cat > /etc/inputrc << "EOF" # Início do /etc/inputrc # Modificado por Chris Lynn # Permite ao prompt de comando passar para a próxima linha set horizontal-scroll-mode Off # Habilita entrada gerada de 8 bits set meta-flag On set input-meta On # Desliga o despojamento do oitavo bit set convert-meta Off # Mantém o oitavo bit para exibir set output-meta On # nada, visível ou audível set bell-style none # Tudo do seguinte mapeia a sequência de escape do valor contido no # primeiro argumento para as funções específicas do readline "\eOd": backward-word "\eOc": forward-word # Para o console do Linux "\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 # Para o xterm "\eOH": beginning-of-line "\eOF": end-of-line # Para o Konsole "\e[H": beginning-of-line "\e[F": end-of-line # Fim do /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órios (/). Por exemplo, esse arquivo é consultado pelo chsh para determinar quando um(a) usuário(a) desprivilegiado(a) possa mudar o shell de login para a própria conta dele(a). Se o nome de comando não estiver listado, [então] o(a) usuário(a) terá negada a habilidade de mudar shells. É uma exigência para aplicativos, tais como GDM, o qual não povoa o navegador de face se ele não puder encontrar /etc/shells ou processos de segundo plano do FTP, os quais tradicionalmente proíbem acesso a usuários(as) com shells não incluídos nesse arquivo. cat > /etc/shells << "EOF" # Início do /etc/shells /bin/sh /bin/bash # Fim do /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 básicas do "systemd". O arquivo padrão tem todas as entradas comentadas com as configurações padrão indicadas. Esse arquivo é onde o nível de registro pode ser mudado, bem como algumas configurações básicas de registro. Veja-se a página de manual "[692]systemd-system.conf(5)" para detalhes a respeito de 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 possivelmente 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 sempre podem ser revistas usando-se o comando journalctl -b como o(a) usuário(a) 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-se 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 Automática de Arquivo 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 locais de configuração estão em "/etc/tmpfiles.d". Os arquivos em "/etc/tmpfiles.d" substituem os arquivos com o mesmo nome em "/usr/lib/tmpfiles.d". Veja-se a página de manual "[693]tmpfiles.d(5)" para detalhes do formato do arquivo. Observe que a sintaxe para os arquivos /usr/lib/tmpfiles.d/*.conf pode ser confusa. Por exemplo, a deleção padrão de arquivos 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, indica a criação de um sub volume com cotas, o qual realmente é aplicável somente 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 Padrão de Serviços 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 "[694]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 planos de shell 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 frequentemente usados: * systemctl list-units -t [--all]: lista os arquivos carregados de unidade do tipo serviço. * systemctl list-units -t [--all]: lista os arquivos carregados de unidade do tipo alvo. * systemctl show -p Wants : mostra todas as unidades que dependem do alvo multi-user. Alvos são arquivos especiais de unidade que são análogos a níveis de execução sob o SysVinit. * systemctl status : mostra a situação do serviço nome_serviç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 é manuseado com o systemd-journald (por padrão), em vez de um processo de segundo plano típico do Unix syslog. Você também pode adicionar um processo de segundo plano normal syslog 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 plano de registro de texto. Para auxiliar na análise do arquivo, o comando journalctl é fornecido. Aqui estão alguns exemplos dos comandos frequentemente usados: * 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 especificado de UNIDADE. * 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 aplicativo de segundo plano quebra. Em sistemas inicializados do systemd, o despejamento de núcleo é manuseado 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 frequentemente usados: * 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 [695]GDB. Despejos de núcleo possivelmente usem um monte de espaço em disco. O espaço máximo em disco 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 "[696]systemd-coredump(8)"; "[697]coredumpctl(1)"; e "[698]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ário(a) são finalizados quando uma sessão de usuário(a) 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 historicamente permissivo para um mais restritivo. O novo comportamento possivelmente 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ário(a). Existem três maneiras de habilitar processos persistentes para continuarem depois que uma sessão de usuário(a) for terminada. * Habilitar persistência de processo somente para usuários(as) selecionados(as): Usuários(as) normais tem permissão para habilitar persistência de processo com o comando loginctl enable-linger para os(as) próprios(as) usuários(as) deles(as). Administradores(as) do sistema podem usar o mesmo comando com um argumento user ao habilitar para um(a) usuário(a). Esse(a) usuário(a) consegue 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 seu(ua) usuário(a), [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ário(a) tenha terminado, porém quebra retrocompatibilidade com ferramentas como nohup e utilitários que usam daemon(). * Habilitar persistência de processo abrangente ao sistema: Você pode configurar KillUserProcesses=no em /etc/systemd/logind.conf para habilitar a persistência de processo globalmente para todos(as) os(as) usuários(as). Isso tem o benefício de deixar o método antigo disponível para todos(as) os(as) usuários(as) à 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 -D default-kill-user-processes=false ao comando meson para o systemd. Isso desabilita completamente a habilidade do systemd para finalizar processos de usuário(a) ao fim da 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 núcleo 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" # Início de /etc/fstab # sistema de arquivos ponto de montagem tipo opções despejo ordem do # fsck /dev/ / defaults 1 1 /dev/ swap swap pri=1 0 0 # Fim do /etc/fstab EOF Substitua ""; ""; e "" pelos valores apropriados para o sistema, por exemplo, "sda2"; "sda5"; e "ext4". Para detalhes a respeito dos seis campos nesse arquivo, veja-se "[699]fstab(5)". 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 núcleo o entenda. Isso funciona se a definição relevante de conjunto de caracteres (encontrada sob File systems -> Native Language Support quando da configuração do núcleo) tenha sido compilada no núcleo 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 arquivos sensível a maiúsculas e minúsculas. Para corrigir 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 a finalidade de montar unidades USB flash, um(a) usuário(a) 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ários(as) 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 arquivos insensível a maiúsculas e minúsculas) e a opção utf8 diz ao núcleo 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 padrão de página de código e iocharset para alguns sistemas de arquivos durante a configuração do núcleo. 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 existe maneira de especificar essas configurações para o sistema de arquivos NTFS em tempo de compilação do núcleo. 10.3. Linux-6.16.1 O pacote Linux contém o núcleo Linux. Tempo aproximado de construção: 0,4 - 32 UPC (tipicamente cerca de 2,5 UPC) Espaço em disco exigido: 1,7 - 14 GB (tipicamente cerca de 2,3 GB) 10.3.1. Instalação do Núcleo Construir o núcleo envolve uns poucos passos—configuração; compilação; e instalação. Leia-se o arquivo README na árvore do fonte do núcleo para métodos alternativos à maneira que este livro configura o núcleo. Importante Construir o núcleo Linux pela primeira vez é uma das tarefas mais desafiadoras no LFS. Acertar depende do hardware específico para o sistema alvo e de tuas necessidades específicas. Existem quase 12.000 itens de configuração que estão disponíveis para o núcleo, embora somente cerca de um terço deles sejam necessários para a maioria dos computadores. Os(As) editores(as) do LFS recomendam que os(as) usuários(as) não familiarizados(as) com esse processo sigam os procedimentos abaixo bastante de perto. O objetivo é o de obter um sistema inicial em um ponto onde você consiga se logar na linha de comando quando reinicializar posteriormente na [700]Seção 11.3, “Reinicializando o Sistema.” Nesse ponto, otimização e personalização não é um objetivo. Para informação geral a respeito da configuração do núcleo, veja-se [701]https://www.linuxfromscratch.org/hints/downloads/files/kernel-conf iguration.txt. Informação adicional acerca de configurar e construir o núcleo podem ser encontradas em [702]https://anduin.linuxfromscratch.org/LFS/kernel-nutshell/. Essas referências estão um pouco desatualizadas, mas ainda fornecem uma visão geral razoável do processo. Se tudo mais falhar, você consegue pedir ajuda na lista de discussão [703]lfs-support. Observe que a assinatura é exigida para a finalidade de que a lista evite mensagens indesejadas. Prepare para compilação executando o seguinte comando: make mrproper Isso garante que a árvore do núcleo esteja absolutamente limpa. A equipe do núcleo recomenda que esse comando seja emitido antes de cada compilação do núcleo. Não confie que a árvore do fonte esteja limpa depois de descompactar. Existem várias maneiras para configurar as opções do núcleo. Usualmente, isso é feito por meio de uma interface orientada por menus, por exemplo: make menuconfig O significado das variáveis opcionais de ambiente do make: LANG= LC_ALL= Isso estabelece a configuração da localidade para aquela usada no anfitrião. Isso possivelmente seja necessário para um adequado desenho de linha da interface ncurses do menuconfig em um console de texto UTF-8 do Linux. Se usada, assegure-se de substituir pelo valor da variável $LANG oriunda do teu 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 ncurses controlada por menu. Para outras (gráficas) interfaces, digite make help. Nota Um bom lugar de partida para configurar a configuração do núcleo é 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 os seguintes recursos ou o sistema poderia não funcionar corretamente ou inicializar de jeito nenhum: General setup ---> [ ] Compile the kernel with warnings as errors [WERROR] CPU/Task time and stats accounting ---> [*] Pressure stall information tracking [PSI] [ ] Require boot parameter to enable pressure stall information tracking ... [PSI_DEFAULT_DISABLED] < > Enable kernel headers through /sys/kernel/kheaders.tar.xz [IKHEADERS] [*] Control Group support ---> [CGROUPS] [*] Memory controller [MEMCG] [ /*] CPU controller ---> [CGROUP_SCHED] # This may cause some systemd features malfunction: [ ] Group scheduling for SCHED_RR/FIFO [RT_GROUP_SCHED] [ ] Configure standard kernel features (expert users) ---> [EXPERT] Processor type and features ---> [*] Build a relocatable kernel [RELOCATABLE] [*] Randomize the address of the kernel image (KASLR) [RANDOMIZE_BASE] General architecture-dependent options ---> [*] Stack Protector buffer overflow detection [STACKPROTECTOR] [*] Strong Stack Protector [STACKPROTECTOR_STRONG] [*] Networking support ---> [NET] Networking options ---> [*] TCP/IP networking [INET] <*> The IPv6 protocol ---> [IPV6] Device Drivers ---> Generic Driver Options ---> [ ] Support for uevent helper [UEVENT_HELPER] [*] Maintain a devtmpfs filesystem to mount at /dev [DEVTMPFS] [*] Automount devtmpfs at /dev, after the kernel mounted the rootfs ... [DEVTMPFS_MOUNT] Firmware loader ---> < /*> Firmware loading facility [FW_LOADER] [ ] Enable the firmware sysfs fallback mechanism ... [FW_LOADER_USER_HELPER] Firmware Drivers ---> [*] Export DMI identification via sysfs to userspace [DMIID] [*] Mark VGA/VBE/EFI FB as generic system framebuffer [SYSFB_SIMPLEFB] Graphics support ---> <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) ---> ... [DRM] [*] Display a user-friendly message when a kernel panic occurs ... [DRM_PANIC] (kmsg) Panic screen formatter [DRM_PANIC_SCREEN] Supported DRM clients ---> [*] Enable legacy fbdev support for your modesetting driver ... [DRM_FBDEV_EMULATION] Drivers for system framebuffers ---> <*> Simple framebuffer driver [DRM_SIMPLEDRM] Console display driver support ---> [*] Framebuffer Console support [FRAMEBUFFER_CONSOLE] File systems ---> [*] Inotify support for userspace [INOTIFY_USER] Pseudo filesystems ---> [*] Tmpfs virtual memory file system support (former shm fs) [TMPFS] [*] Tmpfs POSIX Access Control Lists [TMPFS_POSIX_ACL] Habilite alguns recursos adicionais se você estiver construindo um sistema de 64 bits. Se você estiver usando o menuconfig, habilite-as na ordem de CONFIG_PCI_MSI primeiro; então CONFIG_IRQ_REMAP; e finalmente CONFIG_X86_X2APIC, pois uma opção somente aparece depois que as dependências dela forem selecionadas. Processor type and features ---> [*] x2APIC interrupt controller architecture support [X86_X2APIC] Device Drivers ---> [*] PCI support ---> [PCI] [*] Message Signaled Interrupts (MSI and MSI-X) [PCI_MSI] [*] IOMMU Hardware Support ---> [IOMMU_SUPPORT] [*] Support for Interrupt Remapping [IRQ_REMAP] Se a partição para o sistema LFS estiver em um SSD NVME (isto é, o nó do dispositivo para a partição for /dev/nvme*, em vez de /dev/sd*), habilite o suporte a NVME ou o sistema LFS não inicializaria: Device Drivers ---> NVME Support ---> <*> NVM Express block device [BLK_DEV_NVME] Nota Embora "The IPv6 Protocol" não seja estritamente exigida, ela é altamente recomendada pelos(as) desenvolvedores(as) do systemd. Existem várias outras opções que possivelmente sejam desejadas, dependendo das exigências para o sistema. Para uma lista das opções necessárias para pacotes do BLFS, veja-se o [704]Índice do BLFS das Configurações do Núcleo. Nota Se teu hardware do anfitrião estiver usando UEFI e você desejar inicializar o sistema LFS com ela, você deveria ajustar alguma configuração do núcleo seguindo [705]a página do BLFS, mesmo se você usará o carregador de inicialização UEFI proveniente da distribuição anfitriã. A justificativa para os itens de configuração acima: Randomize the address of the kernel image (KASLR) Habilita ASLR para imagem do núcleo, para mitigar alguns ataques baseados em endereços fixos de dados ou código sensíveis no núcleo. Compile the kernel with warnings as errors Isso possivelmente cause falha de construção se o compilador e (ou) a configuração forem diferentes daqueles dos(as) desenvolvedores(as) do núcleo. Enable kernel headers through /sys/kernel/kheaders.tar.xz Isso exigirá cpio ao se construir o núcleo. cpio não é instalado pelo LFS. Configure standard kernel features (expert users) Isso fará com que algumas opções apareçam na interface de configuração, mas mudar essas opções possivelmente seja perigoso. Não use isso, a menos que você saiba o que está fazendo. Strong Stack Protector Habilita SSP para o núcleo. Nós o habilitamos para o espaço inteiro de usuário(a) com --enable-default-ssp ao configurar o GCC, porém o núcleo não usa a configuração padrão do GCC para SSP. Nós o habilitamos explicitamente aqui. Support for uevent helper Ter essa opção configurada possivelmente interfira com o gerenciamento de dispositivo quando se usar o Udev. Maintain a devtmpfs Isso criará nós automatizados de dispositivos, os quais são povoados pelo núcleo, 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 todos(as) os(as) usuários(as) do Udev. Automount devtmpfs at /dev Isso montará a visão do núcleo dos dispositivos em /dev assim que alternar para o sistema de arquivos raiz pouco antes de iniciar o init. Display a user-friendly message when a kernel panic occurs Isso fará com que o núcleo exiba corretamente a mensagem caso ocorra um pânico de núcleo e um controlador DRM em execução suporte fazer isso. Sem isso, seria mais difícil diagnosticar um pânico: se nenhum controlador DRM estiver em execução, nós estaríamos no console VGA que só pode conter 24 linhas e a mensagem relevante do núcleo frequentemente é descartada; se um controlador DRM estiver em execução, a exibição geralmente fica completamente bagunçada no pânico. A partir do Linux-6.12, nenhum dos controladores dedicados para modelos de GPU convencionais realmente suporta isso, mas é suportado pelo “Simple framebuffer driver” que executa no framebuffer VESA (ou EFI) antes do controlador de GPU dedicado ser carregado. Se o controlador de GPU dedicado for construído como um módulo (em vez de parte da imagem do núcleo) e nenhum initramfs for usado, essa funcionalidade funcionará perfeitamente antes que o sistema de arquivos raiz seja montado e já será suficiente para fornecer informações acerca da maioria dos erros de configuração do LFS que causam um pânico (por exemplo, uma configuração root= incorreta em [706]Seção 10.4, “Usando o GRUB para Configurar o Processo de Inicialização”). Panic screen formatter Configure esse kmsg para garantir que as últimas linhas de mensagens do núcleo sejam exibidas quando um pânico de núcleo acontecer. O padrão, user, faria o núcleo mostrar somente uma mensagem de pânico “amigável para o(a) usuário(a)”, o que não é útil no diagnóstico. A terceira opção, qr_code, faria o núcleo comprimir as últimas linhas de mensagens do núcleo em um código QR e exibi-lo. O código QR pode conter mais linhas de mensagens que texto simples e pode ser decodificado com um dispositivo externo (como um telefone inteligente). Mas exige um compilador Rust que o LFS não fornece. Mark VGA/VBE/EFI FB as generic system framebuffer e Simple framebuffer driver Esses permitem usar o framebuffer VESA (ou o framebuffer EFI se inicializar o sistema LFS via UEFI) como um dispositivo DRM. O framebuffer VESA será configurado pelo GRUB (ou o framebuffer EFI será configurado pelo firmware UEFI), de forma que o manuseador de pânico DRM consegue funcionar antes que o controlador DRM específico da GPU seja carregado. Enable legacy fbdev support for your modesetting driver e Framebuffer Console support Esses são necessários para exibir o console Linux em uma GPU controlada por um controlador DRI (Direct Rendering Infrastructure). Como CONFIG_DRM (Direct Rendering Manager) está habilitada, nós deveríamos habilitar essas duas opções também ou veremos uma tela em branco quando o controlador DRI for carregado. Support x2apic Suporta executar o controlador de interrupção dos processadores x86 de 64 bits em modo x2APIC. O x2APIC possivelmente seja habilitado por firmware em sistemas x86 de 64 bits e um núcleo sem essa opção habilitada dará pânico na inicialização se o x2APIC for habilitado por firmware. Essa opção não tem efeito, porém também não danifica, se o x2APIC for desabilitado pelo firmware. Alternativamente, make oldconfig possivelmente seja mais apropriado em algumas situações. Veja-se o arquivo README para mais informação. Se desejado, pule a configuração do núcleo copiando o arquivo de configuração do núcleo, .config, a partir do sistema anfitrião (assumindo que ele esteja disponível) para o diretório linux-6.16.1 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 núcleo a partir do zero. Compile a imagem do núcleo e módulos: make Se usar módulos do núcleo, a configuração do módulo em /etc/modprobe.d possivelmente seja exigida. Informação pertinente à configuração de módulos e núcleo está localizada na [707]Seção 9.3, “Visão Geral do Manuseio de Dispositivo e de Módulo” e na documentação do núcleo no diretório linux-6.16.1/Documentation. Também, [708]modprobe.d(5) possivelmente seja de interesse. A menos que o suporte a módulo tenha sido desabilitado na configuração do núcleo, instale os módulos com: make modules_install Depois que a compilação do núcleo estiver completa, passos adicionais são exigidos para completar a instalação. Alguns arquivos precisam ser copiados para o diretório /boot. Cuidado Se você tiver decidido usar uma partição /boot separada para o sistema LFS (talvez compartilhando uma partição /boot com a distribuição anfitriã), os arquivos copiados abaixo deveriam ir para lá. A maneira mais fácil de fazer isso é a de criar a entrada para /boot em /etc/fstab primeiro (leia-se a seção anterior para detalhes), então emitir o seguinte comando como o(a) usuário(a) root no ambiente chroot: mount /boot O caminho para o nó de dispositivo está omitido no comando, pois mount consegue lê-lo a partir de /etc/fstab. O caminho para a imagem do núcleo possivelmente 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-6.16.1-lfs-12.4-systemd System.map é um arquivo de símbolo para o núcleo. Ele mapeia os pontos de entrada de função de cada função na API do núcleo, bem como os endereços das estruturas de dados do núcleo para o núcleo em execução. Ele é usado como um recurso quando se investigar problemas do núcleo. Emita o seguinte comando para instalar o arquivo de mapa: cp -iv System.map /boot/System.map-6.16.1 O arquivo de configuração do núcleo .config produzido pelo passo make menuconfig acima contém todas as seleções de configuração para o núcleo que foi recém compilado. É uma boa ideia manter esse arquivo para futura referência: cp -iv .config /boot/config-6.16.1 Instale a documentação para o núcleo Linux: cp -r Documentation -T /usr/share/doc/linux-6.16.1 É importante observar que os arquivos no diretório do fonte do núcleo não são de propriedade do(a) root. Sempre que um pacote é desempacotado como o(a) usuário(a) root (como nós fizemos dentro do chroot), os arquivos tem os IDs de usuário(a) e de grupo do que quer que fossem no computador do(a) empacotador(a). 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ário(a) que o(a) empacotador(a) usou seja atribuído para alguém na máquina. Essa pessoa então teria acesso de escrita ao fonte do núcleo. Nota Em muitos casos, a configuração do núcleo precisará ser atualizada para pacotes que serão instalados posteriormente no BLFS. Diferente de outros pacotes, não é necessário remover a árvore do fonte do núcleo depois que o recém construído núcleo for instalado. Se a árvore do fonte do núcleo será mantida, [então] execute chown -R 0:0 no diretório linux-6.16.1 para assegurar que todos os arquivos sejam de propriedade do(a) usuário(a) root. Se você estiver atualizando a configuração e reconstruindo o núcleo a partir de uma árvore retida de fonte do núcleo, normalmente você não deveria executar o comando make mrproper. O comando expurgaria o arquivo .config e todos os arquivos .o provenientes da construção anterior. Apesar de ser fácil restaurar .config a partir da cópia em /boot, expurgar todos os arquivos .o ainda é um desperdício: para uma simples mudança de configuração, geralmente somente uns poucos arquivos .o precisam ser (re)construídos e o sistema de construção do núcleo ignorará corretamente outros arquivos .o se eles não forem expurgados. Por outro lado, se você tiver atualizado o GCC, você deveria executar make clean para expurgar todos os arquivos .o provenientes da construção anterior, ou a nova construção possivelmente falhe. Atenção Alguma documentação do núcleo recomenda criar um link simbólico a partir de /usr/src/linux apontando para o diretório do fonte do núcleo. Isso é específico para núcleos 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ê possivelmente deseje construir tão logo seu sistema base LFS esteja completo. 10.3.2. Configurando a Ordem de Carregamento de Módulo 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 o 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 sejam carregados na ordem correta; ehci_hcd precisa ser carregado antes de ohci_hcd e uhci_hcd para a finalidade de 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" # Inicia do /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 # Termina do /etc/modprobe.d/usb.conf EOF 10.3.3. Conteúdo do Linux Arquivos instalados: config-6.16.1, vmlinuz-6.16.1-lfs-12.4-systemd e System.map-6.16.1 Diretórios instalados: /lib/modules e /usr/share/doc/linux-6.16.1 Descrições Curtas config-6.16.1 Contém todas as seleções de configuração para o núcleo vmlinuz-6.16.1-lfs-12.4-systemd O motor do sistema Linux. Quando se liga o computador, o núcleo é 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-6.16.1 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 núcleo 10.4. Usando o GRUB para Configurar o Processo de Inicialização Nota Se teu sistema tiver suporte UEFI e você desejar inicializar o LFS com UEFI, você deveria ignorar as instruções nesta página, mas ainda assim aprender a sintaxe do grub.cfg e o método para especificar uma partição no arquivo a partir desta página e configurar o GRUB com suporte UEFI usando as instruções fornecidas na [709]página BLFS. 10.4.1. Introdução Atenção Configurar o GRUB incorretamente pode tornar teu sistema inoperável sem um dispositivo alternativo de inicialização, como um CD-ROM ou unidade USB inicializável. Esta seção não é exigida para inicializar teu sistema LFS. Você possivelmente queira apenas modificar teu 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 inusável (não inicializável). Se já não tiver um dispositivo de inicialização, você consegue criar um. Para a finalidade de que o procedimento abaixo funcione, você precisa saltar adiante para o BLFS e instalar xorriso oriundo do pacote [710]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. Os números da unidade rígida começam do zero, porém os números da partição começam do um para partições normais (do 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, essa segunda unidade rígida ainda seria (hd1). 10.4.3. Definindo a Configuração O GRUB funciona escrevendo dados na primeira trilha física do disco rígido. Essa área não é parte de nenhum sistema de arquivos. Os programas 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 do(a) usuário(a) que afeta a configuração. Uma recomendação é a de ter uma partição pequena (tamanho sugerido é 200 MB) separada somente para informações de inicialização. Dessa forma, cada construção, seja LFS ou alguma distribuição comercial, consegue acessar os mesmos arquivos de inicialização e o acesso consegue ser feito a partir de qualquer sistema inicializado. Se escolher fazer isso, você precisará montar a partição separada, mover todos os arquivos no diretório /boot atual (por exemplo, o núcleo Linux que você recém construiu na seção anterior) para a nova partição. Você então precisará desmontar a partição e remontá-la como /boot. Se você fizer isso, tenha certeza de atualizar /etc/fstab. Deixar /boot na partição LFS atual também funcionará, porém a configuração para múltiplos sistemas é mais complicada. Usando as informações 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(a) para gerenciar o Master Boot Record (MBR). grub-install /dev/sda Nota Se o sistema tiver sido inicializado usando UEFI, grub-install tentará instalar arquivos para o alvo x86_64-efi, porém aqueles arquivos não foram instalados no [711]Capítulo 8. Se esse for o caso, 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" # Inicia /boot/grub/grub.cfg set default=0 set timeout=5 insmod part_gpt insmod ext2 set root=(hd0,2) set gfxpayload=1024x768x32 menuentry "GNU/Linux, Linux 6.16.1-lfs-12.4-systemd" { linux /boot/vmlinuz-6.16.1-lfs-12.4-systemd root=/dev/sda2 ro } EOF Os comandos insmod carregam os módulos do GRUB chamados part_gpt e ext2. Apesar da nomenclatura, ext2 na verdade suporta sistemas de arquivos ext2, ext3 e ext4. O comando grub-install embutiu alguns módulos na imagem principal do GRUB (instalada no MBR ou na partição BIOS do GRUB) para acessar os outros módulos (em /boot/grub/i386-pc) sem um problema de galinha ou ovo, de modo que, com uma configuração típica, esses dois módulos já estão embutidos e esses dois comandos insmod não farão nada. Mas eles não causam danos de qualquer maneira e possivelmente sejam necessários com algumas configurações raras. O comando set gfxpayload=1024x768x32 configura a resolução e a profundidade de cor do framebuffer VESA a ser passado para o núcleo. Ele é necessário para o controlador SimpleDRM do núcleo usar o framebuffer VESA. Você pode usar um valor diferente de resolução ou de profundidade de cor que melhor se adeque para teu monitor. Nota A partir da perspectiva do GRUB, os arquivos do núcleo estão relativos à partição usada. Se você usou uma partição /boot separada, remova /boot da linha linux acima. Você também precisará mudar a linha set root para apontar para a partição de inicialização. Nota O designador do GRUB para uma partição possivelmente mude se você adicionou ou removeu alguns discos (incluindo discos removíveis, como dispositivos USB miniatura). A mudança possivelmente cause falha de inicialização, pois o grub.cfg se refere a alguns designadores “antigos”. Se desejar evitar tal problema, você possivelmente use o UUID de uma partição e o UUID de um sistema de arquivos, em vez de um designador do GRUB para especificar um dispositivo. Execute lsblk -o UUID,PARTUUID,PATH,MOUNTPOINT para exibir os UUIDs dos teus sistemas de arquivos (na coluna UUID) e partições (na coluna PARTUUID). Então substitua set root=(hdx,y) por search --set=root --fs-uuid ; e substitua root=/dev/sda2 por root=PARTUUID=. Observe que o UUID de uma partição é completamente diferente do UUID do sistema de arquivos nessa partição. Alguns recursos online possivelmente instruam você a usar o root=UUID=, em vez do root=PARTUUID=, porém fazer isso exigirá um initramfs, o qual está além do escopo do LFS. O nome do nó de dispositivo para uma partição em /dev também possivelmente mude (isso é menos provável que uma mudança do designador do GRUB). Você também pode substituir caminhos para nós de dispositivo, como /dev/sda1, por PARTUUID=, no /etc/fstab, para evitar uma potencial falha de inicialização no caso do nome do nó de dispositivo tiver mudado. O GRUB é um programa 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 gráficas de abertura; reprodução de sons; entrada gerada de mouse; etc. Os detalhes dessas opções estão além do escopo desta introdução. Cuidado Existe um comando, grub-mkconfig, que consegue 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 comercial do Linux, existe uma boa chance de que esse programa seja executado. Tenha certeza de produzir uma cópia de segurança do teu 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. Possivelmente 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 ajuda em algum ponto) descobrir qual versão do LFS está instalada no sistema. Crie esse arquivo executando: echo 12.4-systemd > /etc/lfs-release Dois arquivos descrevendo o sistema instalado possivelmente sejam usados por pacotes que podem ser instalados no sistema posteriormente, ou em forma de binário ou construindo-os. 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="12.4-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 gráficos de área de trabalho. Para criar esse arquivo, execute: cat > /etc/os-release << "EOF" NAME="Linux From Scratch" VERSION="12.4-systemd" ID=lfs PRETTY_NAME="Linux From Scratch 12.4-systemd" VERSION_CODENAME="" HOME_URL="https://www.linuxfromscratch.org/lfs/" RELEASE_TYPE="stable" EOF Tenha certeza de personalizar os campos 'DISTRIB_CODENAME' e 'VERSION_CODENAME' para tornar o sistema unicamente seu. 11.2. Seja Contado(a) Agora que você terminou o livro, você quer ser contado(a) como um(a) usuário(a) do LFS? Vá para [712]https://www.linuxfromscratch.org/cgi-bin/lfscounter.php e registre-se como um(a) usuário(a) 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, é tempo de reinicializar seu computador. Entretanto, ainda existem umas poucas coisas a verificar. Aqui estão algumas sugestões: * Instale qualquer [713]firmware necessário, se o controlador do núcleo para o seu hardware exigir alguns arquivos de firmware para funcionar adequadamente. * Certifique-se de que uma senha seja definida para o(a) usuário(a) root. * Uma revisão dos seguintes arquivos de configuração também é apropriada neste ponto. + /etc/fstab + /etc/hosts + /etc/inputrc + /etc/profile + /etc/resolv.conf (opcional) + /etc/vimrc 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 virtuais de arquivos: umount -v $LFS/dev/pts mountpoint -q $LFS/dev/shm && umount -v $LFS/dev/shm 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/home umount -v $LFS Desmonte o próprio sistema de arquivos do LFS: umount -v $LFS Agora, reinicialize o sistema. Assumindo que o carregador de inicialização GRUB foi configurado como destacado anteriormente, o menu está configurado para inicializar o LFS 12.4-systemd automaticamente. Quando a reinicialização estiver completa, o sistema LFS estará pronto para uso. O que você verá é um prompt simples “login: ”. Neste ponto, você pode prosseguir para [714]o Livro BLFS onde você pode adicionar mais software para atender às suas necessidades. Se a sua reinicialização não for bem-sucedida, é hora de solucionar o problema. Para dicas a respeito de como solucionar problemas iniciais da inicialização, veja-se [715]https://www.linuxfromscratch.org/lfs/troubleshooting.html. 11.4. Recursos Adicionais Obrigado por você ler este livro LFS. Nós esperamos que você tenha achado este livro útil e tenha aprendido mais a respeito do processo de criação do sistema. Agora que o sistema LFS está instalado, você possivelmente esteja questionando: “E agora?” Para responder a essa pergunta, nós compilamos uma lista de recursos para você. * Manutenção Defeitos e avisos de segurança são informados regularmente para todo software. Uma vez que um sistema LFS é compilado a partir do fonte, cabe a você se manter a par de tais informativos. Existem vários recursos online que rastreiam tais informativos, alguns dos quais estão mostrados abaixo: + [716]Avisos de Segurança do LFS Essa é uma lista de vulnerabilidades de segurança descobertas no livro LFS depois que ele é publicado. + [717]Lista de Discussão de Segurança de Código Aberto Essa é uma lista de discussão para discussão de falhas de segurança, conceitos e práticas na comunidade do Fonte Aberto. * Dicas do LFS As Dicas do LFS são uma coleção de documentos educacionais submetidos por voluntários(as) na comunidade do LFS. As dicas estão disponíveis em [718]https://www.linuxfromscratch.org/hints/downloads/files/. * Listas de discussão Existem várias listas de discussão do LFS que você possivelmente assine se estiver necessitado(a) de ajuda; quiser se manter atualizado(a) com os mais recentes desenvolvimentos; quiser contribuir para o projeto; e mais. Veja-se [719]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 [720]http://www.tldp.org/. 11.5. Começando Depois do LFS 11.5.1. Decidindo o que fazer a seguir Agora que o LFS está completo e você tem um sistema inicializável, o que você faz? O próximo passo é o de decidir como usá-lo. Geralmente, existem duas grandes categorias a considerar: estação de trabalho ou servidor. De fato, essas categorias não são mutuamente exclusivas. Os aplicativos necessários para cada categoria podem ser combinados em um sistema, mas vamos vê-los separadamente por enquanto. Um servidor é a categoria mais simples. Geralmente, isso consiste de um servidor da Web, como o [721]Servidor HTTP Apache e um servidor de base de dados, como [722]MariaDB. No entanto, outros serviços são possíveis. O sistema operacional embutido em um dispositivo de uso único se enquadra nessa categoria. Por outro lado, uma estação de trabalho é muito mais complexa. Geralmente exige um ambiente gráfico de usuário(a), como [723]LXDE, [724]XFCE, [725]KDE ou [726]Gnome, baseado em um [727]ambiente gráfico básico e vários aplicativos baseados em gráficos, como o [728]navegador da Web Firefox , [729]cliente de correio eletrônico Thunderbird ou [730]suíte de escritório LibreOffice. Esses aplicativos exigem muitos (várias centenas, dependendo dos recursos desejados) mais pacotes de aplicativos e bibliotecas de suporte. Além do acima, existe um conjunto de aplicativos para gerenciamento de sistemas para todos os tipos de sistemas. Esses aplicativos estão todos no livro BLFS. Nem todos os pacotes são necessários em cada ambiente. Por exemplo [731]dhcpcd, normalmente não é apropriado para um servidor e [732]wireless_tools, normalmente são úteis somente para um sistema de laptop. 11.5.2. Trabalhando em um ambiente básico do LFS Quando inicializa inicialmente no LFS, você tem todas as ferramentas internas para construir pacotes adicionais. Infelizmente, o ambiente de usuário(a) é bastante esparso. Existem algumas maneiras de melhorar isso: 11.5.2.1. Trabalhar a partir do anfitrião LFS em chroot Esse método fornece um ambiente gráfico completo onde um navegador completo e recursos de copiar/colar estão disponíveis. Esse método permite usar aplicativos, como a versão do anfitrião do Wget, para baixar os fontes do pacote para um local disponível ao se trabalhar no ambiente "chroot". Para a finalidade de construir adequadamente pacotes no chroot, você também precisará se lembrar de montar os sistemas virtuais de arquivos, se eles ainda não estiverem montados. Uma maneira de fazer isso é a de criar um script no sistema ANFITRIÃO: cat > ~/mount-virt.sh << "EOF" #!/bin/bash function mountbind { if ! mountpoint $LFS/$1 >/dev/null; then $SUDO mount --bind /$1 $LFS/$1 echo $LFS/$1 mounted else echo $LFS/$1 already mounted fi } function mounttype { if ! mountpoint $LFS/$1 >/dev/null; then $SUDO mount -t $2 $3 $4 $5 $LFS/$1 echo $LFS/$1 mounted else echo $LFS/$1 already mounted fi } if [ $EUID -ne 0 ]; then SUDO=sudo else SUDO="" fi if [ x$LFS == x ]; then echo "LFS not set" exit 1 fi mountbind dev mounttype dev/pts devpts devpts -o gid=5,mode=620 mounttype proc proc proc mounttype sys sysfs sysfs mounttype run tmpfs run if [ -h $LFS/dev/shm ]; then install -v -d -m 1777 $LFS$(realpath /dev/shm) else mounttype dev/shm tmpfs tmpfs -o nosuid,nodev fi #mountbind usr/src #mountbind boot #mountbind home EOF Observe que os últimos três comandos no script são comentados. Eles são úteis se aqueles diretórios forem montados como partições separadas no sistema anfitrião e serão montados quando inicializar o sistema LFS/BLFS completo. O script pode ser executado com bash ~/mount-virt.sh como ou um(a) usuário(a) comum (recomendado) ou como root. Se executado como um(a) usuário(a) comum, o sudo é exigido no sistema anfitrião. Outro problema apontado pelo script é o de onde armazenar os arquivos baixados do pacote. Esse local é arbitrário. Ele pode estar em um diretório lar de usuário(a) comum, como ~/sources ou em um local global, como /usr/src. Nossa recomendação é a de não misturar fontes BLFS e fontes LFS em (a partir do ambiente chroot) /sources. Em qualquer caso, os pacotes precisam estar acessíveis dentro do ambiente chroot. Um último recurso de conveniência apresentado aqui é o de simplificar o processo de entrada no ambiente chroot. Isso pode ser feito com um apelido colocado em um arquivo ~/.bashrc de usuário(a) no sistema anfitrião: alias lfs='sudo /usr/sbin/chroot /mnt/lfs /usr/bin/env -i HOME=/root TERM="$TERM " PS1="\u:\w\\\\$ " PATH=/usr/bin:/usr/sbin /bin/bash --login' Esse apelido é um pouco complicado, por causa das aspas e dos níveis dos caracteres de barra invertida. Precisa estar tudo em uma linha. O comando acima foi dividido em dois para propósitos de apresentação. 11.5.2.2. Trabalhar remotamente via ssh Esse método também fornece um ambiente completo gráfico, mas primeiro exige a instalação de [733]sshd no sistema LFS, geralmente em "chroot". Também exige um segundo computador. Esse método tem a vantagem de ser simples, por não exigir a complexidade do ambiente "chroot". Ele também usa seu núcleo do LFS construído para todos os pacotes adicionais e ainda fornece um sistema completo para instalar pacotes. Você possivelmente use o comando scp para carregar os fontes dos pacotes a serem construídos no sistema LFS. Se você quiser baixar os fontes diretamente no sistema LFS, [então] instale [734]libtasn1, [735]p11-kit, [736]make-ca e [737]wget em "chroot" (ou carregue os fontes deles usando scp depois de inicializar o sistema LFS). 11.5.2.3. Trabalhar a partir da linha de comando do LFS Esse método exige instalar [738]libtasn1, [739]p11-kit, [740]make-ca, [741]wget, [742]gpm e [743]links (ou [744]lynx) no chroot e, em seguida, reinicializar no novo sistema LFS. Neste ponto, o sistema padrão tem seis consoles virtuais. Alternar consoles é tão fácil quanto usar as combinações de teclas Alt+Fx, onde Fx está entre F1 e F6. As combinações Alt+← e Alt+→ também mudarão o console. Neste ponto, você pode logar-se em dois consoles virtuais e executar o navegador Links ou o Lynx em um console e o Bash no outro. O GPM então permite copiar comandos a partir do navegador com o botão esquerdo do mouse, alternar consoles e colar no outro console. Nota Como uma observação lateral, alternância de consoles virtuais também pode ser feita a partir de uma instância do X Window com a combinação de teclas Ctrl+Alt+Fx, mas a operação de cópia do mouse não funciona entre a interface gráfica e um console virtual. Você pode retornar para exibição do X Window com a combinação Ctrl+Alt+Fx, onde Fx geralmente é F1, mas possivelmente seja F7. 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 sistema de arquivos segundo estendido ext3 sistema de arquivos terceiro estendido ext4 sistema de arquivos quarto estendido 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 máscara de usuário(a) de criação de arquivo 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 pelas contribuições delas para o Linux From Scratch Project. * [745]Gerard Beekmans – Criador do LFS * [746]Bruce Dubbs – Editor-chefe do LFS * [747]Jim Gifford – Colíder do Projeto CLFS * [748]Pierre Labastie – Editor do BLFS e Líder do ALFS * [749]DJ Lucas – Editor do LFS e BLFS * [750]Ken Moffat – Editor do BLFS * Incontáveis outras pessoas nas várias listas de discussão do LFS e do BLFS que ajudaram a tornar este livro possível dando as sugestões delas; testando o livro; e submetendo relatórios de defeitos; instruções; e suas experiências com a instalação de vários pacotes. Tradutores(as) * [751]Manuel Canales Esparcia – Projeto de tradução do LFS para espanhol * [752]Johan Lenglet – Projeto de tradução do LFS para francês até 2008 * [753]Jean-Philippe Mengual – Projeto de tradução do LFS para francês 2008-2016 * [754]Julien Lepiller – Projeto de tradução do LFS para francês 2017-presente * [755]Anderson Lizardo – Histórico do projeto de tradução LFS para o português * [756]Jamenson Espindula – Projeto de tradução do LFS para o português 2022-presente * [757]Thomas Reitelbach – Projeto de tradução do LFS para alemão Mantenedores(as) de Espelhos Espelhos da América do Norte * [758]Scott Kveton – espelho lfs.oregonstate.edu * [759]William Astle – espelho ca.linuxfromscratch.org * [760]Eujon Sellers – espelho lfs.introspeed.com * [761]Justin Knierim – espelho lfs-matrix.net Espelhos da América do Sul * [762]Manuel Canales Esparcia – espelho lfsmirror.lfs-es.info * [763]Luis Falcon – espelho torredehanoi.org Espelhos Europeus * [764]Guido Passet – espelho nl.linuxfromscratch.org * [765]Bastiaan Jacques – espelho lfs.pagefault.net * [766]Sven Cranshoff – espelho lfs.lineo.be * Scarlet Belgium – espelho lfs.scarlet.be * [767]Sebastian Faulborn – espelho lfs.aliensoft.org * [768]Stuart Fox – espelho lfs.dontuse.ms * [769]Ralf Uhlemann – espelho lfs.oss-mirror.org * [770]Antonin Sprinzl – espelho at.linuxfromscratch.org * [771]Fredrik Danerklint – espelho se.linuxfromscratch.org * [772]Franck – espelho lfs.linuxpourtous.com * [773]Philippe Baque – espelho lfs.cict.fr * [774]Vitaly Chekasin – espelho lfs.pilgrims.ru * [775]Benjamin Heil – espelho lfs.wankoo.org * [776]Anton Maisak – espelho linuxfromscratch.org.ru Espelhos Asiáticos * [777]Satit Phermsawang – espelho lfs.phayoune.org * [778]Shizunet Co.,Ltd. – espelho lfs.mirror.shizu-net.jp Espelhos da Austrália * [779]Jason Andrade – espelho au.linuxfromscratch.org Ex-membros da Equipe do Projeto * [780]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 * [781]Matthew Burgess – Líder de Projeto do LFS; Escritor/Editor Técnico do LFS * [782]Nathan Coulson – Mantenedor de Scripts de Inicialização do LFS * Timothy Bauscher * Robert Briggs * Ian Chilton * [783]Jeroen Coumans – Desenvolvedor de Sítio da Web; Mantenedor de FAQ * [784]Manuel Canales Esparcia – Mantenedor de XML e XSL do LFS/BLFS/HLFS * Alex Groenewoud – Escritor Técnico do LFS * Marc Heerdink * [785]Jeremy Huntwork – Escritor Técnico do LFS; Mantenedor de LiveCD do LFS * [786]Bryan Kadzban – Escritor Técnico do LFS * Mark Hymers * Seth W. Klein – Mantenedor do FAQ * [787]Nicholas Leippe – Mantenedor da Wiki * [788]Anderson Lizardo – Mantenedor de Scripts de Infraestrutura de Sítio Web * [789]Randy McMurchy – Líder de Projeto do BLFS; Editor do LFS * [790]Dan Nicholson – Editor do LFS e BLFS * [791]Alexander E. Patrakov – Escritor Técnico do LFS; Editor de Internacionalização do LFS; Mantenedor de Live CD do LFS * Simon Perreault * [792]Scot Mc Pherson – Mantenedor do Gateway NNTP do LFS * [793]Douglas R. Reno – Editor do Systemd * [794]Ryan Oliver – Colíder de Projeto do CLFS * [795]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 * [796]James Robertson – Mantenedor do Bugzilla * [797]Tushar Teredesai – Editor do Livro BLFS; Líder de Projeto de Dicas e Patches * [798]Jeremy Utley – Escritor Técnico do LFS; Mantenedor do Bugzilla; Mantenedor de Scripts de Inicialização do LFS * [799]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 a finalidade de 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 às vezes até cinco tipos de dependências listadas abaixo. A primeira lista que outros pacotes necessitam estar disponíveis para a finalidade de 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 a finalidade de 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. 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 o(a) usuário(a). Esses pacotes possivelmente tenham dependências adicionais obrigatórias ou opcionais 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 A 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 A suíte de teste depende de: Automake, Diffutils, Findutils e Libtool Precisa ser instalado antes de: Coreutils, Sed, Tar e Vim Dependências opcionais: Nenhum Attr A Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, Grep, M4, Make, Perl, Sed e Texinfo Exigido em tempo de execução: Glibc A suíte de teste depende de: Automake, Diffutils, Findutils e Libtool Precisa ser instalado antes de: Acl, Libcap e Patch Dependências opcionais: Nenhum Autoconf A 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 A suíte de teste depende de: Automake, Diffutils, Findutils, GCC e Libtool Precisa ser instalado antes de: Automake e Coreutils Dependências opcionais: [800]Emacs Automake A 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 A 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: Coreutils Dependências opcionais: Nenhum Bash A 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 A suíte de teste depende de: Expect e Shadow Precisa ser instalado antes de: Nenhum Dependências opcionais: [801]Xorg Bc A Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Grep, Make e Readline Exigido em tempo de execução: Glibc, Ncurses e Readline A suíte de teste depende de: Gawk Precisa ser instalado antes de: Linux Dependências opcionais: Nenhum Binutils A Instalação depende de: Bash, Binutils, Coreutils, Diffutils, File, Flex, Gawk, GCC, Glibc, Grep, Make, Perl, Pkgconf, Sed, Texinfo, Zlib e Zstd Exigido em tempo de execução: Glibc, Zlib e Zstd A suíte de teste depende de: DejaGNU e Expect Precisa ser instalado antes de: Nenhum Dependências opcionais: [802]Elfutils e [803]Jansson Bison A Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, M4, Make, Perl e Sed Exigido em tempo de execução: Glibc A suíte de teste depende de: Diffutils, Findutils e Flex Precisa ser instalado antes de: Kbd e Tar Dependências opcionais: [804]Doxygen Bzip2 A Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Make e Patch Exigido em tempo de execução: Glibc A suíte de teste depende de: Nenhum Precisa ser instalado antes de: File e Libelf Dependências opcionais: Nenhum Coreutils A Instalação depende de: Autoconf, Automake, Bash, Binutils, Coreutils, GCC, Gettext, Glibc, GMP, Grep, Libcap, Make, OpenSSL, Patch, Perl, Sed e Texinfo Exigido em tempo de execução: Glibc A suíte de teste depende de: Diffutils, E2fsprogs, Findutils, Shadow e Util-linux Precisa ser instalado antes de: Bash, Diffutils, Findutils, Man-DB e Systemd Dependências opcionais: [805]Expect.pm e [806]IO::Tty D-Bus A Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make, Pkgconf, Sed, Systemd e Util-linux Exigido em tempo de execução: Glibc e Systemd A suíte de teste depende de: Vários pacotes no BLFS Precisa ser instalado antes de: Nenhum Dependências opcionais: [807]Bibliotecas do Xorg DejaGNU A Instalação depende de: Bash, Coreutils, Diffutils, Expect, GCC, Grep, Make, Sed e Texinfo Exigido em tempo de execução: Expect e Bash A suíte de teste depende de: Nenhum Precisa ser instalado antes de: Nenhum Dependências opcionais: Nenhum Diffutils A Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, Gettext, Glibc, Grep, Make, Sed e Texinfo Exigido em tempo de execução: Glibc A suíte de teste depende de: Perl Precisa ser instalado antes de: Nenhum Dependências opcionais: Nenhum E2fsprogs A Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Gzip, Make, Pkgconf, Sed, Systemd, Texinfo e Util-linux Exigido em tempo de execução: Glibc e Util-linux A suíte de teste depende de: Procps-ng e Psmisc Precisa ser instalado antes de: Nenhum Dependências opcionais: Nenhum Expat A Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, Glibc, Grep, Make e Sed Exigido em tempo de execução: Glibc A suíte de teste depende de: Nenhum Precisa ser instalado antes de: Python e XML::Parser Dependências opcionais: Nenhum Expect A 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 A suíte de teste depende de: Nenhum Precisa ser instalado antes de: Nenhum Dependências opcionais: [808]Tk File A 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 A suíte de teste depende de: Nenhum Precisa ser instalado antes de: Nenhum Dependências opcionais: [809]libseccomp Findutils A Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, Grep, Make, Sed e Texinfo Exigido em tempo de execução: Bash e Glibc A suíte de teste depende de: DejaGNU, Diffutils e Expect Precisa ser instalado antes de: Nenhum Dependências opcionais: Nenhum Flex A 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 A suíte de teste depende de: Bison e Gawk Precisa ser instalado antes de: Binutils, IProute2, Kbd, Kmod e Man-DB Dependências opcionais: Nenhum Flit-Core A Instalação depende de: Python Exigido em tempo de execução: Python A suíte de teste depende de: Nenhuma suíte de teste disponível Precisa ser instalado antes de: Packaging e Wheel Dependências opcionais: [810]pytest e [811]testpath Gawk A 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 A suíte de teste depende de: Diffutils Precisa ser instalado antes de: Nenhum Dependências opcionais: [812]libsigsegv GCC A 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 A suíte de teste depende de: DejaGNU, Expect e Shadow Precisa ser instalado antes de: Nenhum Dependências opcionais: [813]GDC, [814]GNAT e [815]ISL GDBM A Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, Grep, Make e Sed Exigido em tempo de execução: Bash, Glibc e Readline A suíte de teste depende de: Nenhum Precisa ser instalado antes de: Nenhum Dependências opcionais: Nenhum Gettext A 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 A suíte de teste depende de: Diffutils, Perl e Tcl Precisa ser instalado antes de: Automake e Bison Dependências opcionais: [816]libunistring e [817]libxml2 Glibc A 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: Nenhum A suíte de teste depende de: File Precisa ser instalado antes de: Nenhum Dependências opcionais: Nenhum GMP A 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 A suíte de teste depende de: Nenhum Precisa ser instalado antes de: MPFR e GCC Dependências opcionais: Nenhum Gperf A Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc e Make Exigido em tempo de execução: GCC e Glibc A suíte de teste depende de: Diffutils e Expect Precisa ser instalado antes de: Nenhum Dependências opcionais: Nenhum Grep A Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Patch, Sed e Texinfo Exigido em tempo de execução: Glibc A suíte de teste depende de: Gawk Precisa ser instalado antes de: Man-DB Dependências opcionais: [818]PCRE2 e [819]libsigsegv Groff A 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 A suíte de teste depende de: Nenhum Precisa ser instalado antes de: Man-DB Dependências opcionais: [820]ghostscript e [821]Uchardet GRUB A 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 A suíte de teste depende de: Nenhum Precisa ser instalado antes de: Nenhum Dependências opcionais: Nenhum Gzip A Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Grep, Make, Sed e Texinfo Exigido em tempo de execução: Bash e Glibc A suíte de teste depende de: Diffutils e Less Precisa ser instalado antes de: Man-DB Dependências opcionais: Nenhum Iana-Etc A Instalação depende de: Coreutils Exigido em tempo de execução: Nenhum A suíte de teste depende de: Nenhuma suíte de teste disponível Precisa ser instalado antes de: Perl Dependências opcionais: Nenhum Inetutils A 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 A suíte de teste depende de: Nenhum Precisa ser instalado antes de: Tar Dependências opcionais: Nenhum Intltool A 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 A suíte de teste depende de: Perl Precisa ser instalado antes de: Nenhum Dependências opcionais: Nenhum IProute2 A Instalação depende de: Bash, Bison, Coreutils, Flex, GCC, Glibc, Make, Libcap, Libelf, Cabeçalhos da API do Linux, Pkgconf e Zlib Exigido em tempo de execução: Bash, Coreutils, Glibc, Libcap, Libelf e Zlib A suíte de teste depende de: Nenhuma suíte de teste disponível Precisa ser instalado antes de: Nenhum Dependências opcionais: [822]Berkeley DB, [823]iptables, [824]libbpf, [825]libmnl e [826]libtirpc Jinja2 A Instalação depende de: MarkupSafe, Python, Setuptools e Wheel Exigido em tempo de execução: MarkupSafe e Python A suíte de teste depende de: Nenhuma suíte de teste disponível Precisa ser instalado antes de: Systemd Dependências opcionais: Nenhum Kbd A Instalação depende de: Bash, Binutils, Bison, Coreutils, Flex, GCC, Gettext, Glibc, Gzip, Make, Patch e Sed Exigido em tempo de execução: Bash, Coreutils e Glibc A suíte de teste depende de: Nenhum Precisa ser instalado antes de: Nenhum Dependências opcionais: [827]Linux-PAM Kmod A Instalação depende de: Bash, Binutils, Bison, Coreutils, Flex, GCC, Gettext, Glibc, Gzip, Make, OpenSSL, Pkgconf, Sed, Xz e Zlib Exigido em tempo de execução: Glibc, Xz e Zlib A suíte de teste depende de: Nenhuma suíte de teste disponível Precisa ser instalado antes de: Systemd Dependências opcionais: [828]scdoc (para páginas de manual) Less A Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make, Ncurses e Sed Exigido em tempo de execução: Glibc e Ncurses A suíte de teste depende de: Nenhum Precisa ser instalado antes de: Gzip Dependências opcionais: [829]PCRE2 ou [830]PCRE Libcap A Instalação depende de: Attr, Bash, Binutils, Coreutils, GCC, Glibc, Perl, Make e Sed Exigido em tempo de execução: Glibc A suíte de teste depende de: Nenhum Precisa ser instalado antes de: IProute2 e Shadow Dependências opcionais: [831]Linux-PAM Libelf A Instalação depende de: Bash, Binutils, Bzip2, Coreutils, GCC, Glibc, Make, Xz, Zlib e Zstd Exigido em tempo de execução: Bzip2, Glibc, Xz, Zlib e Zstd A suíte de teste depende de: Nenhum Precisa ser instalado antes de: IProute2 e Linux Dependências opcionais: Nenhum Libffi A Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Make e Sed Exigido em tempo de execução: Glibc A suíte de teste depende de: DejaGnu Precisa ser instalado antes de: Python Dependências opcionais: Nenhum Libpipeline A Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed e Texinfo Exigido em tempo de execução: Glibc A suíte de teste depende de: Check e Pkgconf Precisa ser instalado antes de: Man-DB Dependências opcionais: Nenhum Libtool A 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 A suíte de teste depende de: Autoconf, Automake e Findutils Precisa ser instalado antes de: Nenhum Dependências opcionais: Nenhum Libxcrypt A Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make, Perl e Sed Exigido em tempo de execução: Glibc A suíte de teste depende de: Nenhum Precisa ser instalado antes de: Perl, Python, Shadow e Systemd Dependências opcionais: Nenhum Linux A 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: Nenhum A suíte de teste depende de: Nenhuma suíte de teste disponível Precisa ser instalado antes de: Nenhum Dependências opcionais: [832]cpio, [833]LLVM (com Clang) e [834]Rust-bindgen Cabeçalhos da API do Linux A Instalação depende de: Bash, Binutils, Coreutils, Findutils, GCC, Glibc, Grep, Gzip, Make, Perl e Sed Exigido em tempo de execução: Nenhum A suíte de teste depende de: Nenhuma suíte de teste disponível Precisa ser instalado antes de: Nenhum Dependências opcionais: Nenhum Lz4 A Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc e Make Exigido em tempo de execução: Glibc A suíte de teste depende de: Python Precisa ser instalado antes de: Zstd e Systemd Dependências opcionais: Nenhum M4 A Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Grep, Make, Sed e Texinfo Exigido em tempo de execução: Bash e Glibc A suíte de teste depende de: Diffutils Precisa ser instalado antes de: Autoconf e Bison Dependências opcionais: [835]libsigsegv Make A Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, Grep, Make, Sed e Texinfo Exigido em tempo de execução: Glibc A suíte de teste depende de: Perl e Procps-ng Precisa ser instalado antes de: Nenhum Dependências opcionais: [836]Guile Man-DB A Instalação depende de: Bash, Binutils, Bzip2, Coreutils, Flex, GCC, GDBM, Gettext, Glibc, Grep, Groff, Gzip, Less, Libpipeline, Make, Pkgconf, Sed , Systemd e Xz Exigido em tempo de execução: Bash, GDBM, Groff, Glibc, Gzip, Less, Libpipeline e Zlib A suíte de teste depende de: Util-linux Precisa ser instalado antes de: Nenhum Dependências opcionais: [837]libseccomp e [838]po4a Man-Pages A Instalação depende de: Bash, Coreutils, Make e Sed Exigido em tempo de execução: Nenhum A suíte de teste depende de: Nenhuma suíte de teste disponível Precisa ser instalado antes de: Nenhum Dependências opcionais: Nenhum MarkupSafe A Instalação depende de: Python, Setuptools e Wheel Exigido em tempo de execução: Python A suíte de teste depende de: Nenhuma suíte de teste disponível Precisa ser instalado antes de: Jinja2 Dependências opcionais: Nenhum Meson A Instalação depende de: Ninja, Python, Setuptools e Wheel Exigido em tempo de execução: Python A suíte de teste depende de: Nenhuma suíte de teste disponível Precisa ser instalado antes de: Systemd Dependências opcionais: Nenhum MPC A 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 A suíte de teste depende de: Nenhum Precisa ser instalado antes de: GCC Dependências opcionais: Nenhum MPFR A 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 A suíte de teste depende de: Nenhum Precisa ser instalado antes de: Gawk e GCC Dependências opcionais: Nenhum Ncurses A Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make, Patch e Sed Exigido em tempo de execução: Glibc A 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: Nenhum Ninja A Instalação depende de: Binutils, Coreutils, GCC e Python Exigido em tempo de execução: GCC e Glibc A suíte de teste depende de: [839]cmake Precisa ser instalado antes de: Meson Dependências opcionais: [840]Asciidoc, [841]Doxygen, [842]Emacs e [843]re2c OpenSSL A Instalação depende de: Binutils, Coreutils, GCC, Make e Perl Exigido em tempo de execução: Glibc e Perl A suíte de teste depende de: Nenhum Precisa ser instalado antes de: Coreutils, Kmod, Linux e Systemd Dependências opcionais: Nenhum Packaging A Instalação depende de: Flit-core e Python Exigido em tempo de execução: Python A suíte de teste depende de: Nenhuma suíte de teste disponível Precisa ser instalado antes de: Wheel Dependências opcionais: [844]pytest Patch A Instalação depende de: Attr, Bash, Binutils, Coreutils, GCC, Glibc, Grep, Make e Sed Exigido em tempo de execução: Attr e Glibc A suíte de teste depende de: Diffutils Precisa ser instalado antes de: Nenhum Dependências opcionais: [845]Ed Perl A Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, GDBM, Glibc, Grep, Libxcrypt, Make, Sed e Zlib Exigido em tempo de execução: GDBM, Glibc e Libxcrypt A suíte de teste depende de: Iana-Etc, Less e Procps-ng Precisa ser instalado antes de: Autoconf Dependências opcionais: [846]Berkeley DB Pkgconf A Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, Glibc, Grep, Make e Sed Exigido em tempo de execução: Glibc A suíte de teste depende de: Nenhum Precisa ser instalado antes de: Binutils, D-Bus, E2fsprogs, IProute2, Kmod, Man-DB, Procps-ng, Python, Systemd e Util-linux Dependências opcionais: Nenhum Procps-ng A Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Make, Ncurses Pkgconf e Systemd Exigido em tempo de execução: Glibc A suíte de teste depende de: DejaGNU Precisa ser instalado antes de: Nenhum Dependências opcionais: Nenhum Psmisc A Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, Grep, Make, Ncurses e Sed Exigido em tempo de execução: Glibc e Ncurses A suíte de teste depende de: Expect Precisa ser instalado antes de: Nenhum Dependências opcionais: Nenhum Python A Instalação depende de: Bash, Binutils, Coreutils, Expat, GCC, Gdbm, Gettext, Glibc, Grep, Libffi, Libxcrypt, Make, Ncurses, OpenSSL, Pkgconf, Sed e Util-linux Exigido em tempo de execução: Bzip2, Expat, Gdbm, Glibc, Libffi, Libxcrypt, Ncurses, OpenSSL e Zlib A suíte de teste depende de: GDB e Valgrind Precisa ser instalado antes de: Ninja Dependências opcionais: [847]Berkeley DB, [848]libnsl, [849]SQLite e [850]Tk Readline A 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 A suíte de teste depende de: Nenhuma suíte de teste disponível Precisa ser instalado antes de: Bash, Bc e Gawk Dependências opcionais: Nenhum Sed A 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 A suíte de teste depende de: Diffutils e Gawk Precisa ser instalado antes de: E2fsprogs, File, Libtool e Shadow Dependências opcionais: Nenhum Setuptools A Instalação depende de: Python e Wheel Exigido em tempo de execução: Python A suíte de teste depende de: Nenhuma suíte de teste disponível Precisa ser instalado antes de: Jinja2, MarkupSafe e Meson Dependências opcionais: Nenhum Shadow A Instalação depende de: Acl, Attr, Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, GCC, Gettext, Glibc, Grep, Libcap, Libxcrypt, Make e Sed Exigido em tempo de execução: Glibc e Libxcrypt A suíte de teste depende de: Nenhuma suíte de teste disponível Precisa ser instalado antes de: Coreutils Dependências opcionais: [851]CrackLib e [852]Linux-PAM Systemd A Instalação depende de: Acl, Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Gperf, Grep, Jinja2, Libcap, Libxcrypt, Lz4, Meson, OpenSSL, Pkgconf, Sed, Util-linux e Zstd Exigido em tempo de execução: Acl, Glibc, Libcap, Libxcrypt, OpenSSL, Util-linux, Xz, Zlib e Zstd A suíte de teste depende de: Nenhum Precisa ser instalado antes de: D-Bus, E2fsprogs, Man-DB, Procps-ng e Util-linux Dependências opcionais: [853]AppArmor, [854]audit-userspace, [855]bash-completion, [856]btrfs-progs, [857]cURL, [858]cryptsetup, [859]docbook-xml, [860]docbook-xsl-nons, [861]Git, [862]GnuTLS, [863]iptables, [864]jekyll, [865]kexec-tools, [866]libbpf, [867]libdw, [868]libfido2, [869]libgcrypt, [870]libidn2, [871]libmicrohttpd, [872]libpwquality, [873]libseccomp, [874]libxkbcommon, [875]libxslt, [876]Linux-PAM, [877]lxml, [878]make-ca, [879]p11-kit, [880]PCRE2, [881]pefile, [882]Polkit, [883]pyelftools, [884]qemu, [885]qrencode, [886]quota-tools, [887]rpm, [888]rsync, [889]SELinux, [890]Sphinx, [891]systemtap, [892]tpm2-tss, [893]Valgrind, [894]Xen e [895]zsh Tar A 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 A suíte de teste depende de: Autoconf, Diffutils, Findutils, Gawk e Gzip Precisa ser instalado antes de: Nenhum Dependências opcionais: Nenhum Tcl A Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make e Sed Exigido em tempo de execução: Glibc e Zlib A suíte de teste depende de: Nenhum Precisa ser instalado antes de: Nenhum Dependências opcionais: Nenhum Texinfo A 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 A suíte de teste depende de: Nenhum Precisa ser instalado antes de: Nenhum Dependências opcionais: Nenhum Util-linux A Instalação depende de: Bash, Binutils, Coreutils, Diffutils, File, Findutils, Gawk, GCC, Gettext, Glibc, Grep, Make, Ncurses, Pkgconf, Sed, Systemd e Zlib Exigido em tempo de execução: Glibc, Ncurses, Readline, Systemd e Zlib A suíte de teste depende de: Nenhum Precisa ser instalado antes de: Nenhum Dependências opcionais: [896]Asciidoctor, [897]Libcap-NG, [898]libeconf, [899]libuser, [900]libutempter, [901]Linux-PAM, [902]smartmontools, [903]po4a e [904]slang Vim A 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 A suíte de teste depende de: Nenhum Precisa ser instalado antes de: Nenhum Dependências opcionais: [905]Xorg, [906]GTK+2, [907]LessTif, [908]Ruby e [909]GPM Wheel A Instalação depende de: Python, Flit-core e packaging Exigido em tempo de execução: Python A suíte de teste depende de: Nenhuma suíte de teste disponível Precisa ser instalado antes de: Jinja2, MarkupSafe, Meson e Setuptools Dependências opcionais: Nenhum XML::Parser A Instalação depende de: Bash, Binutils, Coreutils, Expat, GCC, Glibc, Make e Perl Exigido em tempo de execução: Expat, Glibc e Perl A suíte de teste depende de: Perl Precisa ser instalado antes de: Intltool Dependências opcionais: [910]LWP::UserAgent Xz A Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc e Make Exigido em tempo de execução: Glibc A suíte de teste depende de: Nenhum Precisa ser instalado antes de: File, GRUB, Kmod, Libelf, Man-DB e Systemd Dependências opcionais: Nenhum Zlib A Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Make e Sed Exigido em tempo de execução: Glibc A suíte de teste depende de: Nenhum Precisa ser instalado antes de: File, Kmod, Libelf, Perl e Util-linux Dependências opcionais: Nenhum Zstd A Instalação depende de: Binutils, Coreutils, GCC, Glibc, Gzip, Lz4, Make, Xz e Zlib Exigido em tempo de execução: Glibc A suíte de teste depende de: Nenhum Precisa ser instalado antes de: Binutils, GCC, Libelf e Systemd Dependências opcionais: Nenhum Apêndice D. Licenças do LFS Este livro está licenciado sob a Licença Creative Commons Atribuição-Uso Não Comercial-Compartilhamento pela mesma licença 2.0. As instruções de computador podem ser extraídas a partir do livro sob a Licença do MIT. D.1. Licença da Creative Commons Código Jurídico da Creative Commons 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. A CREATIVE COMMONS DISPONIBILIZA ESTA INFORMAÇÃO "NO ESTADO EM QUE SE ENCONTRA". A 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(A) 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(a) 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(a) 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(a) Licenciante e indicados no título desta Licença: Atribuição, Não-comercial, Compartilhamento pela Mesma Licença. 2. Direitos de Uso Legítimo. Nada nesta licença é destinado a reduzir, limitar ou restringir quaisquer direitos emergentes do uso legítimo, primeira venda 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. Sujeita aos termos e condições desta Licença, o(a) 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), 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. para criar e reproduzir Obras Derivadas; 3. para 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. para 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(a) 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 digitalmente a Obra somente sob os termos desta Licença, e Você precisa incluir uma cópia de, ou o Uniform Resource Identifier para, esta Licença com cada cópia ou fonograma da Obra que Você distribuir, exibir publicamente, executar publicamente ou executar publicamente digitalmente. Você não pode oferecer ou impor quaisquer termos sobre a Obra que alterem ou restrinjam os termos desta Licença ou o exercício dos(as) destinatários(as) dos direitos aqui concedidos. Você não pode sublicenciar a Obra. Você precisa manter intactos todos os avisos que se referem a esta Licença e à isenção de garantias. Você não pode distribuir, exibir publicamente, executar publicamente ou executar publicamente digitalmente a Obra com quaisquer medidas tecnológicas que controlem o acesso ou uso da Obra de uma maneira inconsistente com os termos deste Contrato de Licença. O acima se aplica para a Obra conforme incorporada em uma Obra Coletiva, mas isso não exige que a Obra Coletiva, além da própria Obra, seja submetida aos termos desta Licença. Se Você criar uma Obra Coletiva, mediante notificação originária de qualquer Licenciante, Você precisará, na medida do possível, remover da Obra Coletiva qualquer referência para tal Licenciante ou para o(a) Autor(a) Original, conforme solicitado. Se Você criar uma Obra Derivada, mediante notificação originária de qualquer Licenciante, Você precisará, na medida do possível, remover da Obra Derivada qualquer referência para tal Licenciante ou para o(a) Autor(a) 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 da 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 para os(as) destinatários(as), 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 isso 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 por intermédio 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 para o(a) Autor(a) Original crédito razoável com relação ao meio ou mídia que Você está utilizando, por intermédio da veiculação do nome (ou pseudônimo, se for o caso) do(a) Autor(a) Original, se fornecido; o título da Obra, se fornecido; na medida do razoável, o Identificador Uniformizado de Recursos (URI) que o(a) 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(a) Original", ou "Roteiro baseado na Obra original de Autor(a) Original"). Tal crédito pode ser implementado de qualquer forma razoável; entretanto, no caso de Obra Derivada ou Obra Coletiva, esse 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 esse outro crédito de autoria comparável. 5. Para evitar dúvidas, quando a Obra for uma composição musical: 1. Royalties de Desempenho Sob Licenças Gerais. O(A) Licenciante reserva-se o direito exclusivo de cobrar, seja individualmente ou por meio de uma sociedade de direitos de execução (por exemplo, ASCAP, BMI, SESAC), royalties pela execução pública ou pela execução digital pública (por exemplo, webcast) da Obra, se essa execução for destinada principalmente ou dirigida em direção a vantagens comerciais ou compensação monetária privada. 2. Direitos Mecânicos e Royalties Estatutários. O(A) Licenciante reserva-se o direito exclusivo de cobrar, seja individualmente ou por meio de uma agência de direitos musicais ou agente designado (por exemplo, Agência Harry Fox), royalties por qualquer gravação fonográfica que Você criar a partir da Obra (versão cover) e distribuir, sujeita à licença compulsória criada pela 17 USC Seção 115 da Lei de Direitos Autorais dos Estados Unidos da América do Norte (ou equivalente em outras jurisdições), se a distribuição de tal versão cover for principalmente destinada ou direcionada a vantagens comerciais ou compensação monetária privada. 6. Direitos de Webcasting e Royalties Estatutários. Para evitar dúvidas, quando a Obra for uma gravação de som, o(a) Licenciante reserva-se o direito exclusivo de cobrar, seja individualmente ou por intermédio de uma sociedade de direitos de execução (por exemplo, SoundExchange), royalties pela execução digital pública (por exemplo, webcast) da Obra, sujeito à licença compulsória criada pela 17 USC Seção 114 da Lei de Direitos Autorais dos Estados Unidos da América do Norte (ou equivalente em outras jurisdições), se a Tua execução digital pública for principalmente destinada ou direcionada a vantagens comerciais ou compensação monetária privada. 6. Direitos de Webcast e Royalties Estatutários. Para evitar dúvidas, quando a Obra for uma gravação de som, o(a) Licenciante reserva-se o direito exclusivo de coletar, seja individualmente ou por meio de uma sociedade de direitos de execução (por exemplo, SoundExchange), royalties pela execução digital pública (por exemplo, webcast) da Obra, sujeita à licença compulsória criada pela 17 USC Seção 114 da Lei de Direitos Autorais dos Estados Unidos da América do Norte (ou equivalente em outras jurisdições), se a Tua execução digital pública for principalmente destinada ou direcionada para vantagem comercial ou compensação monetária privada. 5. Declarações, Garantias e Isenção de Responsabilidade EXCETO QUANDO FOR DE OUTRA FORMA MUTUAMENTE ACORDADO PELAS PARTES POR ESCRITO, O(A) 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, ESSAS 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(A) 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(A) LICENCIANTE TENHA SIDO AVISADO(A) 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(a) 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(a) 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(a) 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, isso 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 feita por escrito e assinada 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(A) Licenciante não será obrigado(a) 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(a) Licenciante e Você. Importante A Creative Commons não é uma parte desta Licença e não presta qualquer garantia relacionada à Obra. A 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 a Creative Commons tiver expressamente se identificado como a Licenciante, ela deverá ter todos os direitos e obrigações de 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 à Creative Commons sem consentimento prévio e por escrito da Creative Commons. Qualquer uso permitido deverá ser de acordo com as diretrizes da Creative Commons de utilização da marca então válidas, conforme sejam publicadas no sítio da web dela ou de outro modo disponibilizadas periodicamente mediante solicitação. A Creative Commons pode ser contactada em [911]http://creativecommons.org/. D.2. A Licença do MIT Direitos autorais © 1999-2025 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 for 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. Índice Remissivo * Acl: [912]Acl-2.3.2 * Attr: [913]Attr-2.5.2 * Autoconf: [914]Autoconf-2.72 * Automake: [915]Automake-1.18.1 * Bash: [916]Bash-5.3 + ferramentas: [917]Bash-5.3 * Bc: [918]Bc-7.0.3 * Binutils: [919]Binutils-2.45 + ferramentas, passagem 1: [920]Binutils-2.45 - Passagem 1 + ferramentas, passagem 2: [921]Binutils-2.45 - Passagem 2 * Bison: [922]Bison-3.8.2 + ferramentas: [923]Bison-3.8.2 * Bzip2: [924]Bzip2-1.0.8 * Coreutils: [925]Coreutils-9.7 + ferramentas: [926]Coreutils-9.7 * D-Bus: [927]D-Bus-1.16.2 * DejaGNU: [928]DejaGNU-1.6.3 * Diffutils: [929]Diffutils-3.12 + ferramentas: [930]Diffutils-3.12 * E2fsprogs: [931]E2fsprogs-1.47.3 * Expat: [932]Expat-2.7.1 * Expect: [933]Expect-5.45.4 * File: [934]File-5.46 + ferramentas: [935]File-5.46 * Findutils: [936]Findutils-4.10.0 + ferramentas: [937]Findutils-4.10.0 * Flex: [938]Flex-2.6.4 * Flit-core: [939]Flit-Core-3.12.0 * Gawk: [940]Gawk-5.3.2 + ferramentas: [941]Gawk-5.3.2 * GCC: [942]GCC-15.2.0 + ferramentas, libstdc++ passagem 1: [943]Libstdc++ oriundo de GCC-15.2.0 + ferramentas, passagem 1: [944]GCC-15.2.0 - Passagem 1 + ferramentas, passagem 2: [945]GCC-15.2.0 - Passagem 2 * GDBM: [946]GDBM-1.26 * Gettext: [947]Gettext-0.26 + ferramentas: [948]Gettext-0.26 * Glibc: [949]Glibc-2.42 + ferramentas: [950]Glibc-2.42 * GMP: [951]GMP-6.3.0 * Gperf: [952]Gperf-3.3 * Grep: [953]Grep-3.12 + ferramentas: [954]Grep-3.12 * Groff: [955]Groff-1.23.0 * GRUB: [956]GRUB-2.12 * Gzip: [957]Gzip-1.14 + ferramentas: [958]Gzip-1.14 * Iana-Etc: [959]Iana-Etc-20250807 * Inetutils: [960]Inetutils-2.6 * Intltool: [961]Intltool-0.51.0 * IPRoute2: [962]IPRoute2-6.16.0 * Jinja2: [963]Jinja2-3.1.6 * Kbd: [964]Kbd-2.8.0 * Kmod: [965]Kmod-34.2 * Less: [966]Less-679 * Libcap: [967]Libcap-2.76 * Libelf: [968]Libelf originário do Elfutils-0.193 * libffi: [969]Libffi-3.5.2 * Libpipeline: [970]Libpipeline-1.5.8 * Libtool: [971]Libtool-2.5.4 * Libxcrypt: [972]Libxcrypt-4.4.38 * Linux: [973]Linux-6.16.1 + ferramentas, cabeçalhos da API: [974]Cabeçalhos da API do Linux-6.16.1 * Lz4: [975]Lz4-1.10.0 * M4: [976]M4-1.4.20 + ferramentas: [977]M4-1.4.20 * Make: [978]Make-4.4.1 + ferramentas: [979]Make-4.4.1 * Man-DB: [980]Man-DB-2.13.1 * Páginas-Manual: [981]Man-pages-6.15 * MarkupSafe: [982]MarkupSafe-3.0.2 * Meson: [983]Meson-1.8.3 * MPC: [984]MPC-1.3.1 * MPFR: [985]MPFR-4.2.2 * Ncurses: [986]Ncurses-6.5-20250809 + ferramentas: [987]Ncurses-6.5-20250809 * Ninja: [988]Ninja-1.13.1 * OpenSSL: [989]OpenSSL-3.5.2 * packaging: [990]Packaging-25.0 * Patch: [991]Patch-2.8 + ferramentas: [992]Patch-2.8 * Perl: [993]Perl-5.42.0 + ferramentas: [994]Perl-5.42.0 * Pkgconf: [995]Pkgconf-2.5.1 * Procps-ng: [996]Procps-ng-4.0.5 * Psmisc: [997]Psmisc-23.7 * Python: [998]Python-3.13.7 + temporário: [999]Python-3.13.7 * Readline: [1000]Readline-8.3 * Sed: [1001]Sed-4.9 + ferramentas: [1002]Sed-4.9 * Setuptools: [1003]Setuptools-80.9.0 * Shadow: [1004]Shadow-4.18.0 + configurando: [1005]Configurando o Shadow * systemd: [1006]Systemd-257.8 * Tar: [1007]Tar-1.35 + ferramentas: [1008]Tar-1.35 * Tcl: [1009]Tcl-8.6.16 * Texinfo: [1010]Texinfo-7.2 + temporário: [1011]Texinfo-7.2 * Udev: + uso: [1012]Visão Geral do Manuseio de Dispositivo e de Módulo * Util-linux: [1013]Util-linux-2.41.1 + ferramentas: [1014]Util-linux-2.41.1 * Vim: [1015]Vim-9.1.1629 * wheel: [1016]Wheel-0.46.1 * XML::Parser: [1017]XML::Parser-2.47 * Xz: [1018]Xz-5.8.1 + ferramentas: [1019]Xz-5.8.1 * Zlib: [1020]Zlib-1.3.1 * zstd: [1021]Zstd-1.5.7 * [: [1022]Coreutils-9.7 -- * 2to3: [1023]Python-3.13.7 * accessdb: [1024]Man-DB-2.13.1 -- * aclocal: [1025]Automake-1.18.1 -- * aclocal-1.18: [1026]Automake-1.18.1 -- * addftinfo: [1027]Groff-1.23.0 -- * addpart: [1028]Util-linux-2.41.1 -- * addr2line: [1029]Binutils-2.45 -- * afmtodit: [1030]Groff-1.23.0 -- * agetty: [1031]Util-linux-2.41.1 -- * apropos: [1032]Man-DB-2.13.1 -- * ar: [1033]Binutils-2.45 -- * as: [1034]Binutils-2.45 -- * attr: [1035]Attr-2.5.2 -- * autoconf: [1036]Autoconf-2.72 -- * autoheader: [1037]Autoconf-2.72 -- * autom4te: [1038]Autoconf-2.72 -- * automake: [1039]Automake-1.18.1 -- * automake-1.18: [1040]Automake-1.18.1 -- * autopoint: [1041]Gettext-0.26 -- * autoreconf: [1042]Autoconf-2.72 -- * autoscan: [1043]Autoconf-2.72 -- * autoupdate: [1044]Autoconf-2.72 -- * awk: [1045]Gawk-5.3.2 -- * b2sum: [1046]Coreutils-9.7 -- * badblocks: [1047]E2fsprogs-1.47.3 -- * base64: [1048]Coreutils-9.7 -- * basename: [1049]Coreutils-9.7 -- * basenc: [1050]Coreutils-9.7 -- * bash: [1051]Bash-5.3 -- * bashbug: [1052]Bash-5.3 -- * bc: [1053]Bc-7.0.3 -- * bison: [1054]Bison-3.8.2 -- * blkdiscard: [1055]Util-linux-2.41.1 -- * blkid: [1056]Util-linux-2.41.1 -- * blkzone: [1057]Util-linux-2.41.1 -- * blockdev: [1058]Util-linux-2.41.1 -- * bomtool: [1059]Pkgconf-2.5.1 -- * bridge: [1060]IPRoute2-6.16.0 -- * bunzip2: [1061]Bzip2-1.0.8 -- * busctl: [1062]Systemd-257.8 -- * bzcat: [1063]Bzip2-1.0.8 -- * bzcmp: [1064]Bzip2-1.0.8 -- * bzdiff: [1065]Bzip2-1.0.8 -- * bzegrep: [1066]Bzip2-1.0.8 -- * bzfgrep: [1067]Bzip2-1.0.8 -- * bzgrep: [1068]Bzip2-1.0.8 -- * bzip2: [1069]Bzip2-1.0.8 -- * bzip2recover: [1070]Bzip2-1.0.8 -- * bzless: [1071]Bzip2-1.0.8 -- * bzmore: [1072]Bzip2-1.0.8 -- * c++: [1073]GCC-15.2.0 -- * c++filt: [1074]Binutils-2.45 -- * cal: [1075]Util-linux-2.41.1 -- * capsh: [1076]Libcap-2.76 -- * captoinfo: [1077]Ncurses-6.5-20250809 -- * cat: [1078]Coreutils-9.7 -- * catman: [1079]Man-DB-2.13.1 -- * cc: [1080]GCC-15.2.0 -- * cfdisk: [1081]Util-linux-2.41.1 -- * chacl: [1082]Acl-2.3.2 -- * chage: [1083]Shadow-4.18.0 -- * chattr: [1084]E2fsprogs-1.47.3 -- * chcon: [1085]Coreutils-9.7 -- * chcpu: [1086]Util-linux-2.41.1 -- * chem: [1087]Groff-1.23.0 -- * chfn: [1088]Shadow-4.18.0 -- * chgpasswd: [1089]Shadow-4.18.0 -- * chgrp: [1090]Coreutils-9.7 -- * chmem: [1091]Util-linux-2.41.1 -- * chmod: [1092]Coreutils-9.7 -- * choom: [1093]Util-linux-2.41.1 -- * chown: [1094]Coreutils-9.7 -- * chpasswd: [1095]Shadow-4.18.0 -- * chroot: [1096]Coreutils-9.7 -- * chrt: [1097]Util-linux-2.41.1 -- * chsh: [1098]Shadow-4.18.0 -- * chvt: [1099]Kbd-2.8.0 -- * cksum: [1100]Coreutils-9.7 -- * clear: [1101]Ncurses-6.5-20250809 -- * cmp: [1102]Diffutils-3.12 -- * col: [1103]Util-linux-2.41.1 -- * colcrt: [1104]Util-linux-2.41.1 -- * colrm: [1105]Util-linux-2.41.1 -- * column: [1106]Util-linux-2.41.1 -- * comm: [1107]Coreutils-9.7 -- * compile_et: [1108]E2fsprogs-1.47.3 -- * coredumpctl: [1109]Systemd-257.8 -- * corelist: [1110]Perl-5.42.0 -- * cp: [1111]Coreutils-9.7 -- * cpan: [1112]Perl-5.42.0 -- * cpp: [1113]GCC-15.2.0 -- * csplit: [1114]Coreutils-9.7 -- * ctrlaltdel: [1115]Util-linux-2.41.1 -- * ctstat: [1116]IPRoute2-6.16.0 -- * cut: [1117]Coreutils-9.7 -- * c_rehash: [1118]OpenSSL-3.5.2 -- * date: [1119]Coreutils-9.7 -- * dbus-cleanup-sockets: [1120]D-Bus-1.16.2 -- * dbus-daemon: [1121]D-Bus-1.16.2 -- * dbus-launch: [1122]D-Bus-1.16.2 -- * dbus-monitor: [1123]D-Bus-1.16.2 -- * dbus-run-session: [1124]D-Bus-1.16.2 -- * dbus-send: [1125]D-Bus-1.16.2 -- * dbus-test-tool: [1126]D-Bus-1.16.2 -- * dbus-update-activation-environment: [1127]D-Bus-1.16.2 -- * dbus-uuidgen: [1128]D-Bus-1.16.2 -- * dc: [1129]Bc-7.0.3 -- * dd: [1130]Coreutils-9.7 -- * deallocvt: [1131]Kbd-2.8.0 -- * debugfs: [1132]E2fsprogs-1.47.3 -- * dejagnu: [1133]DejaGNU-1.6.3 -- * delpart: [1134]Util-linux-2.41.1 -- * depmod: [1135]Kmod-34.2 -- * df: [1136]Coreutils-9.7 -- * diff: [1137]Diffutils-3.12 -- * diff3: [1138]Diffutils-3.12 -- * dir: [1139]Coreutils-9.7 -- * dircolors: [1140]Coreutils-9.7 -- * dirname: [1141]Coreutils-9.7 -- * dmesg: [1142]Util-linux-2.41.1 -- * dnsdomainname: [1143]Inetutils-2.6 -- * du: [1144]Coreutils-9.7 -- * dumpe2fs: [1145]E2fsprogs-1.47.3 -- * dumpkeys: [1146]Kbd-2.8.0 -- * e2freefrag: [1147]E2fsprogs-1.47.3 -- * e2fsck: [1148]E2fsprogs-1.47.3 -- * e2image: [1149]E2fsprogs-1.47.3 -- * e2label: [1150]E2fsprogs-1.47.3 -- * e2mmpstatus: [1151]E2fsprogs-1.47.3 -- * e2scrub: [1152]E2fsprogs-1.47.3 -- * e2scrub_all: [1153]E2fsprogs-1.47.3 -- * e2undo: [1154]E2fsprogs-1.47.3 -- * e4crypt: [1155]E2fsprogs-1.47.3 -- * e4defrag: [1156]E2fsprogs-1.47.3 -- * echo: [1157]Coreutils-9.7 -- * egrep: [1158]Grep-3.12 -- * eject: [1159]Util-linux-2.41.1 -- * elfedit: [1160]Binutils-2.45 -- * enc2xs: [1161]Perl-5.42.0 -- * encguess: [1162]Perl-5.42.0 -- * env: [1163]Coreutils-9.7 -- * envsubst: [1164]Gettext-0.26 -- * eqn: [1165]Groff-1.23.0 -- * eqn2graph: [1166]Groff-1.23.0 -- * ex: [1167]Vim-9.1.1629 -- * expand: [1168]Coreutils-9.7 -- * expect: [1169]Expect-5.45.4 -- * expiry: [1170]Shadow-4.18.0 -- * expr: [1171]Coreutils-9.7 -- * factor: [1172]Coreutils-9.7 -- * faillog: [1173]Shadow-4.18.0 -- * fallocate: [1174]Util-linux-2.41.1 -- * false: [1175]Coreutils-9.7 -- * fdisk: [1176]Util-linux-2.41.1 -- * fgconsole: [1177]Kbd-2.8.0 -- * fgrep: [1178]Grep-3.12 -- * file: [1179]File-5.46 -- * filefrag: [1180]E2fsprogs-1.47.3 -- * fincore: [1181]Util-linux-2.41.1 -- * find: [1182]Findutils-4.10.0 -- * findfs: [1183]Util-linux-2.41.1 -- * findmnt: [1184]Util-linux-2.41.1 -- * flex: [1185]Flex-2.6.4 -- * flex++: [1186]Flex-2.6.4 -- * flock: [1187]Util-linux-2.41.1 -- * fmt: [1188]Coreutils-9.7 -- * fold: [1189]Coreutils-9.7 -- * free: [1190]Procps-ng-4.0.5 -- * fsck: [1191]Util-linux-2.41.1 -- * fsck.cramfs: [1192]Util-linux-2.41.1 -- * fsck.ext2: [1193]E2fsprogs-1.47.3 -- * fsck.ext3: [1194]E2fsprogs-1.47.3 -- * fsck.ext4: [1195]E2fsprogs-1.47.3 -- * fsck.minix: [1196]Util-linux-2.41.1 -- * fsfreeze: [1197]Util-linux-2.41.1 -- * fstrim: [1198]Util-linux-2.41.1 -- * ftp: [1199]Inetutils-2.6 -- * fuser: [1200]Psmisc-23.7 -- * g++: [1201]GCC-15.2.0 -- * gawk: [1202]Gawk-5.3.2 -- * gawk-5.3.2: [1203]Gawk-5.3.2 -- * gcc: [1204]GCC-15.2.0 -- * gc-ar: [1205]GCC-15.2.0 -- * gc-nm: [1206]GCC-15.2.0 -- * gc-ranlib: [1207]GCC-15.2.0 -- * gcov: [1208]GCC-15.2.0 -- * gcov-dump: [1209]GCC-15.2.0 -- * gcov-tool: [1210]GCC-15.2.0 -- * gdbmtool: [1211]GDBM-1.26 -- * gdbm_dump: [1212]GDBM-1.26 -- * gdbm_load: [1213]GDBM-1.26 -- * gdiffmk: [1214]Groff-1.23.0 -- * gencat: [1215]Glibc-2.42 -- * genl: [1216]IPRoute2-6.16.0 -- * getcap: [1217]Libcap-2.76 -- * getconf: [1218]Glibc-2.42 -- * getent: [1219]Glibc-2.42 -- * getfacl: [1220]Acl-2.3.2 -- * getfattr: [1221]Attr-2.5.2 -- * getkeycodes: [1222]Kbd-2.8.0 -- * getopt: [1223]Util-linux-2.41.1 -- * getpcaps: [1224]Libcap-2.76 -- * getsubids: [1225]Shadow-4.18.0 -- * gettext: [1226]Gettext-0.26 -- * gettext.sh: [1227]Gettext-0.26 -- * gettextize: [1228]Gettext-0.26 -- * glilypond: [1229]Groff-1.23.0 -- * gpasswd: [1230]Shadow-4.18.0 -- * gperf: [1231]Gperf-3.3 -- * gperl: [1232]Groff-1.23.0 -- * gpinyin: [1233]Groff-1.23.0 -- * gprof: [1234]Binutils-2.45 -- * gprofng: [1235]Binutils-2.45 -- * grap2graph: [1236]Groff-1.23.0 -- * grep: [1237]Grep-3.12 -- * grn: [1238]Groff-1.23.0 -- * grodvi: [1239]Groff-1.23.0 -- * groff: [1240]Groff-1.23.0 -- * groffer: [1241]Groff-1.23.0 -- * grog: [1242]Groff-1.23.0 -- * grolbp: [1243]Groff-1.23.0 -- * grolj4: [1244]Groff-1.23.0 -- * gropdf: [1245]Groff-1.23.0 -- * grops: [1246]Groff-1.23.0 -- * grotty: [1247]Groff-1.23.0 -- * groupadd: [1248]Shadow-4.18.0 -- * groupdel: [1249]Shadow-4.18.0 -- * groupmems: [1250]Shadow-4.18.0 -- * groupmod: [1251]Shadow-4.18.0 -- * groups: [1252]Coreutils-9.7 -- * grpck: [1253]Shadow-4.18.0 -- * grpconv: [1254]Shadow-4.18.0 -- * grpunconv: [1255]Shadow-4.18.0 -- * grub-bios-setup: [1256]GRUB-2.12 -- * grub-editenv: [1257]GRUB-2.12 -- * grub-file: [1258]GRUB-2.12 -- * grub-fstest: [1259]GRUB-2.12 -- * grub-glue-efi: [1260]GRUB-2.12 -- * grub-install: [1261]GRUB-2.12 -- * grub-kbdcomp: [1262]GRUB-2.12 -- * grub-macbless: [1263]GRUB-2.12 -- * grub-menulst2cfg: [1264]GRUB-2.12 -- * grub-mkconfig: [1265]GRUB-2.12 -- * grub-mkimage: [1266]GRUB-2.12 -- * grub-mklayout: [1267]GRUB-2.12 -- * grub-mknetdir: [1268]GRUB-2.12 -- * grub-mkpasswd-pbkdf2: [1269]GRUB-2.12 -- * grub-mkrelpath: [1270]GRUB-2.12 -- * grub-mkrescue: [1271]GRUB-2.12 -- * grub-mkstandalone: [1272]GRUB-2.12 -- * grub-ofpathname: [1273]GRUB-2.12 -- * grub-probe: [1274]GRUB-2.12 -- * grub-reboot: [1275]GRUB-2.12 -- * grub-render-label: [1276]GRUB-2.12 -- * grub-script-check: [1277]GRUB-2.12 -- * grub-set-default: [1278]GRUB-2.12 -- * grub-setup: [1279]GRUB-2.12 -- * grub-syslinux2cfg: [1280]GRUB-2.12 -- * gunzip: [1281]Gzip-1.14 -- * gzexe: [1282]Gzip-1.14 -- * gzip: [1283]Gzip-1.14 -- * h2ph: [1284]Perl-5.42.0 -- * h2xs: [1285]Perl-5.42.0 -- * parar: [1286]Systemd-257.8 -- * hardlink: [1287]Util-linux-2.41.1 -- * head: [1288]Coreutils-9.7 -- * hexdump: [1289]Util-linux-2.41.1 -- * hostid: [1290]Coreutils-9.7 -- * hostname: [1291]Inetutils-2.6 -- * hostnamectl: [1292]Systemd-257.8 -- * hpftodit: [1293]Groff-1.23.0 -- * hwclock: [1294]Util-linux-2.41.1 -- * i386: [1295]Util-linux-2.41.1 -- * iconv: [1296]Glibc-2.42 -- * iconvconfig: [1297]Glibc-2.42 -- * id: [1298]Coreutils-9.7 -- * idle3: [1299]Python-3.13.7 * ifconfig: [1300]Inetutils-2.6 -- * ifnames: [1301]Autoconf-2.72 -- * ifstat: [1302]IPRoute2-6.16.0 -- * indxbib: [1303]Groff-1.23.0 -- * info: [1304]Texinfo-7.2 -- * infocmp: [1305]Ncurses-6.5-20250809 -- * infotocap: [1306]Ncurses-6.5-20250809 -- * init: [1307]Systemd-257.8 -- * insmod: [1308]Kmod-34.2 -- * install: [1309]Coreutils-9.7 -- * install-info: [1310]Texinfo-7.2 -- * instmodsh: [1311]Perl-5.42.0 -- * intltool-extract: [1312]Intltool-0.51.0 -- * intltool-merge: [1313]Intltool-0.51.0 -- * intltool-prepare: [1314]Intltool-0.51.0 -- * intltool-update: [1315]Intltool-0.51.0 -- * intltoolize: [1316]Intltool-0.51.0 -- * ionice: [1317]Util-linux-2.41.1 -- * ip: [1318]IPRoute2-6.16.0 -- * ipcmk: [1319]Util-linux-2.41.1 -- * ipcrm: [1320]Util-linux-2.41.1 -- * ipcs: [1321]Util-linux-2.41.1 -- * irqtop: [1322]Util-linux-2.41.1 -- * isosize: [1323]Util-linux-2.41.1 -- * join: [1324]Coreutils-9.7 -- * journalctl: [1325]Systemd-257.8 -- * json_pp: [1326]Perl-5.42.0 -- * kbdinfo: [1327]Kbd-2.8.0 -- * kbdrate: [1328]Kbd-2.8.0 -- * kbd_mode: [1329]Kbd-2.8.0 -- * kernel-install: [1330]Systemd-257.8 -- * kill: [1331]Util-linux-2.41.1 -- * killall: [1332]Psmisc-23.7 -- * kmod: [1333]Kmod-34.2 -- * last: [1334]Util-linux-2.41.1 -- * lastb: [1335]Util-linux-2.41.1 -- * ld: [1336]Binutils-2.45 -- * ld.bfd: [1337]Binutils-2.45 -- * ldattach: [1338]Util-linux-2.41.1 -- * ldconfig: [1339]Glibc-2.42 -- * ldd: [1340]Glibc-2.42 -- * lddlibc4: [1341]Glibc-2.42 -- * less: [1342]Less-679 -- * lessecho: [1343]Less-679 -- * lesskey: [1344]Less-679 -- * lex: [1345]Flex-2.6.4 -- * lexgrog: [1346]Man-DB-2.13.1 -- * lfskernel-6.16.1: [1347]Linux-6.16.1 -- * libasan: [1348]GCC-15.2.0 -- * libatomic: [1349]GCC-15.2.0 -- * libcc1: [1350]GCC-15.2.0 -- * libnetcfg: [1351]Perl-5.42.0 -- * libtool: [1352]Libtool-2.5.4 -- * libtoolize: [1353]Libtool-2.5.4 -- * link: [1354]Coreutils-9.7 -- * linux32: [1355]Util-linux-2.41.1 -- * linux64: [1356]Util-linux-2.41.1 -- * lkbib: [1357]Groff-1.23.0 -- * ln: [1358]Coreutils-9.7 -- * lnstat: [1359]IPRoute2-6.16.0 -- * loadkeys: [1360]Kbd-2.8.0 -- * loadunimap: [1361]Kbd-2.8.0 -- * locale: [1362]Glibc-2.42 -- * localectl: [1363]Systemd-257.8 -- * localedef: [1364]Glibc-2.42 -- * locate: [1365]Findutils-4.10.0 -- * logger: [1366]Util-linux-2.41.1 -- * login: [1367]Shadow-4.18.0 -- * loginctl: [1368]Systemd-257.8 -- * logname: [1369]Coreutils-9.7 -- * logoutd: [1370]Shadow-4.18.0 -- * logsave: [1371]E2fsprogs-1.47.3 -- * look: [1372]Util-linux-2.41.1 -- * lookbib: [1373]Groff-1.23.0 -- * losetup: [1374]Util-linux-2.41.1 -- * ls: [1375]Coreutils-9.7 -- * lsattr: [1376]E2fsprogs-1.47.3 -- * lsblk: [1377]Util-linux-2.41.1 -- * lscpu: [1378]Util-linux-2.41.1 -- * lsfd: [1379]Util-linux-2.41.1 -- * lsipc: [1380]Util-linux-2.41.1 -- * lsirq: [1381]Util-linux-2.41.1 -- * lslocks: [1382]Util-linux-2.41.1 -- * lslogins: [1383]Util-linux-2.41.1 -- * lsmem: [1384]Util-linux-2.41.1 -- * lsmod: [1385]Kmod-34.2 -- * lsns: [1386]Util-linux-2.41.1 -- * lto-dump: [1387]GCC-15.2.0 -- * lz4: [1388]Lz4-1.10.0 -- * lz4c: [1389]Lz4-1.10.0 -- * lz4cat: [1390]Lz4-1.10.0 -- * lzcat: [1391]Xz-5.8.1 -- * lzcmp: [1392]Xz-5.8.1 -- * lzdiff: [1393]Xz-5.8.1 -- * lzegrep: [1394]Xz-5.8.1 -- * lzfgrep: [1395]Xz-5.8.1 -- * lzgrep: [1396]Xz-5.8.1 -- * lzless: [1397]Xz-5.8.1 -- * lzma: [1398]Xz-5.8.1 -- * lzmadec: [1399]Xz-5.8.1 -- * lzmainfo: [1400]Xz-5.8.1 -- * lzmore: [1401]Xz-5.8.1 -- * m4: [1402]M4-1.4.20 -- * machinectl: [1403]Systemd-257.8 -- * make: [1404]Make-4.4.1 -- * makedb: [1405]Glibc-2.42 -- * makeinfo: [1406]Texinfo-7.2 -- * man: [1407]Man-DB-2.13.1 -- * man-recode: [1408]Man-DB-2.13.1 -- * mandb: [1409]Man-DB-2.13.1 -- * manpath: [1410]Man-DB-2.13.1 -- * mapscrn: [1411]Kbd-2.8.0 -- * mcookie: [1412]Util-linux-2.41.1 -- * md5sum: [1413]Coreutils-9.7 -- * mesg: [1414]Util-linux-2.41.1 -- * meson: [1415]Meson-1.8.3 -- * mkdir: [1416]Coreutils-9.7 -- * mke2fs: [1417]E2fsprogs-1.47.3 -- * mkfifo: [1418]Coreutils-9.7 -- * mkfs: [1419]Util-linux-2.41.1 -- * mkfs.bfs: [1420]Util-linux-2.41.1 -- * mkfs.cramfs: [1421]Util-linux-2.41.1 -- * mkfs.ext2: [1422]E2fsprogs-1.47.3 -- * mkfs.ext3: [1423]E2fsprogs-1.47.3 -- * mkfs.ext4: [1424]E2fsprogs-1.47.3 -- * mkfs.minix: [1425]Util-linux-2.41.1 -- * mklost+found: [1426]E2fsprogs-1.47.3 -- * mknod: [1427]Coreutils-9.7 -- * mkswap: [1428]Util-linux-2.41.1 -- * mktemp: [1429]Coreutils-9.7 -- * mk_cmds: [1430]E2fsprogs-1.47.3 -- * mmroff: [1431]Groff-1.23.0 -- * modinfo: [1432]Kmod-34.2 -- * modprobe: [1433]Kmod-34.2 -- * more: [1434]Util-linux-2.41.1 -- * mount: [1435]Util-linux-2.41.1 -- * mountpoint: [1436]Util-linux-2.41.1 -- * msgattrib: [1437]Gettext-0.26 -- * msgcat: [1438]Gettext-0.26 -- * msgcmp: [1439]Gettext-0.26 -- * msgcomm: [1440]Gettext-0.26 -- * msgconv: [1441]Gettext-0.26 -- * msgen: [1442]Gettext-0.26 -- * msgexec: [1443]Gettext-0.26 -- * msgfilter: [1444]Gettext-0.26 -- * msgfmt: [1445]Gettext-0.26 -- * msggrep: [1446]Gettext-0.26 -- * msginit: [1447]Gettext-0.26 -- * msgmerge: [1448]Gettext-0.26 -- * msgunfmt: [1449]Gettext-0.26 -- * msguniq: [1450]Gettext-0.26 -- * mtrace: [1451]Glibc-2.42 -- * mv: [1452]Coreutils-9.7 -- * namei: [1453]Util-linux-2.41.1 -- * ncursesw6-config: [1454]Ncurses-6.5-20250809 -- * neqn: [1455]Groff-1.23.0 -- * networkctl: [1456]Systemd-257.8 -- * newgidmap: [1457]Shadow-4.18.0 -- * newgrp: [1458]Shadow-4.18.0 -- * newuidmap: [1459]Shadow-4.18.0 -- * newusers: [1460]Shadow-4.18.0 -- * ngettext: [1461]Gettext-0.26 -- * nice: [1462]Coreutils-9.7 -- * ninja: [1463]Ninja-1.13.1 -- * nl: [1464]Coreutils-9.7 -- * nm: [1465]Binutils-2.45 -- * nohup: [1466]Coreutils-9.7 -- * nologin: [1467]Shadow-4.18.0 -- * nproc: [1468]Coreutils-9.7 -- * nroff: [1469]Groff-1.23.0 -- * nsenter: [1470]Util-linux-2.41.1 -- * nstat: [1471]IPRoute2-6.16.0 -- * numfmt: [1472]Coreutils-9.7 -- * objcopy: [1473]Binutils-2.45 -- * objdump: [1474]Binutils-2.45 -- * od: [1475]Coreutils-9.7 -- * oomctl: [1476]Systemd-257.8 -- * openssl: [1477]OpenSSL-3.5.2 -- * openvt: [1478]Kbd-2.8.0 -- * partx: [1479]Util-linux-2.41.1 -- * passwd: [1480]Shadow-4.18.0 -- * paste: [1481]Coreutils-9.7 -- * patch: [1482]Patch-2.8 -- * pathchk: [1483]Coreutils-9.7 -- * pcprofiledump: [1484]Glibc-2.42 -- * pdfmom: [1485]Groff-1.23.0 -- * pdfroff: [1486]Groff-1.23.0 -- * pdftexi2dvi: [1487]Texinfo-7.2 -- * peekfd: [1488]Psmisc-23.7 -- * perl: [1489]Perl-5.42.0 -- * perl5.42.0: [1490]Perl-5.42.0 -- * perlbug: [1491]Perl-5.42.0 -- * perldoc: [1492]Perl-5.42.0 -- * perlivp: [1493]Perl-5.42.0 -- * perlthanks: [1494]Perl-5.42.0 -- * pfbtops: [1495]Groff-1.23.0 -- * pgrep: [1496]Procps-ng-4.0.5 -- * pic: [1497]Groff-1.23.0 -- * pic2graph: [1498]Groff-1.23.0 -- * piconv: [1499]Perl-5.42.0 -- * pidof: [1500]Procps-ng-4.0.5 -- * ping: [1501]Inetutils-2.6 -- * ping6: [1502]Inetutils-2.6 -- * pinky: [1503]Coreutils-9.7 -- * pip3: [1504]Python-3.13.7 * pivot_root: [1505]Util-linux-2.41.1 -- * pkgconf: [1506]Pkgconf-2.5.1 -- * pkill: [1507]Procps-ng-4.0.5 -- * pl2pm: [1508]Perl-5.42.0 -- * pldd: [1509]Glibc-2.42 -- * pmap: [1510]Procps-ng-4.0.5 -- * pod2html: [1511]Perl-5.42.0 -- * pod2man: [1512]Perl-5.42.0 -- * pod2texi: [1513]Texinfo-7.2 -- * pod2text: [1514]Perl-5.42.0 -- * pod2usage: [1515]Perl-5.42.0 -- * podchecker: [1516]Perl-5.42.0 -- * podselect: [1517]Perl-5.42.0 -- * portablectl: [1518]Systemd-257.8 -- * post-grohtml: [1519]Groff-1.23.0 -- * poweroff: [1520]Systemd-257.8 -- * pr: [1521]Coreutils-9.7 -- * pre-grohtml: [1522]Groff-1.23.0 -- * preconv: [1523]Groff-1.23.0 -- * printenv: [1524]Coreutils-9.7 -- * printf: [1525]Coreutils-9.7 -- * prlimit: [1526]Util-linux-2.41.1 -- * prove: [1527]Perl-5.42.0 -- * prtstat: [1528]Psmisc-23.7 -- * ps: [1529]Procps-ng-4.0.5 -- * psfaddtable: [1530]Kbd-2.8.0 -- * psfgettable: [1531]Kbd-2.8.0 -- * psfstriptable: [1532]Kbd-2.8.0 -- * psfxtable: [1533]Kbd-2.8.0 -- * pslog: [1534]Psmisc-23.7 -- * pstree: [1535]Psmisc-23.7 -- * pstree.x11: [1536]Psmisc-23.7 -- * ptar: [1537]Perl-5.42.0 -- * ptardiff: [1538]Perl-5.42.0 -- * ptargrep: [1539]Perl-5.42.0 -- * ptx: [1540]Coreutils-9.7 -- * pwck: [1541]Shadow-4.18.0 -- * pwconv: [1542]Shadow-4.18.0 -- * pwd: [1543]Coreutils-9.7 -- * pwdx: [1544]Procps-ng-4.0.5 -- * pwunconv: [1545]Shadow-4.18.0 -- * pydoc3: [1546]Python-3.13.7 * python3: [1547]Python-3.13.7 * ranlib: [1548]Binutils-2.45 -- * readelf: [1549]Binutils-2.45 -- * readlink: [1550]Coreutils-9.7 -- * readprofile: [1551]Util-linux-2.41.1 -- * realpath: [1552]Coreutils-9.7 -- * reinicializar: [1553]Systemd-257.8 -- * recode-sr-latin: [1554]Gettext-0.26 -- * refer: [1555]Groff-1.23.0 -- * rename: [1556]Util-linux-2.41.1 -- * renice: [1557]Util-linux-2.41.1 -- * reset: [1558]Ncurses-6.5-20250809 -- * resize2fs: [1559]E2fsprogs-1.47.3 -- * resizepart: [1560]Util-linux-2.41.1 -- * resolvconf: [1561]Systemd-257.8 -- * resolvectl: [1562]Systemd-257.8 -- * rev: [1563]Util-linux-2.41.1 -- * rfkill: [1564]Util-linux-2.41.1 -- * rm: [1565]Coreutils-9.7 -- * rmdir: [1566]Coreutils-9.7 -- * rmmod: [1567]Kmod-34.2 -- * roff2dvi: [1568]Groff-1.23.0 -- * roff2html: [1569]Groff-1.23.0 -- * roff2pdf: [1570]Groff-1.23.0 -- * roff2ps: [1571]Groff-1.23.0 -- * roff2text: [1572]Groff-1.23.0 -- * roff2x: [1573]Groff-1.23.0 -- * routel: [1574]IPRoute2-6.16.0 -- * rtacct: [1575]IPRoute2-6.16.0 -- * rtcwake: [1576]Util-linux-2.41.1 -- * rtmon: [1577]IPRoute2-6.16.0 -- * rtpr: [1578]IPRoute2-6.16.0 -- * rtstat: [1579]IPRoute2-6.16.0 -- * runcon: [1580]Coreutils-9.7 -- * runlevel: [1581]Systemd-257.8 -- * runtest: [1582]DejaGNU-1.6.3 -- * rview: [1583]Vim-9.1.1629 -- * rvim: [1584]Vim-9.1.1629 -- * script: [1585]Util-linux-2.41.1 -- * scriptlive: [1586]Util-linux-2.41.1 -- * scriptreplay: [1587]Util-linux-2.41.1 -- * sdiff: [1588]Diffutils-3.12 -- * sed: [1589]Sed-4.9 -- * seq: [1590]Coreutils-9.7 -- * setarch: [1591]Util-linux-2.41.1 -- * setcap: [1592]Libcap-2.76 -- * setfacl: [1593]Acl-2.3.2 -- * setfattr: [1594]Attr-2.5.2 -- * setfont: [1595]Kbd-2.8.0 -- * setkeycodes: [1596]Kbd-2.8.0 -- * setleds: [1597]Kbd-2.8.0 -- * setmetamode: [1598]Kbd-2.8.0 -- * setsid: [1599]Util-linux-2.41.1 -- * setterm: [1600]Util-linux-2.41.1 -- * setvtrgb: [1601]Kbd-2.8.0 -- * sfdisk: [1602]Util-linux-2.41.1 -- * sg: [1603]Shadow-4.18.0 -- * sh: [1604]Bash-5.3 -- * sha1sum: [1605]Coreutils-9.7 -- * sha224sum: [1606]Coreutils-9.7 -- * sha256sum: [1607]Coreutils-9.7 -- * sha384sum: [1608]Coreutils-9.7 -- * sha512sum: [1609]Coreutils-9.7 -- * shasum: [1610]Perl-5.42.0 -- * showconsolefont: [1611]Kbd-2.8.0 -- * showkey: [1612]Kbd-2.8.0 -- * shred: [1613]Coreutils-9.7 -- * shuf: [1614]Coreutils-9.7 -- * shutdown: [1615]Systemd-257.8 -- * size: [1616]Binutils-2.45 -- * slabtop: [1617]Procps-ng-4.0.5 -- * sleep: [1618]Coreutils-9.7 -- * sln: [1619]Glibc-2.42 -- * soelim: [1620]Groff-1.23.0 -- * sort: [1621]Coreutils-9.7 -- * sotruss: [1622]Glibc-2.42 -- * splain: [1623]Perl-5.42.0 -- * split: [1624]Coreutils-9.7 -- * sprof: [1625]Glibc-2.42 -- * ss: [1626]IPRoute2-6.16.0 -- * stat: [1627]Coreutils-9.7 -- * stdbuf: [1628]Coreutils-9.7 -- * strings: [1629]Binutils-2.45 -- * strip: [1630]Binutils-2.45 -- * stty: [1631]Coreutils-9.7 -- * su: [1632]Shadow-4.18.0 -- * sulogin: [1633]Util-linux-2.41.1 -- * sum: [1634]Coreutils-9.7 -- * swaplabel: [1635]Util-linux-2.41.1 -- * swapoff: [1636]Util-linux-2.41.1 -- * swapon: [1637]Util-linux-2.41.1 -- * switch_root: [1638]Util-linux-2.41.1 -- * sync: [1639]Coreutils-9.7 -- * sysctl: [1640]Procps-ng-4.0.5 -- * systemctl: [1641]Systemd-257.8 -- * systemd-ac-power: [1642]Systemd-257.8 -- * systemd-analyze: [1643]Systemd-257.8 -- * systemd-ask-password: [1644]Systemd-257.8 -- * systemd-cat: [1645]Systemd-257.8 -- * systemd-cgls: [1646]Systemd-257.8 -- * systemd-cgtop: [1647]Systemd-257.8 -- * systemd-creds: [1648]Systemd-257.8 -- * systemd-delta: [1649]Systemd-257.8 -- * systemd-detect-virt: [1650]Systemd-257.8 -- * systemd-dissect: [1651]Systemd-257.8 -- * systemd-escape: [1652]Systemd-257.8 -- * systemd-hwdb: [1653]Systemd-257.8 -- * systemd-id128: [1654]Systemd-257.8 -- * systemd-inhibit: [1655]Systemd-257.8 -- * systemd-machine-id-setup: [1656]Systemd-257.8 -- * systemd-mount: [1657]Systemd-257.8 -- * systemd-notify: [1658]Systemd-257.8 -- * systemd-nspawn: [1659]Systemd-257.8 -- * systemd-path: [1660]Systemd-257.8 -- * systemd-repart: [1661]Systemd-257.8 -- * systemd-resolve: [1662]Systemd-257.8 -- * systemd-run: [1663]Systemd-257.8 -- * systemd-socket-activate: [1664]Systemd-257.8 -- * systemd-sysext: [1665]Systemd-257.8 -- * systemd-tmpfiles: [1666]Systemd-257.8 -- * systemd-tty-ask-password-agent: [1667]Systemd-257.8 -- * systemd-umount: [1668]Systemd-257.8 -- * tabs: [1669]Ncurses-6.5-20250809 -- * tac: [1670]Coreutils-9.7 -- * tail: [1671]Coreutils-9.7 -- * talk: [1672]Inetutils-2.6 -- * tar: [1673]Tar-1.35 -- * taskset: [1674]Util-linux-2.41.1 -- * tbl: [1675]Groff-1.23.0 -- * tc: [1676]IPRoute2-6.16.0 -- * tclsh: [1677]Tcl-8.6.16 -- * tclsh8.6: [1678]Tcl-8.6.16 -- * tee: [1679]Coreutils-9.7 -- * telinit: [1680]Systemd-257.8 -- * telnet: [1681]Inetutils-2.6 -- * test: [1682]Coreutils-9.7 -- * texi2dvi: [1683]Texinfo-7.2 -- * texi2pdf: [1684]Texinfo-7.2 -- * texi2any: [1685]Texinfo-7.2 -- * texindex: [1686]Texinfo-7.2 -- * tfmtodit: [1687]Groff-1.23.0 -- * tftp: [1688]Inetutils-2.6 -- * tic: [1689]Ncurses-6.5-20250809 -- * timedatectl: [1690]Systemd-257.8 -- * timeout: [1691]Coreutils-9.7 -- * tload: [1692]Procps-ng-4.0.5 -- * toe: [1693]Ncurses-6.5-20250809 -- * top: [1694]Procps-ng-4.0.5 -- * touch: [1695]Coreutils-9.7 -- * tput: [1696]Ncurses-6.5-20250809 -- * tr: [1697]Coreutils-9.7 -- * traceroute: [1698]Inetutils-2.6 -- * troff: [1699]Groff-1.23.0 -- * true: [1700]Coreutils-9.7 -- * truncate: [1701]Coreutils-9.7 -- * tset: [1702]Ncurses-6.5-20250809 -- * tsort: [1703]Coreutils-9.7 -- * tty: [1704]Coreutils-9.7 -- * tune2fs: [1705]E2fsprogs-1.47.3 -- * tzselect: [1706]Glibc-2.42 -- * uclampset: [1707]Util-linux-2.41.1 -- * udevadm: [1708]Systemd-257.8 -- * ul: [1709]Util-linux-2.41.1 -- * umount: [1710]Util-linux-2.41.1 -- * uname: [1711]Coreutils-9.7 -- * uname26: [1712]Util-linux-2.41.1 -- * uncompress: [1713]Gzip-1.14 -- * unexpand: [1714]Coreutils-9.7 -- * unicode_start: [1715]Kbd-2.8.0 -- * unicode_stop: [1716]Kbd-2.8.0 -- * uniq: [1717]Coreutils-9.7 -- * unlink: [1718]Coreutils-9.7 -- * unlz4: [1719]Lz4-1.10.0 -- * unlzma: [1720]Xz-5.8.1 -- * unshare: [1721]Util-linux-2.41.1 -- * unxz: [1722]Xz-5.8.1 -- * updatedb: [1723]Findutils-4.10.0 -- * uptime: [1724]Procps-ng-4.0.5 -- * useradd: [1725]Shadow-4.18.0 -- * userdel: [1726]Shadow-4.18.0 -- * usermod: [1727]Shadow-4.18.0 -- * users: [1728]Coreutils-9.7 -- * utmpdump: [1729]Util-linux-2.41.1 -- * uuidd: [1730]Util-linux-2.41.1 -- * uuidgen: [1731]Util-linux-2.41.1 -- * uuidparse: [1732]Util-linux-2.41.1 -- * vdir: [1733]Coreutils-9.7 -- * vi: [1734]Vim-9.1.1629 -- * view: [1735]Vim-9.1.1629 -- * vigr: [1736]Shadow-4.18.0 -- * vim: [1737]Vim-9.1.1629 -- * vimdiff: [1738]Vim-9.1.1629 -- * vimtutor: [1739]Vim-9.1.1629 -- * vipw: [1740]Shadow-4.18.0 -- * vmstat: [1741]Procps-ng-4.0.5 -- * w: [1742]Procps-ng-4.0.5 -- * wall: [1743]Util-linux-2.41.1 -- * watch: [1744]Procps-ng-4.0.5 -- * wc: [1745]Coreutils-9.7 -- * wdctl: [1746]Util-linux-2.41.1 -- * whatis: [1747]Man-DB-2.13.1 -- * wheel: [1748]Wheel-0.46.1 * whereis: [1749]Util-linux-2.41.1 -- * who: [1750]Coreutils-9.7 -- * whoami: [1751]Coreutils-9.7 -- * wipefs: [1752]Util-linux-2.41.1 -- * x86_64: [1753]Util-linux-2.41.1 -- * xargs: [1754]Findutils-4.10.0 -- * xgettext: [1755]Gettext-0.26 -- * xmlwf: [1756]Expat-2.7.1 -- * xsubpp: [1757]Perl-5.42.0 -- * xtrace: [1758]Glibc-2.42 -- * xxd: [1759]Vim-9.1.1629 -- * xz: [1760]Xz-5.8.1 -- * xzcat: [1761]Xz-5.8.1 -- * xzcmp: [1762]Xz-5.8.1 -- * xzdec: [1763]Xz-5.8.1 -- * xzdiff: [1764]Xz-5.8.1 -- * xzegrep: [1765]Xz-5.8.1 -- * xzfgrep: [1766]Xz-5.8.1 -- * xzgrep: [1767]Xz-5.8.1 -- * xzless: [1768]Xz-5.8.1 -- * xzmore: [1769]Xz-5.8.1 -- * yacc: [1770]Bison-3.8.2 -- * yes: [1771]Coreutils-9.7 -- * zcat: [1772]Gzip-1.14 -- * zcmp: [1773]Gzip-1.14 -- * zdiff: [1774]Gzip-1.14 -- * zdump: [1775]Glibc-2.42 -- * zegrep: [1776]Gzip-1.14 -- * zfgrep: [1777]Gzip-1.14 -- * zforce: [1778]Gzip-1.14 -- * zgrep: [1779]Gzip-1.14 -- * zic: [1780]Glibc-2.42 -- * zipdetails: [1781]Perl-5.42.0 -- * zless: [1782]Gzip-1.14 -- * zmore: [1783]Gzip-1.14 -- * znew: [1784]Gzip-1.14 -- * zramctl: [1785]Util-linux-2.41.1 -- * zstd: [1786]Zstd-1.5.7 -- * zstdgrep: [1787]Zstd-1.5.7 -- * zstdless: [1788]Zstd-1.5.7 -- * Expat: [1789]XML::Parser-2.47 -- * ld-2.42.so: [1790]Glibc-2.42 -- * libacl: [1791]Acl-2.3.2 -- * libanl: [1792]Glibc-2.42 -- * libasprintf: [1793]Gettext-0.26 -- * libattr: [1794]Attr-2.5.2 -- * libbfd: [1795]Binutils-2.45 -- * libblkid: [1796]Util-linux-2.41.1 -- * libBrokenLocale: [1797]Glibc-2.42 -- * libbz2: [1798]Bzip2-1.0.8 -- * libc: [1799]Glibc-2.42 -- * libcap: [1800]Libcap-2.76 -- * libcom_err: [1801]E2fsprogs-1.47.3 -- * libcrypt: [1802]Libxcrypt-4.4.38 -- * libcrypto.so: [1803]OpenSSL-3.5.2 -- * libctf: [1804]Binutils-2.45 -- * libctf-nobfd: [1805]Binutils-2.45 -- * libc_malloc_debug: [1806]Glibc-2.42 -- * libdbus-1: [1807]D-Bus-1.16.2 -- * libdl: [1808]Glibc-2.42 -- * libe2p: [1809]E2fsprogs-1.47.3 -- * libelf: [1810]Libelf originário do Elfutils-0.193 -- * libexpat: [1811]Expat-2.7.1 -- * libexpect-5.45.4: [1812]Expect-5.45.4 -- * libext2fs: [1813]E2fsprogs-1.47.3 -- * libfdisk: [1814]Util-linux-2.41.1 -- * libffi: [1815]Libffi-3.5.2 * libfl: [1816]Flex-2.6.4 -- * libformw: [1817]Ncurses-6.5-20250809 -- * libg: [1818]Glibc-2.42 -- * libgcc: [1819]GCC-15.2.0 -- * libgcov: [1820]GCC-15.2.0 -- * libgdbm: [1821]GDBM-1.26 -- * libgdbm_compat: [1822]GDBM-1.26 -- * libgettextlib: [1823]Gettext-0.26 -- * libgettextpo: [1824]Gettext-0.26 -- * libgettextsrc: [1825]Gettext-0.26 -- * libgmp: [1826]GMP-6.3.0 -- * libgmpxx: [1827]GMP-6.3.0 -- * libgomp: [1828]GCC-15.2.0 -- * libgprofng: [1829]Binutils-2.45 -- * libhistory: [1830]Readline-8.3 -- * libhwasan: [1831]GCC-15.2.0 -- * libitm: [1832]GCC-15.2.0 -- * libkmod: [1833]Kmod-34.2 * liblsan: [1834]GCC-15.2.0 -- * libltdl: [1835]Libtool-2.5.4 -- * liblto_plugin: [1836]GCC-15.2.0 -- * liblz4: [1837]Lz4-1.10.0 -- * liblzma: [1838]Xz-5.8.1 -- * libm: [1839]Glibc-2.42 -- * libmagic: [1840]File-5.46 -- * libman: [1841]Man-DB-2.13.1 -- * libmandb: [1842]Man-DB-2.13.1 -- * libmcheck: [1843]Glibc-2.42 -- * libmemusage: [1844]Glibc-2.42 -- * libmenuw: [1845]Ncurses-6.5-20250809 -- * libmount: [1846]Util-linux-2.41.1 -- * libmpc: [1847]MPC-1.3.1 -- * libmpfr: [1848]MPFR-4.2.2 -- * libmvec: [1849]Glibc-2.42 -- * libncurses++w: [1850]Ncurses-6.5-20250809 -- * libncursesw: [1851]Ncurses-6.5-20250809 -- * libnsl: [1852]Glibc-2.42 -- * libnss_*: [1853]Glibc-2.42 -- * libopcodes: [1854]Binutils-2.45 -- * libpanelw: [1855]Ncurses-6.5-20250809 -- * libpcprofile: [1856]Glibc-2.42 -- * libpipeline: [1857]Libpipeline-1.5.8 * libpkgconf: [1858]Pkgconf-2.5.1 -- * libproc-2: [1859]Procps-ng-4.0.5 -- * libpsx: [1860]Libcap-2.76 -- * libpthread: [1861]Glibc-2.42 -- * libquadmath: [1862]GCC-15.2.0 -- * libreadline: [1863]Readline-8.3 -- * libresolv: [1864]Glibc-2.42 -- * librt: [1865]Glibc-2.42 -- * libsframe: [1866]Binutils-2.45 -- * libsmartcols: [1867]Util-linux-2.41.1 -- * libss: [1868]E2fsprogs-1.47.3 -- * libssl.so: [1869]OpenSSL-3.5.2 -- * libssp: [1870]GCC-15.2.0 -- * libstdbuf: [1871]Coreutils-9.7 -- * libstdc++: [1872]GCC-15.2.0 -- * libstdc++exp: [1873]GCC-15.2.0 -- * libstdc++fs: [1874]GCC-15.2.0 -- * libsubid: [1875]Shadow-4.18.0 -- * libsupc++: [1876]GCC-15.2.0 -- * libsystemd: [1877]Systemd-257.8 -- * libtcl8.6.so: [1878]Tcl-8.6.16 -- * libtclstub8.6.a: [1879]Tcl-8.6.16 -- * libtextstyle: [1880]Gettext-0.26 -- * libthread_db: [1881]Glibc-2.42 -- * libtsan: [1882]GCC-15.2.0 -- * libubsan: [1883]GCC-15.2.0 -- * libudev: [1884]Systemd-257.8 -- * libutil: [1885]Glibc-2.42 -- * libuuid: [1886]Util-linux-2.41.1 -- * liby: [1887]Bison-3.8.2 -- * libz: [1888]Zlib-1.3.1 -- * libzstd: [1889]Zstd-1.5.7 -- * preloadable_libintl: [1890]Gettext-0.26 -- * relógio: + configurando: [1891]Configurando o Relógio do Sistema * console: + configurando: [1892]Configurando o Console do Linux * hostname: + configurando: [1893]Configurando o nome de dispositivo do sistema * rede local: + /etc/hosts: [1894]Personalizando o Arquivo /etc/hosts * rede de comunicação: + /etc/hosts: [1895]Personalizando o Arquivo /etc/hosts + configurando: [1896]Configuração Geral da Rede de Comunicação * dwp: [1897]Binutils-2.45 -- * /boot/config-6.16.1: [1898]Linux-6.16.1 -- * /boot/System.map-6.16.1: [1899]Linux-6.16.1 -- * /dev/*: [1900]Preparando Sistemas de Arquivos Virtuais do Núcleo * /etc/fstab: [1901]Criando o Arquivo /etc/fstab * /etc/group: [1902]Criando Arquivos Essenciais e Links Simbólicos * /etc/hosts: [1903]Personalizando o Arquivo /etc/hosts * /etc/inputrc: [1904]Criando o Arquivo /etc/inputrc * /etc/ld.so.conf: [1905]Configurando o Carregador Dinâmico * /etc/lfs-release: [1906]O Fim * /etc/localtime: [1907]Configurando a Glibc * /etc/lsb-release: [1908]O Fim * /etc/mke2fs.conf: [1909]Configurando o E2fsprogs * /etc/modprobe.d/usb.conf: [1910]Configurando a Ordem de Carregamento de Módulo do Linux * /etc/nsswitch.conf: [1911]Configurando a Glibc * /etc/os-release: [1912]O Fim * /etc/passwd: [1913]Criando Arquivos Essenciais e Links Simbólicos * /etc/profile: [1914]Configurando a Localidade do Sistema * /etc/locale.conf: [1915]Configurando a Localidade do Sistema * /etc/protocols: [1916]Iana-Etc-20250807 * /etc/resolv.conf: [1917]Criando o Arquivo /etc/resolv.conf * /etc/services: [1918]Iana-Etc-20250807 * /etc/vimrc: [1919]Configurando o Vim * /run/utmp: [1920]Criando Arquivos Essenciais e Links Simbólicos * /usr/include/asm-generic/*.h: [1921]Cabeçalhos da API do Linux-6.16.1 -- * /usr/include/asm/*.h: [1922]Cabeçalhos da API do Linux-6.16.1 -- * /usr/include/drm/*.h: [1923]Cabeçalhos da API do Linux-6.16.1 -- * /usr/include/linux/*.h: [1924]Cabeçalhos da API do Linux-6.16.1 -- * /usr/include/misc/*.h: [1925]Cabeçalhos da API do Linux-6.16.1 -- * /usr/include/mtd/*.h: [1926]Cabeçalhos da API do Linux-6.16.1 -- * /usr/include/rdma/*.h: [1927]Cabeçalhos da API do Linux-6.16.1 -- * /usr/include/scsi/*.h: [1928]Cabeçalhos da API do Linux-6.16.1 -- * /usr/include/sound/*.h: [1929]Cabeçalhos da API do Linux-6.16.1 -- * /usr/include/video/*.h: [1930]Cabeçalhos da API do Linux-6.16.1 -- * /usr/include/xen/*.h: [1931]Cabeçalhos da API do Linux-6.16.1 -- * /var/log/btmp: [1932]Criando Arquivos Essenciais e Links Simbólicos * /var/log/lastlog: [1933]Criando Arquivos Essenciais e Links Simbólicos * /var/log/wtmp: [1934]Criando Arquivos Essenciais e Links Simbólicos * /etc/shells: [1935]Criando o Arquivo /etc/shells * páginas de manual: [1936]Man-pages-6.15 -- * Personalização do Systemd: [1937]Uso e Configuração do Systemd Referências Ligações visíveis: 1. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#CC 2. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#MIT 3. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pre-foreword 4. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pre-audience 5. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pre-architecture 6. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pre-prerequisites 7. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pre-standards 8. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pre-why 9. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pre-typography 10. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pre-organization 11. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pre-errata 12. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-intro-how 13. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-intro-whatsnew 14. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-intro-changelog 15. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-intro-resources 16. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-intro-askforhelp 17. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-partitioning-introduction 18. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-partitioning-hostreqs 19. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-partitioning-stages 20. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-partitioning-creatingpartition 21. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-partitioning-creatingfilesystem 22. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-partitioning-aboutlfs 23. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-partitioning-mounting 24. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-materials-introduction 25. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-materials-packages 26. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-materials-patches 27. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-preps-introduction 28. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-creatingminlayout 29. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-preps-addinguser 30. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-preps-settingenviron 31. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-preps-aboutsbus 32. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-preps-abouttestsuites 33. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-part3intro-intro 34. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-toolchaintechnotes 35. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-generalinstructions 36. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-introduction 37. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-binutils-pass1 38. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-gcc-pass1 39. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-linux-headers 40. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-glibc 41. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-libstdcpp 42. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-introduction-cross 43. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-m4 44. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-ncurses 45. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-bash 46. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-coreutils 47. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-diffutils 48. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-file 49. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-findutils 50. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-gawk 51. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-grep 52. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-gzip 53. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-make 54. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-patch 55. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-sed 56. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-tar 57. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-xz 58. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-binutils-pass2 59. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-gcc-pass2 60. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-introduction-chroot 61. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-changingowner 62. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-kernfs 63. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-chroot 64. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-creatingdirs 65. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-createfiles 66. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-gettext 67. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-bison 68. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-perl 69. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-Python 70. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-texinfo 71. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-util-linux 72. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-cleanup 73. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-introduction 74. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-pkgmgt 75. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-man-pages 76. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-iana-etc 77. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 78. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-zlib 79. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-bzip2 80. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-xz 81. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-lz4 82. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-zstd 83. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-file 84. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-readline 85. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-m4 86. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-bc 87. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-flex 88. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-tcl 89. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-expect 90. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-dejagnu 91. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-pkgconf 92. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-binutils 93. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gmp 94. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-mpfr 95. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-mpc 96. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-attr 97. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-acl 98. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-libcap 99. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-libxcrypt 100. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 101. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 102. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-ncurses 103. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-sed 104. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-psmisc 105. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 106. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-bison 107. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grep 108. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-bash 109. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-libtool 110. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gdbm 111. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gperf 112. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-expat 113. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-inetutils 114. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-less 115. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 116. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-xml-parser 117. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-intltool 118. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-autoconf 119. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-automake 120. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-openssl 121. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-libelf 122. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-libffi 123. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-Python 124. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-flit-core 125. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-packaging 126. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-wheel 127. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-setuptools 128. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-ninja 129. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-meson 130. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kmod 131. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 132. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-diffutils 133. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gawk 134. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-findutils 135. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 136. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grub 137. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gzip 138. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-iproute2 139. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kbd 140. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-libpipeline 141. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-make 142. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-patch 143. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-tar 144. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-texinfo 145. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-vim 146. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-markupsafe 147. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-jinja2 148. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 149. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-dbus 150. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-man-db 151. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-procps 152. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 153. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 154. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-aboutdebug 155. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-stripping 156. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-cleanup 157. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-introduction 158. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-network 159. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-udev 160. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-symlinks 161. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-clock 162. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-console 163. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-locale 164. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-inputrc 165. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-shells 166. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-systemd-custom 167. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-bootable-introduction 168. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-bootable-fstab 169. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-bootable-kernel 170. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-bootable-grub 171. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-finish-theend 172. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-finish-getcounted 173. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-finish-reboot 174. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-finish-whatnow 175. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#afterlfs 176. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#appendixa 177. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#appendixb 178. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#appendixc 179. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#Licenses 180. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#CC 181. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#MIT 182. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#id21617 183. https://www.linuxfromscratch.org/~thomas/multilib/index.html 184. http://www.tldp.org/HOWTO/Software-Building-HOWTO.html 185. http://moi.vonos.net/linux/beginners-installing-from-source/ 186. http://pubs.opengroup.org/onlinepubs/9699919799/ 187. http://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html 188. http://refspecs.linuxfoundation.org/lsb.shtml 189. https://www.linuxfromscratch.org/ 190. https://man.archlinux.org/man/passwd.5 191. https://man.archlinux.org/man//passwd.5 192. https://man.archlinux.org/ 193. https://www.linuxfromscratch.org/lfs/errata/12.4-systemd/ 194. https://www.linuxfromscratch.org/lfs/advisories/ 195. https://www.linuxfromscratch.org/hints/downloads/files/partitioning-for-lfs.txt 196. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-partitioning 197. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-getting-materials 198. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-final-preps 199. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-final-preps 200. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-cross-tools 201. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-cross-tools 202. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-temporary-tools 203. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-chroot-temporary-tools 204. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-toolchaintechnotes 205. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-building-system 206. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-config 207. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-bootable 208. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-finalizing 209. https://www.linuxfromscratch.org/mirrors.html 210. https://wiki.linuxfromscratch.org/lfs/ticket/5778 211. https://wiki.linuxfromscratch.org/lfs/ticket/5006 212. https://wiki.linuxfromscratch.org/lfs/ticket/4500 213. https://wiki.linuxfromscratch.org/lfs/ticket/5780 214. https://wiki.linuxfromscratch.org/lfs/ticket/5779 215. https://wiki.linuxfromscratch.org/lfs/ticket/5758 216. https://wiki.linuxfromscratch.org/lfs/ticket/5773 217. https://wiki.linuxfromscratch.org/lfs/ticket/5751 218. https://wiki.linuxfromscratch.org/lfs/ticket/5776 219. https://wiki.linuxfromscratch.org/lfs/ticket/5775 220. https://wiki.linuxfromscratch.org/lfs/ticket/5772 221. https://wiki.linuxfromscratch.org/lfs/ticket/5777 222. https://wiki.linuxfromscratch.org/lfs/ticket/5774 223. https://wiki.linuxfromscratch.org/lfs/ticket/5771 224. https://wiki.linuxfromscratch.org/lfs/ticket/5770 225. https://wiki.linuxfromscratch.org/lfs/ticket/5766 226. https://wiki.linuxfromscratch.org/lfs/ticket/5762 227. https://wiki.linuxfromscratch.org/lfs/ticket/5765 228. https://wiki.linuxfromscratch.org/lfs/ticket/5763 229. https://wiki.linuxfromscratch.org/lfs/ticket/5760 230. https://wiki.linuxfromscratch.org/lfs/ticket/5755 231. https://wiki.linuxfromscratch.org/lfs/ticket/5723 232. https://wiki.linuxfromscratch.org/lfs/ticket/5759 233. https://wiki.linuxfromscratch.org/lfs/ticket/5757 234. https://wiki.linuxfromscratch.org/lfs/ticket/5753 235. https://wiki.linuxfromscratch.org/lfs/ticket/5758 236. https://wiki.linuxfromscratch.org/lfs/ticket/5754 237. https://wiki.linuxfromscratch.org/lfs/ticket/5006 238. https://wiki.linuxfromscratch.org/lfs/ticket/4500 239. https://wiki.linuxfromscratch.org/lfs/ticket/5749 240. https://wiki.linuxfromscratch.org/lfs/ticket/5746 241. https://wiki.linuxfromscratch.org/lfs/ticket/5745 242. https://wiki.linuxfromscratch.org/lfs/ticket/5748 243. https://wiki.linuxfromscratch.org/lfs/ticket/5747 244. https://wiki.linuxfromscratch.org/lfs/ticket/5752 245. https://wiki.linuxfromscratch.org/lfs/ticket/5742 246. https://wiki.linuxfromscratch.org/lfs/ticket/5725 247. https://wiki.linuxfromscratch.org/lfs/ticket/5741 248. https://wiki.linuxfromscratch.org/lfs/ticket/5732 249. https://wiki.linuxfromscratch.org/lfs/ticket/5743 250. https://wiki.linuxfromscratch.org/lfs/ticket/5737 251. https://wiki.linuxfromscratch.org/lfs/ticket/5738 252. https://wiki.linuxfromscratch.org/lfs/ticket/5738 253. https://wiki.linuxfromscratch.org/lfs/ticket/5739 254. https://wiki.linuxfromscratch.org/lfs/ticket/5006 255. https://wiki.linuxfromscratch.org/lfs/ticket/4500 256. https://wiki.linuxfromscratch.org/lfs/ticket/5736 257. https://wiki.linuxfromscratch.org/lfs/ticket/5674 258. https://wiki.linuxfromscratch.org/lfs/ticket/5728 259. https://wiki.linuxfromscratch.org/lfs/ticket/5731 260. https://wiki.linuxfromscratch.org/lfs/ticket/5734 261. https://wiki.linuxfromscratch.org/lfs/ticket/5707 262. https://wiki.linuxfromscratch.org/lfs/ticket/5724 263. https://wiki.linuxfromscratch.org/lfs/ticket/5726 264. https://wiki.linuxfromscratch.org/lfs/ticket/5714 265. https://wiki.linuxfromscratch.org/lfs/ticket/5715 266. https://wiki.linuxfromscratch.org/lfs/ticket/5720 267. https://wiki.linuxfromscratch.org/lfs/ticket/5719 268. https://wiki.linuxfromscratch.org/lfs/ticket/5722 269. https://wiki.linuxfromscratch.org/lfs/ticket/5717 270. https://wiki.linuxfromscratch.org/lfs/ticket/5718 271. https://wiki.linuxfromscratch.org/lfs/ticket/4500 272. https://wiki.linuxfromscratch.org/lfs/ticket/5710 273. https://wiki.linuxfromscratch.org/lfs/ticket/5706 274. https://wiki.linuxfromscratch.org/lfs/ticket/5713 275. https://wiki.linuxfromscratch.org/lfs/ticket/5709 276. https://wiki.linuxfromscratch.org/lfs/ticket/5006 277. https://wiki.linuxfromscratch.org/lfs/ticket/5708 278. https://wiki.linuxfromscratch.org/lfs/ticket/5711 279. https://wiki.linuxfromscratch.org/lfs/ticket/5704 280. https://wiki.linuxfromscratch.org/lfs/ticket/5703 281. https://wiki.linuxfromscratch.org/lfs/ticket/5694 282. https://wiki.linuxfromscratch.org/lfs/ticket/5693 283. https://wiki.linuxfromscratch.org/lfs/ticket/5690 284. https://wiki.linuxfromscratch.org/lfs/ticket/5697 285. https://wiki.linuxfromscratch.org/lfs/ticket/5701 286. https://wiki.linuxfromscratch.org/lfs/ticket/5691 287. https://wiki.linuxfromscratch.org/lfs/ticket/5680 288. https://wiki.linuxfromscratch.org/lfs/ticket/5682 289. https://wiki.linuxfromscratch.org/lfs/ticket/5699 290. https://wiki.linuxfromscratch.org/lfs/ticket/5702 291. https://wiki.linuxfromscratch.org/lfs/ticket/5695 292. https://wiki.linuxfromscratch.org/lfs/ticket/5692 293. https://wiki.linuxfromscratch.org/lfs/ticket/5696 294. https://wiki.linuxfromscratch.org/lfs/ticket/5698 295. https://wiki.linuxfromscratch.org/lfs/ticket/4500 296. https://wiki.linuxfromscratch.org/lfs/ticket/5006 297. https://wiki.linuxfromscratch.org/lfs/ticket/5684 298. https://wiki.linuxfromscratch.org/lfs/ticket/5648 299. https://wiki.linuxfromscratch.org/lfs/ticket/5681 300. https://wiki.linuxfromscratch.org/lfs/ticket/5676 301. https://wiki.linuxfromscratch.org/lfs/ticket/5689 302. https://wiki.linuxfromscratch.org/lfs/ticket/5677 303. https://wiki.linuxfromscratch.org/lfs/ticket/5688 304. https://wiki.linuxfromscratch.org/lfs/ticket/5679 305. https://wiki.linuxfromscratch.org/lfs/ticket/5683 306. https://wiki.linuxfromscratch.org/lfs/ticket/5685 307. https://wiki.linuxfromscratch.org/lfs/ticket/4500 308. https://wiki.linuxfromscratch.org/lfs/ticket/5006 309. https://wiki.linuxfromscratch.org/lfs/ticket/5665 310. https://wiki.linuxfromscratch.org/lfs/ticket/5672 311. https://wiki.linuxfromscratch.org/lfs/ticket/5673 312. https://wiki.linuxfromscratch.org/lfs/ticket/5664 313. https://wiki.linuxfromscratch.org/lfs/ticket/5667 314. https://wiki.linuxfromscratch.org/lfs/ticket/5671 315. https://wiki.linuxfromscratch.org/lfs/ticket/5670 316. https://wiki.linuxfromscratch.org/lfs/ticket/5675 317. https://wiki.linuxfromscratch.org/lfs/ticket/5663 318. https://www.linuxfromscratch.org/faq/ 319. https://www.linuxfromscratch.org/search.html 320. https://www.linuxfromscratch.org/mail.html 321. https://www.linuxfromscratch.org/mirrors.html 322. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-intro-resources 323. https://www.linuxfromscratch.org/faq/#generalfaq 324. https://www.linuxfromscratch.org/hints/downloads/files/errors.txt 325. https://www.linuxfromscratch.org/search.html 326. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-intro-resources 327. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#version-check 328. http://catb.org/~esr/faqs/smart-questions.html 329. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-cross-tools 330. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-building-system 331. https://kernel.org/category/releases.html 332. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-bootable 333. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-generalinstructions 334. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-bindmount 335. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-kernfsmount 336. https://man.archlinux.org/man/cfdisk.8 337. https://man.archlinux.org/man/fdisk.8 338. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/raid.html 339. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/aboutlvm.html 340. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/initramfs.html 341. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/grub-setup.html 342. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#systemd-no-tmpfs 343. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-bootable-fstab 344. https://en.wikipedia.org/wiki/Comparison_of_file_systems 345. https://man.archlinux.org/man/open.2 346. http://www.google.com/ 347. https://www.linuxfromscratch.org/lfs/mirrors.html#files 348. https://www.linuxfromscratch.org/mirrors.html#files 349. file:///home/jamenson/repos/upstream/fr-lfs/lfs/wget-list-systemd 350. file:///home/jamenson/repos/upstream/fr-lfs/lfs/md5sums 351. https://www.linuxfromscratch.org/lfs/advisories/ 352. https://savannah.nongnu.org/projects/acl 353. https://download.savannah.gnu.org/releases/acl/acl-2.3.2.tar.xz 354. https://savannah.nongnu.org/projects/attr 355. https://download.savannah.gnu.org/releases/attr/attr-2.5.2.tar.gz 356. https://www.gnu.org/software/autoconf/ 357. https://ftp.gnu.org/gnu/autoconf/autoconf-2.72.tar.xz 358. https://www.gnu.org/software/automake/ 359. https://ftp.gnu.org/gnu/automake/automake-1.18.1.tar.xz 360. https://www.gnu.org/software/bash/ 361. https://ftp.gnu.org/gnu/bash/bash-5.3.tar.gz 362. https://github.com/gavinhoward 363. https://github.com/gavinhoward/bc/releases/download/7.0.3/bc-7.0.3.tar.xz 364. https://www.gnu.org/software/binutils/ 365. https://sourceware.org/pub/binutils/releases/binutils-2.45.tar.xz 366. https://www.gnu.org/software/bison/ 367. https://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.xz 368. https://www.sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz 369. https://www.gnu.org/software/coreutils/ 370. https://ftp.gnu.org/gnu/coreutils/coreutils-9.7.tar.xz 371. https://www.freedesktop.org/wiki/Software/dbus 372. https://dbus.freedesktop.org/releases/dbus/dbus-1.16.2.tar.xz 373. https://www.gnu.org/software/dejagnu/ 374. https://ftp.gnu.org/gnu/dejagnu/dejagnu-1.6.3.tar.gz 375. https://www.gnu.org/software/diffutils/ 376. https://ftp.gnu.org/gnu/diffutils/diffutils-3.12.tar.xz 377. https://e2fsprogs.sourceforge.net/ 378. https://downloads.sourceforge.net/project/e2fsprogs/e2fsprogs/v1.47.3/e2fsprogs-1.47.3.tar.gz 379. https://sourceware.org/elfutils/ 380. https://sourceware.org/ftp/elfutils/0.193/elfutils-0.193.tar.bz2 381. https://libexpat.github.io/ 382. https://github.com/libexpat/libexpat/releases/download/R_2_7_1/expat-2.7.1.tar.xz 383. https://core.tcl.tk/expect/ 384. https://prdownloads.sourceforge.net/expect/expect5.45.4.tar.gz 385. https://www.darwinsys.com/file/ 386. https://astron.com/pub/file/file-5.46.tar.gz 387. https://www.gnu.org/software/findutils/ 388. https://ftp.gnu.org/gnu/findutils/findutils-4.10.0.tar.xz 389. https://github.com/westes/flex 390. https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz 391. https://pypi.org/project/flit-core/ 392. https://pypi.org/packages/source/f/flit-core/flit_core-3.12.0.tar.gz 393. https://www.gnu.org/software/gawk/ 394. https://ftp.gnu.org/gnu/gawk/gawk-5.3.2.tar.xz 395. https://gcc.gnu.org/ 396. https://ftp.gnu.org/gnu/gcc/gcc-15.2.0/gcc-15.2.0.tar.xz 397. https://www.gnu.org/software/gdbm/ 398. https://ftp.gnu.org/gnu/gdbm/gdbm-1.26.tar.gz 399. https://www.gnu.org/software/gettext/ 400. https://ftp.gnu.org/gnu/gettext/gettext-0.26.tar.xz 401. https://www.gnu.org/software/libc/ 402. https://ftp.gnu.org/gnu/glibc/glibc-2.42.tar.xz 403. https://sourceware.org/git/?p=glibc.git;a=shortlog;h=refs/heads/release/2.42/master 404. https://www.gnu.org/software/gmp/ 405. https://ftp.gnu.org/gnu/gmp/gmp-6.3.0.tar.xz 406. https://www.gnu.org/software/gperf/ 407. https://ftp.gnu.org/gnu/gperf/gperf-3.3.tar.gz 408. https://www.gnu.org/software/grep/ 409. https://ftp.gnu.org/gnu/grep/grep-3.12.tar.xz 410. https://www.gnu.org/software/groff/ 411. https://ftp.gnu.org/gnu/groff/groff-1.23.0.tar.gz 412. https://www.gnu.org/software/grub/ 413. https://ftp.gnu.org/gnu/grub/grub-2.12.tar.xz 414. https://www.gnu.org/software/gzip/ 415. https://ftp.gnu.org/gnu/gzip/gzip-1.14.tar.xz 416. https://www.iana.org/protocols 417. https://github.com/Mic92/iana-etc/releases/download/20250807/iana-etc-20250807.tar.gz 418. https://www.gnu.org/software/inetutils/ 419. https://ftp.gnu.org/gnu/inetutils/inetutils-2.6.tar.xz 420. https://freedesktop.org/wiki/Software/intltool 421. https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz 422. https://www.kernel.org/pub/linux/utils/net/iproute2/ 423. https://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-6.16.0.tar.xz 424. https://jinja.palletsprojects.com/en/3.1.x/ 425. https://pypi.org/packages/source/J/Jinja2/jinja2-3.1.6.tar.gz 426. https://kbd-project.org/ 427. https://www.kernel.org/pub/linux/utils/kbd/kbd-2.8.0.tar.xz 428. https://github.com/kmod-project/kmod 429. https://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-34.2.tar.xz 430. https://www.greenwoodsoftware.com/less/ 431. https://www.greenwoodsoftware.com/less/less-679.tar.gz 432. https://sites.google.com/site/fullycapable/ 433. https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-2.76.tar.xz 434. https://sourceware.org/libffi/ 435. https://github.com/libffi/libffi/releases/download/v3.5.2/libffi-3.5.2.tar.gz 436. https://libpipeline.nongnu.org/ 437. https://download.savannah.gnu.org/releases/libpipeline/libpipeline-1.5.8.tar.gz 438. https://www.gnu.org/software/libtool/ 439. https://ftp.gnu.org/gnu/libtool/libtool-2.5.4.tar.xz 440. https://github.com/besser82/libxcrypt/ 441. https://github.com/besser82/libxcrypt/releases/download/v4.4.38/libxcrypt-4.4.38.tar.xz 442. https://www.kernel.org/ 443. https://www.kernel.org/pub/linux/kernel/v6.x/linux-6.16.1.tar.xz 444. https://lz4.org/ 445. https://github.com/lz4/lz4/releases/download/v1.10.0/lz4-1.10.0.tar.gz 446. https://www.gnu.org/software/m4/ 447. https://ftp.gnu.org/gnu/m4/m4-1.4.20.tar.xz 448. https://www.gnu.org/software/make/ 449. https://ftp.gnu.org/gnu/make/make-4.4.1.tar.gz 450. https://www.nongnu.org/man-db/ 451. https://download.savannah.gnu.org/releases/man-db/man-db-2.13.1.tar.xz 452. https://www.kernel.org/doc/man-pages/ 453. https://www.kernel.org/pub/linux/docs/man-pages/man-pages-6.15.tar.xz 454. https://palletsprojects.com/p/markupsafe/ 455. https://pypi.org/packages/source/M/MarkupSafe/markupsafe-3.0.2.tar.gz 456. https://mesonbuild.com/ 457. https://github.com/mesonbuild/meson/releases/download/1.8.3/meson-1.8.3.tar.gz 458. https://www.multiprecision.org/ 459. https://ftp.gnu.org/gnu/mpc/mpc-1.3.1.tar.gz 460. https://www.mpfr.org/ 461. https://ftp.gnu.org/gnu/mpfr/mpfr-4.2.2.tar.xz 462. https://www.gnu.org/software/ncurses/ 463. https://invisible-mirror.net/archives/ncurses/current/ncurses-6.5-20250809.tgz 464. https://ninja-build.org/ 465. https://github.com/ninja-build/ninja/archive/v1.13.1/ninja-1.13.1.tar.gz 466. https://www.openssl-library.org/ 467. https://github.com/openssl/openssl/releases/download/openssl-3.5.2/openssl-3.5.2.tar.gz 468. https://pypi.org/project/packaging/ 469. https://files.pythonhosted.org/packages/source/p/packaging/packaging-25.0.tar.gz 470. https://savannah.gnu.org/projects/patch/ 471. https://ftp.gnu.org/gnu/patch/patch-2.8.tar.xz 472. https://www.perl.org/ 473. https://www.cpan.org/src/5.0/perl-5.42.0.tar.xz 474. https://github.com/pkgconf/pkgconf 475. https://distfiles.ariadne.space/pkgconf/pkgconf-2.5.1.tar.xz 476. https://gitlab.com/procps-ng/procps/ 477. https://sourceforge.net/projects/procps-ng/files/Production/procps-ng-4.0.5.tar.xz 478. https://gitlab.com/psmisc/psmisc 479. https://sourceforge.net/projects/psmisc/files/psmisc/psmisc-23.7.tar.xz 480. https://www.python.org/ 481. https://www.python.org/ftp/python/3.13.7/Python-3.13.7.tar.xz 482. https://www.python.org/ftp/python/doc/3.13.7/python-3.13.7-docs-html.tar.bz2 483. https://tiswww.case.edu/php/chet/readline/rltop.html 484. https://ftp.gnu.org/gnu/readline/readline-8.3.tar.gz 485. https://www.gnu.org/software/sed/ 486. https://ftp.gnu.org/gnu/sed/sed-4.9.tar.xz 487. https://pypi.org/project/setuptools/ 488. https://pypi.org/packages/source/s/setuptools/setuptools-80.9.0.tar.gz 489. https://github.com/shadow-maint/shadow/ 490. https://github.com/shadow-maint/shadow/releases/download/4.18.0/shadow-4.18.0.tar.xz 491. https://www.freedesktop.org/wiki/Software/systemd/ 492. https://github.com/systemd/systemd/archive/v257.8/systemd-257.8.tar.gz 493. https://www.freedesktop.org/wiki/Software/systemd/ 494. https://anduin.linuxfromscratch.org/LFS/systemd-man-pages-257.8.tar.xz 495. https://www.gnu.org/software/tar/ 496. https://ftp.gnu.org/gnu/tar/tar-1.35.tar.xz 497. https://tcl.sourceforge.net/ 498. https://downloads.sourceforge.net/tcl/tcl8.6.16-src.tar.gz 499. https://downloads.sourceforge.net/tcl/tcl8.6.16-html.tar.gz 500. https://www.gnu.org/software/texinfo/ 501. https://ftp.gnu.org/gnu/texinfo/texinfo-7.2.tar.xz 502. https://www.iana.org/time-zones 503. https://www.iana.org/time-zones/repository/releases/tzdata2025b.tar.gz 504. https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/ 505. https://www.kernel.org/pub/linux/utils/util-linux/v2.41/util-linux-2.41.1.tar.xz 506. https://www.vim.org/ 507. https://github.com/vim/vim/archive/v9.1.1629/vim-9.1.1629.tar.gz 508. https://github.com/vim/vim/tags 509. https://pypi.org/project/wheel/ 510. https://pypi.org/packages/source/w/wheel/wheel-0.46.1.tar.gz 511. https://github.com/chorny/XML-Parser 512. https://cpan.metacpan.org/authors/id/T/TO/TODDR/XML-Parser-2.47.tar.gz 513. https://tukaani.org/xz 514. https://github.com//tukaani-project/xz/releases/download/v5.8.1/xz-5.8.1.tar.xz 515. https://zlib.net/ 516. https://zlib.net/fossils/zlib-1.3.1.tar.gz 517. https://facebook.github.io/zstd/ 518. https://github.com/facebook/zstd/releases/download/v1.5.7/zstd-1.5.7.tar.gz 519. https://www.linuxfromscratch.org/patches/lfs/12.4/bzip2-1.0.8-install_docs-1.patch 520. https://www.linuxfromscratch.org/patches/lfs/12.4/coreutils-9.7-upstream_fix-1.patch 521. https://www.linuxfromscratch.org/patches/lfs/12.4/coreutils-9.7-i18n-1.patch 522. https://www.linuxfromscratch.org/patches/lfs/12.4/expect-5.45.4-gcc15-1.patch 523. https://www.linuxfromscratch.org/patches/lfs/12.4/glibc-2.42-fhs-1.patch 524. https://www.linuxfromscratch.org/patches/lfs/12.4/kbd-2.8.0-backspace-1.patch 525. https://www.linuxfromscratch.org/patches/downloads/ 526. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-temporary-tools 527. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-cross-tools 528. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-building-system 529. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-temporary-tools 530. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-toolchaintechnotes 531. https://man.archlinux.org/man/bash.1 532. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-partitioning-aboutlfs 533. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-toolchaintechnotes 534. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-temporary-tools 535. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-cross-tools 536. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-cross-tools 537. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-temporary-tools 538. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-chroot-temporary-tools 539. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-bash 540. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-cross-tools 541. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-temporary-tools 542. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-cross-tools 543. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/sysutils/power-profiles-daemon.html 544. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-binutils-pass1 545. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-binutils-pass1 546. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-cross-tools 547. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-temporary-tools 548. https://www.linuxfromscratch.org/lfs/faq.html#no-ptys 549. https://www.linuxfromscratch.org/lfs/build-logs/12.4/ 550. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-cross-tools 551. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-temporary-tools 552. https://sourceware.org/glibc/wiki/ABIList 553. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-temporary-tools 554. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-building-system 555. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-building-system 556. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-temporary-tools 557. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-chroot-temporary-tools 558. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-temporary-tools 559. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-temporary-tools 560. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-chroot-temporary-tools 561. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-building-system 562. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-partitioning-hostreqs 563. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-cross-tools 564. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-temporary-tools 565. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-generalinstructions 566. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#contents-binutils 567. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#buildinstr 568. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pie-ssp-info 569. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#contents-gcc 570. https://man.archlinux.org/man/ln.1 571. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-chroot 572. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#contents-glibc 573. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-gcc-pass1 574. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#contents-gcc 575. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-preps-settingenviron 576. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#contents-m4 577. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#contents-ncurses 578. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#contents-bash 579. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#contents-coreutils 580. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#contents-diffutils 581. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#contents-file 582. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#contents-findutils 583. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#contents-gawk 584. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#contents-grep 585. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#contents-gzip 586. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#contents-make 587. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#contents-patch 588. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#contents-sed 589. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#contents-tar 590. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#contents-xz 591. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#contents-binutils 592. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-gcc-pass1 593. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-gcc-pass1 594. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#contents-gcc 595. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-chroot 596. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-udev-device-node-creation 597. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-building-system 598. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-bindmount 599. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-kernfsmount 600. https://refspecs.linuxfoundation.org/fhs.shtml 601. http://refspecs.linuxfoundation.org/lsb.shtml 602. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-building-system 603. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#contents-gettext 604. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#contents-bison 605. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#contents-perl 606. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-building-system 607. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#contents-python 608. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#contents-texinfo 609. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#contents-utillinux 610. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-building-system 611. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-partitioning-aboutlfs 612. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-kernfs 613. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-chroot 614. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-building-system 615. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/introduction/libraries.html 616. https://www.linuxfromscratch.org/hints/downloads/files/ 617. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 618. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ftn.id6503 619. http://refspecs.linuxfoundation.org/lsb.shtml 620. https://www.linuxfromscratch.org/hints/downloads/files/fakeroot.txt 621. http://www.slackbook.org/html/package-management.html 622. https://www.linuxfromscratch.org/hints/downloads/files/ 623. https://www.linuxfromscratch.org/hints/downloads/files/more_control_and_pkg_man.txt 624. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gmp 625. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-libffi 626. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-bootable-grub 627. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-libxcrypt 628. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-bootable-kernel 629. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-linux-headers 630. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/libidn2.html 631. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-kernfs 632. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-chroot 633. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/shadow.html 634. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/linux-pam.html 635. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/shadow.html 636. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/libpwquality.html 637. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-man-pages 638. https://man.archlinux.org/man/useradd.8 639. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-createfiles 640. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/gcc.html 641. https://www.linuxfromscratch.org/lfs/build-logs/12.4/ 642. https://gcc.gnu.org/ml/gcc-testresults/ 643. https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s09.html 644. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-gcc-pass2 645. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-ncurses 646. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pkgmgmt-upgrade-issues 647. https://man.archlinux.org/man/openssl.1 648. https://man.archlinux.org/man/ssl.7 649. https://gcc.gnu.org/onlinedocs/gcc-15.2.0/gcc/x86-Options.html 650. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/cmake.html 651. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-gawk 652. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/grub-efi.html 653. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-bootable-grub 654. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/editors.html 655. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/vim.html 656. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/dbus.html 657. https://man.archlinux.org/man/top.1 658. https://man.archlinux.org/man/mke2fs.conf.5 659. https://www.linuxfromscratch.org/blfs/view/12.4-systemd//general/valgrind.html 660. https://www.linuxfromscratch.org/blfs/view/12.4-systemd//general/gdb.html 661. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pkgmgmt-upgrade-issues 662. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/introduction/la-files.html 663. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-temporary-tools 664. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-chroot-temporary-tools 665. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-network 666. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-hostname 667. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-hosts 668. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-udev 669. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-symlinks 670. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-clock 671. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-console 672. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-locale 673. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-inputrc 674. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-systemd-custom 675. https://man.archlinux.org/man/systemd.link.5 676. https://man.archlinux.org/man/systemd.netdev.5 677. https://man.archlinux.org/man/systemd.network.5 678. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 679. https://man.archlinux.org/man/systemd.link.5 680. https://man.archlinux.org/man/nss-myhostname.8 681. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-building-system 682. https://man.archlinux.org/man/modprobe.d.5 683. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-symlinks 684. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-network 685. http://www.kroah.com/linux/talks/ols_2003_udev_paper/Reprint-Kroah-Hartman-OLS2003.pdf 686. http://www.kernel.org/pub/linux/kernel/people/mochel/doc/papers/ols-2005/mochel.pdf 687. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-udev 688. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-network 689. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/devices.html 690. https://tldp.org/HOWTO/HOWTO-INDEX/other-lang.html 691. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-locale 692. https://man.archlinux.org/man/systemd-system.conf.5 693. https://man.archlinux.org/man/tmpfiles.d.5 694. https://man.archlinux.org/man/systemd.unit.5 695. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/gdb.html 696. https://man.archlinux.org/man/systemd-coredump.8 697. https://man.archlinux.org/man/coredumpctl.1 698. https://man.archlinux.org/man/coredump.conf.d.5 699. https://man.archlinux.org/man/fstab.5 700. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-finish-reboot 701. https://www.linuxfromscratch.org/hints/downloads/files/kernel-configuration.txt 702. https://anduin.linuxfromscratch.org/LFS/kernel-nutshell/ 703. https://www.linuxfromscratch.org/mail.html 704. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/longindex.html#kernel-config-index 705. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/grub-setup.html#uefi-kernel 706. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-bootable-grub 707. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-udev 708. https://man.archlinux.org/man/modprobe.d.5 709. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/grub-setup.html 710. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/multimedia/libisoburn.html 711. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chapter-building-system 712. https://www.linuxfromscratch.org/cgi-bin/lfscounter.php 713. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/firmware.html 714. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/ 715. https://www.linuxfromscratch.org/lfs/troubleshooting.html 716. https://www.linuxfromscratch.org/lfs/advisories/ 717. https://seclists.org/oss-sec/ 718. https://www.linuxfromscratch.org/hints/downloads/files/ 719. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-intro-maillists 720. http://www.tldp.org/ 721. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/server/apache.html 722. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/server/ mariadb.html 723. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/lxde/lxde.html 724. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/xfce/xfce.html 725. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/kde/kde.html 726. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/gnome/gnome.html 727. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/x/installing.html 728. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/xsoft/firefox.html 729. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/xsoft/thunderbird.html 730. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/xsoft/libreoffice.html 731. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/basicnet/dhcpcd.html 732. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/basicnet/wireless_tools.html 733. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/openssh.html 734. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/libtasn1.html 735. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/p11- kit.html 736. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/make-ca.html 737. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/basicnet/wget.html 738. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/libtasn1.html 739. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/p11-kit.html 740. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/make-ca.html 741. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/basicnet/wget.html 742. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/gpm.html 743. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/basicnet/links.html 744. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/basicnet/lynx.html 745. mailto:gerard@linuxfromscratch.org 746. mailto:bdubbs@linuxfromscratch.org 747. mailto:jim@linuxfromscratch.org 748. mailto:pierre@linuxfromscratch.org 749. mailto:dj@linuxfromscratch.org 750. mailto:ken@linuxfromscratch.org 751. mailto:macana@macana-es.com 752. mailto:johan@linuxfromscratch.org 753. mailto:jmengual@linuxfromscratch.org 754. mailto:jlepiller@linuxfromscratch.org 755. mailto:lizardo@linuxfromscratch.org 756. mailto:jafesp@gmail.com 757. mailto:tr@erdfunkstelle.de 758. mailto:scott@osuosl.org 759. mailto:lost@l-w.net 760. mailto:eujon.sellers@gmail.com 761. mailto:justin@knierim.org 762. mailto:manuel@linuxfromscratch.org 763. mailto:lfalcon@thymbra.com 764. mailto:guido@primerelay.net 765. mailto:baafie@planet.nl 766. mailto:sven.cranshoff@lineo.be 767. mailto:info@aliensoft.org 768. mailto:stuart@dontuse.ms 769. mailto:admin@realhost.de 770. mailto:Antonin.Sprinzl@tuwien.ac.at 771. mailto:fredan-lfs@fredan.org 772. mailto:franck@linuxpourtous.com 773. mailto:baque@cict.fr 774. mailto:gyouja@pilgrims.ru 775. mailto:kontakt@wankoo.org 776. mailto:info@linuxfromscratch.org.ru 777. mailto:satit@wbac.ac.th 778. mailto:info@shizu-net.jp 779. mailto:jason@dstc.edu.au 780. mailto:theladyskye@linuxfromscratch.org 781. mailto:matthew@linuxfromscratch.org 782. mailto:nathan@linuxfromscratch.org 783. mailto:jeroen@linuxfromscratch.org 784. mailto:manuel@linuxfromscratch.org 785. mailto:jhuntwork@linuxfromscratch.org 786. mailto:bryan@linuxfromscratch.org 787. mailto:nicholas@linuxfromscratch.org 788. mailto:lizardo@linuxfromscratch.org 789. mailto:randy@linuxfromscratch.org 790. mailto:dnicholson@linuxfromscratch.org 791. mailto:alexander@linuxfromscratch.org 792. mailto:scot@linuxfromscratch.org 793. mailto:renodr@linuxfromscratch.org 794. mailto:ryan@linuxfromscratch.org 795. mailto:gschafer@zip.com.au 796. mailto:jwrober@linuxfromscratch.org 797. mailto:tushar@linuxfromscratch.org 798. mailto:jeremy@linuxfromscratch.org 799. mailto:zwinkles@gmail.com 800. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/emacs.html 801. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/x/installing.html 802. https://sourceware.org/elfutils/ 803. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/jansson.html 804. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/doxygen.html 805. https://metacpan.org/pod/Expect 806. https://metacpan.org/pod/IO::Tty 807. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/x/x7lib.html 808. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/tk.html 809. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/libseccomp.html 810. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/python-modules.html#pytest 811. https://pypi.org/project/testpath 812. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/libsigsegv.html 813. https://www.gdcproject.org/ 814. https://gcc.gnu.org/wiki/GNAT 815. https://repo.or.cz/isl.git 816. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/libunistring.html 817. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/libxml2.html 818. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/pcre2.html 819. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/libsigsegv.html 820. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/pst/gs.html 821. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/uchardet.html 822. https://www.oracle.com/database/technologies/related/berkeleydb.html 823. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/iptables.html 824. https://github.com/libbpf/libbpf 825. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/basicnet/libmnl.html 826. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/basicnet/libtirpc.html 827. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/linux-pam.html 828. https://git.sr.ht/~sircmpwn/scdoc/ 829. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/pcre2.html 830. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/pcre.html 831. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/linux-pam.html 832. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/cpio.html 833. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/llvm.html 834. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/rust-bindgen.html 835. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/libsigsegv.html 836. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/guile.html 837. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/libseccomp.html 838. https://po4a.org/index.php.en 839. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/cmake.html 840. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/asciidoc.html 841. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/doxygen.html 842. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/emacs.html 843. https://re2c.org/ 844. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/python-modules.html#pytest 845. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/ed.html 846. https://www.oracle.com/database/technologies/related/berkeleydb.html 847. https://www.oracle.com/database/technologies/related/berkeleydb.html 848. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/basicnet/libnsl.html 849. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/server/sqlite.html 850. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/tk.html 851. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/cracklib.html 852. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/linux-pam.html 853. https://www.apparmor.net/ 854. https://github.com/linux-audit/audit-userspace 855. https://github.com/scop/bash-completion 856. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/btrfs-progs.html 857. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/basicnet/curl.html 858. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/cryptsetup.html 859. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/pst/docbook.html 860. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/pst/docbook-xsl.html 861. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/git.html 862. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/gnutls.html 863. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/iptables.html 864. https://jekyllrb.com/ 865. https://www.kernel.org/pub/linux/utils/kernel/kexec/ 866. https://github.com/libbpf/libbpf 867. https://sourceware.org/elfutils/ 868. https://developers.yubico.com/libfido2/ 869. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/libgcrypt.html 870. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/libidn2.html 871. https://www.gnu.org/software/libmicrohttpd/ 872. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/libpwquality.html 873. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/libseccomp.html 874. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/libxkbcommon.html 875. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/libxslt.html 876. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/linux-pam.html 877. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/python-modules.html#lxml 878. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/make-ca.html 879. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/p11-kit.html 880. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/pcre2.html 881. https://pypi.org/projectpefile 882. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/polkit.html 883. https://pypi.org/project/pyelftools 884. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/qemu.html 885. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/qrencode.html 886. https://sourceforge.net/projects/linuxquota/ 887. https://rpm.org/ 888. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/basicnet/rsync.html 889. https://github.com/SELinuxProject/selinux 890. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/python-modules.html#sphinx 891. https://sourceware.org/systemtap/ 892. https://tpm2-tss.readthedocs.io/en/latest/ 893. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/valgrind.html 894. https://xenproject.org/ 895. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/zsh.html 896. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/asciidoctor.html 897. https://people.redhat.com/sgrubb/libcap-ng/ 898. https://github.com/openSUSE/libeconf 899. https://pagure.io/libuser/ 900. https://github.com/altlinux/libutempter 901. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/linux-pam.html 902. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/postlfs/smartmontools.html 903. https://po4a.org/index.php.en 904. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/slang.html 905. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/x/installing.html 906. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/x/gtk2.html 907. http://lesstif.sourceforge.net/ 908. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/ruby.html 909. https://www.linuxfromscratch.org/blfs/view/12.4-systemd/general/gpm.html 910. https://metacpan.org/pod/LWP::UserAgent 911. http://creativecommons.org/ 912. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-acl 913. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-attr 914. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-autoconf 915. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-automake 916. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-bash 917. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-bash 918. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-bc 919. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-binutils 920. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-binutils-pass1 921. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-binutils-pass2 922. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-bison 923. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-bison 924. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-bzip2 925. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 926. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-coreutils 927. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-dbus 928. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-dejagnu 929. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-diffutils 930. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-diffutils 931. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 932. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-expat 933. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-expect 934. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-file 935. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-file 936. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-findutils 937. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-findutils 938. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-flex 939. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-flit-core 940. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gawk 941. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-gawk 942. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 943. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-libstdcpp 944. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-gcc-pass1 945. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-gcc-pass2 946. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gdbm 947. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 948. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-gettext 949. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 950. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-glibc 951. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gmp 952. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gperf 953. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grep 954. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-grep 955. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 956. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grub 957. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gzip 958. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-gzip 959. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-iana-etc 960. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-inetutils 961. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-intltool 962. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-iproute2 963. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-jinja2 964. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kbd 965. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kmod 966. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-less 967. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-libcap 968. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-libelf 969. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-libffi 970. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-libpipeline 971. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-libtool 972. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-libxcrypt 973. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-bootable-kernel 974. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-linux-headers 975. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-lz4 976. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-m4 977. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-m4 978. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-make 979. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-make 980. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-man-db 981. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-man-pages 982. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-markupsafe 983. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-meson 984. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-mpc 985. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-mpfr 986. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-ncurses 987. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-ncurses 988. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-ninja 989. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-openssl 990. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-packaging 991. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-patch 992. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-patch 993. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 994. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-perl 995. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-pkgconf 996. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-procps 997. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-psmisc 998. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-Python 999. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-Python 1000. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-readline 1001. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-sed 1002. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-sed 1003. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-setuptools 1004. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1005. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#conf-shadow 1006. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1007. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-tar 1008. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-tar 1009. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-tcl 1010. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-texinfo 1011. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-texinfo 1012. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-udev 1013. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1014. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-util-linux 1015. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-vim 1016. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-wheel 1017. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-xml-parser 1018. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-xz 1019. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-xz 1020. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-zlib 1021. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-zstd 1022. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1023. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-Python 1024. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-man-db 1025. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-automake 1026. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-automake 1027. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1028. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1029. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-binutils 1030. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1031. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1032. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-man-db 1033. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-binutils 1034. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-binutils 1035. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-attr 1036. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-autoconf 1037. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-autoconf 1038. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-autoconf 1039. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-automake 1040. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-automake 1041. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 1042. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-autoconf 1043. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-autoconf 1044. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-autoconf 1045. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gawk 1046. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1047. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1048. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1049. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1050. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1051. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-bash 1052. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-bash 1053. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-bc 1054. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-bison 1055. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1056. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1057. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1058. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1059. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-pkgconf 1060. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-iproute2 1061. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-bzip2 1062. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1063. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-bzip2 1064. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-bzip2 1065. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-bzip2 1066. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-bzip2 1067. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-bzip2 1068. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-bzip2 1069. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-bzip2 1070. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-bzip2 1071. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-bzip2 1072. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-bzip2 1073. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1074. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-binutils 1075. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1076. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-libcap 1077. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-ncurses 1078. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1079. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-man-db 1080. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1081. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1082. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-acl 1083. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1084. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1085. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1086. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1087. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1088. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1089. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1090. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1091. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1092. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1093. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1094. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1095. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1096. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1097. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1098. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1099. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kbd 1100. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1101. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-ncurses 1102. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-diffutils 1103. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1104. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1105. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1106. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1107. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1108. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1109. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1110. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1111. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1112. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1113. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1114. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1115. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1116. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-iproute2 1117. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1118. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-openssl 1119. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1120. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-dbus 1121. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-dbus 1122. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-dbus 1123. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-dbus 1124. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-dbus 1125. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-dbus 1126. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-dbus 1127. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-dbus 1128. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-dbus 1129. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-bc 1130. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1131. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kbd 1132. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1133. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-dejagnu 1134. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1135. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kmod 1136. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1137. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-diffutils 1138. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-diffutils 1139. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1140. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1141. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1142. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1143. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-inetutils 1144. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1145. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1146. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kbd 1147. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1148. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1149. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1150. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1151. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1152. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1153. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1154. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1155. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1156. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1157. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1158. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grep 1159. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1160. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-binutils 1161. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1162. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1163. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1164. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 1165. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1166. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1167. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-vim 1168. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1169. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-expect 1170. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1171. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1172. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1173. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1174. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1175. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1176. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1177. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kbd 1178. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grep 1179. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-file 1180. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1181. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1182. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-findutils 1183. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1184. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1185. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-flex 1186. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-flex 1187. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1188. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1189. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1190. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-procps 1191. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1192. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1193. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1194. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1195. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1196. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1197. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1198. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1199. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-inetutils 1200. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-psmisc 1201. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1202. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gawk 1203. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gawk 1204. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1205. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1206. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1207. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1208. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1209. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1210. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1211. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gdbm 1212. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gdbm 1213. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gdbm 1214. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1215. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1216. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-iproute2 1217. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-libcap 1218. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1219. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1220. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-acl 1221. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-attr 1222. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kbd 1223. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1224. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-libcap 1225. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1226. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 1227. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 1228. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 1229. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1230. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1231. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gperf 1232. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1233. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1234. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-binutils 1235. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-binutils 1236. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1237. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grep 1238. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1239. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1240. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1241. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1242. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1243. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1244. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1245. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1246. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1247. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1248. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1249. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1250. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1251. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1252. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1253. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1254. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1255. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1256. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grub 1257. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grub 1258. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grub 1259. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grub 1260. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grub 1261. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grub 1262. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grub 1263. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grub 1264. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grub 1265. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grub 1266. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grub 1267. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grub 1268. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grub 1269. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grub 1270. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grub 1271. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grub 1272. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grub 1273. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grub 1274. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grub 1275. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grub 1276. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grub 1277. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grub 1278. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grub 1279. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grub 1280. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-grub 1281. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gzip 1282. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gzip 1283. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gzip 1284. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1285. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1286. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1287. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1288. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1289. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1290. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1291. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-inetutils 1292. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1293. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1294. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1295. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1296. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1297. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1298. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1299. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-Python 1300. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-inetutils 1301. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-autoconf 1302. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-iproute2 1303. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1304. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-texinfo 1305. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-ncurses 1306. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-ncurses 1307. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1308. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kmod 1309. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1310. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-texinfo 1311. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1312. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-intltool 1313. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-intltool 1314. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-intltool 1315. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-intltool 1316. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-intltool 1317. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1318. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-iproute2 1319. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1320. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1321. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1322. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1323. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1324. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1325. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1326. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1327. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kbd 1328. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kbd 1329. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kbd 1330. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1331. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1332. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-psmisc 1333. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kmod 1334. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1335. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1336. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-binutils 1337. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-binutils 1338. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1339. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1340. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1341. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1342. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-less 1343. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-less 1344. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-less 1345. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-flex 1346. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-man-db 1347. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-bootable-kernel 1348. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1349. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1350. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1351. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1352. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-libtool 1353. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-libtool 1354. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1355. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1356. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1357. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1358. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1359. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-iproute2 1360. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kbd 1361. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kbd 1362. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1363. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1364. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1365. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-findutils 1366. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1367. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1368. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1369. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1370. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1371. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1372. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1373. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1374. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1375. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1376. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1377. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1378. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1379. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1380. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1381. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1382. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1383. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1384. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1385. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kmod 1386. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1387. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1388. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-lz4 1389. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-lz4 1390. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-lz4 1391. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-xz 1392. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-xz 1393. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-xz 1394. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-xz 1395. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-xz 1396. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-xz 1397. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-xz 1398. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-xz 1399. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-xz 1400. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-xz 1401. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-xz 1402. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-m4 1403. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1404. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-make 1405. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1406. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-texinfo 1407. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-man-db 1408. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-man-db 1409. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-man-db 1410. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-man-db 1411. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kbd 1412. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1413. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1414. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1415. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-meson 1416. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1417. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1418. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1419. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1420. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1421. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1422. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1423. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1424. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1425. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1426. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1427. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1428. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1429. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1430. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1431. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1432. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kmod 1433. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kmod 1434. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1435. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1436. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1437. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 1438. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 1439. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 1440. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 1441. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 1442. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 1443. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 1444. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 1445. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 1446. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 1447. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 1448. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 1449. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 1450. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 1451. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1452. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1453. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1454. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-ncurses 1455. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1456. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1457. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1458. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1459. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1460. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1461. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 1462. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1463. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-ninja 1464. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1465. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-binutils 1466. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1467. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1468. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1469. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1470. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1471. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-iproute2 1472. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1473. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-binutils 1474. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-binutils 1475. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1476. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1477. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-openssl 1478. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kbd 1479. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1480. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1481. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1482. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-patch 1483. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1484. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1485. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1486. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1487. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-texinfo 1488. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-psmisc 1489. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1490. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1491. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1492. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1493. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1494. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1495. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1496. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-procps 1497. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1498. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1499. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1500. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-procps 1501. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-inetutils 1502. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-inetutils 1503. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1504. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-Python 1505. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1506. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-pkgconf 1507. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-procps 1508. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1509. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1510. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-procps 1511. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1512. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1513. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-texinfo 1514. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1515. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1516. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1517. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1518. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1519. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1520. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1521. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1522. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1523. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1524. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1525. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1526. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1527. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1528. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-psmisc 1529. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-procps 1530. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kbd 1531. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kbd 1532. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kbd 1533. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kbd 1534. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-psmisc 1535. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-psmisc 1536. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-psmisc 1537. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1538. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1539. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1540. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1541. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1542. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1543. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1544. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-procps 1545. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1546. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-Python 1547. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-Python 1548. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-binutils 1549. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-binutils 1550. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1551. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1552. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1553. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1554. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 1555. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1556. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1557. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1558. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-ncurses 1559. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1560. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1561. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1562. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1563. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1564. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1565. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1566. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1567. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kmod 1568. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1569. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1570. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1571. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1572. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1573. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1574. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-iproute2 1575. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-iproute2 1576. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1577. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-iproute2 1578. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-iproute2 1579. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-iproute2 1580. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1581. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1582. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-dejagnu 1583. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-vim 1584. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-vim 1585. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1586. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1587. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1588. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-diffutils 1589. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-sed 1590. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1591. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1592. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-libcap 1593. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-acl 1594. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-attr 1595. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kbd 1596. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kbd 1597. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kbd 1598. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kbd 1599. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1600. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1601. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kbd 1602. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1603. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1604. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-bash 1605. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1606. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1607. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1608. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1609. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1610. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1611. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kbd 1612. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kbd 1613. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1614. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1615. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1616. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-binutils 1617. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-procps 1618. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1619. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1620. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1621. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1622. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1623. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1624. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1625. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1626. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-iproute2 1627. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1628. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1629. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-binutils 1630. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-binutils 1631. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1632. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1633. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1634. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1635. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1636. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1637. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1638. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1639. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1640. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-procps 1641. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1642. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1643. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1644. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1645. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1646. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1647. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1648. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1649. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1650. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1651. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1652. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1653. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1654. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1655. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1656. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1657. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1658. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1659. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1660. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1661. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1662. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1663. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1664. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1665. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1666. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1667. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1668. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1669. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-ncurses 1670. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1671. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1672. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-inetutils 1673. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-tar 1674. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1675. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1676. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-iproute2 1677. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-tcl 1678. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-tcl 1679. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1680. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1681. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-inetutils 1682. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1683. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-texinfo 1684. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-texinfo 1685. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-texinfo 1686. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-texinfo 1687. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1688. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-inetutils 1689. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-ncurses 1690. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1691. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1692. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-procps 1693. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-ncurses 1694. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-procps 1695. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1696. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-ncurses 1697. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1698. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-inetutils 1699. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-groff 1700. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1701. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1702. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-ncurses 1703. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1704. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1705. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1706. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1707. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1708. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1709. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1710. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1711. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1712. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1713. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gzip 1714. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1715. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kbd 1716. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kbd 1717. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1718. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1719. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-lz4 1720. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-xz 1721. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1722. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-xz 1723. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-findutils 1724. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-procps 1725. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1726. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1727. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1728. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1729. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1730. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1731. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1732. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1733. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1734. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-vim 1735. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-vim 1736. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1737. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-vim 1738. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-vim 1739. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-vim 1740. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1741. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-procps 1742. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-procps 1743. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1744. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-procps 1745. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1746. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1747. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-man-db 1748. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-wheel 1749. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1750. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1751. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1752. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1753. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1754. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-findutils 1755. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 1756. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-expat 1757. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1758. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1759. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-vim 1760. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-xz 1761. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-xz 1762. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-xz 1763. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-xz 1764. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-xz 1765. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-xz 1766. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-xz 1767. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-xz 1768. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-xz 1769. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-xz 1770. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-bison 1771. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1772. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gzip 1773. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gzip 1774. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gzip 1775. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1776. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gzip 1777. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gzip 1778. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gzip 1779. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gzip 1780. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1781. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-perl 1782. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gzip 1783. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gzip 1784. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gzip 1785. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1786. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-zstd 1787. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-zstd 1788. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-zstd 1789. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-xml-parser 1790. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1791. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-acl 1792. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1793. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 1794. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-attr 1795. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-binutils 1796. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1797. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1798. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-bzip2 1799. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1800. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-libcap 1801. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1802. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-libxcrypt 1803. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-openssl 1804. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-binutils 1805. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-binutils 1806. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1807. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-dbus 1808. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1809. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1810. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-libelf 1811. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-expat 1812. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-expect 1813. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1814. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1815. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-libffi 1816. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-flex 1817. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-ncurses 1818. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1819. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1820. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1821. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gdbm 1822. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gdbm 1823. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 1824. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 1825. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 1826. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gmp 1827. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gmp 1828. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1829. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-binutils 1830. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-readline 1831. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1832. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1833. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-kmod 1834. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1835. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-libtool 1836. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1837. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-lz4 1838. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-xz 1839. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1840. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-file 1841. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-man-db 1842. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-man-db 1843. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1844. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1845. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-ncurses 1846. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1847. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-mpc 1848. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-mpfr 1849. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1850. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-ncurses 1851. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-ncurses 1852. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1853. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1854. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-binutils 1855. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-ncurses 1856. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1857. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-libpipeline 1858. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-pkgconf 1859. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-procps 1860. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-libcap 1861. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1862. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1863. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-readline 1864. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1865. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1866. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-binutils 1867. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1868. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-e2fsprogs 1869. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-openssl 1870. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1871. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-coreutils 1872. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1873. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1874. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1875. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-shadow 1876. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1877. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1878. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-tcl 1879. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-tcl 1880. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 1881. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1882. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1883. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gcc 1884. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-systemd 1885. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-glibc 1886. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-util-linux 1887. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-bison 1888. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-zlib 1889. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-zstd 1890. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-gettext 1891. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-clock 1892. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-console 1893. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-hostname 1894. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-hosts 1895. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-hosts 1896. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-network 1897. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-binutils 1898. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-bootable-kernel 1899. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-bootable-kernel 1900. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-kernfs 1901. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-bootable-fstab 1902. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-createfiles 1903. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-hosts 1904. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-inputrc 1905. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#conf-ld 1906. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-finish-theend 1907. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#conf-glibc 1908. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-finish-theend 1909. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#conf-e2fsprogs 1910. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#conf-modprobe 1911. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#conf-glibc 1912. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-finish-theend 1913. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-createfiles 1914. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-locale 1915. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-locale 1916. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-iana-etc 1917. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#resolv.conf 1918. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-iana-etc 1919. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#conf-vim 1920. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-createfiles 1921. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-linux-headers 1922. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-linux-headers 1923. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-linux-headers 1924. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-linux-headers 1925. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-linux-headers 1926. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-linux-headers 1927. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-linux-headers 1928. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-linux-headers 1929. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-linux-headers 1930. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-linux-headers 1931. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-linux-headers 1932. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-createfiles 1933. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-createfiles 1934. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-tools-createfiles 1935. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-shells 1936. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-system-man-pages 1937. file:///home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ch-config-systemd-custom Ligações escondidas: 1939. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lbracket 1940. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#accessdb 1941. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#aclocal 1942. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#aclocalversion 1943. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#addftinfo 1944. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#addpart 1945. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#addr2line 1946. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#afmtodit 1947. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#agetty 1948. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#apropos 1949. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ar 1950. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#as 1951. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#attr 1952. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#autoconf 1953. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#autoheader 1954. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#autom4te 1955. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#automake 1956. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#automake-version 1957. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#autopoint 1958. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#autoreconf 1959. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#autoscan 1960. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#autoupdate 1961. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#awk 1962. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#b2sum 1963. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#badblocks 1964. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#base64 1965. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#basename 1966. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#basenc 1967. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#bash 1968. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#bashbug 1969. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#bc 1970. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#bison 1971. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#blkdiscard 1972. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#blkid 1973. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#blkzone 1974. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#blockdev 1975. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#bomtool 1976. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#bridge 1977. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#bunzip2 1978. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#busctl 1979. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#bzcat 1980. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#bzcmp 1981. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#bzdiff 1982. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#bzegrep 1983. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#bzfgrep 1984. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#bzgrep 1985. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#bzip2 1986. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#bzip2recover 1987. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#bzless 1988. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#bzmore 1989. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#c 1990. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#c-filt 1991. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#cal 1992. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#capsh 1993. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#captoinfo 1994. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#cat 1995. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#catman 1996. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#cc 1997. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#cfdisk 1998. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chacl 1999. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chage 2000. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chattr 2001. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chcon 2002. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chcpu 2003. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chem 2004. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chfn 2005. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chgpasswd 2006. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chgrp 2007. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chmem 2008. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chmod 2009. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#choom 2010. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chown 2011. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chpasswd 2012. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chroot 2013. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chrt 2014. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chsh 2015. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#chvt 2016. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#cksum 2017. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#clear 2018. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#cmp 2019. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#col 2020. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#colcrt 2021. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#colrm 2022. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#column 2023. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#comm 2024. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#compile_et 2025. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#coredumpctl 2026. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#corelist 2027. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#cp 2028. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#cpan 2029. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#cpp 2030. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#csplit 2031. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ctrlaltdel 2032. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ctstat 2033. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#cut 2034. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#c_rehash 2035. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#date 2036. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#dbus-cleanup-sockets 2037. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#dbus-daemon 2038. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#dbus-launch 2039. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#dbus-monitor 2040. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#dbus-run-session 2041. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#dbus-send 2042. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#dbus-test-tool 2043. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#dbus-update-activation-environment 2044. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#dbus-uuidgen 2045. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#dc 2046. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#dd 2047. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#deallocvt 2048. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#debugfs 2049. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#dejagnu 2050. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#delpart 2051. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#depmod 2052. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#df 2053. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#diff 2054. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#diff3 2055. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#dir 2056. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#dircolors 2057. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#dirname 2058. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#dmesg 2059. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#dnsdomainname 2060. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#du 2061. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#dumpe2fs 2062. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#dumpkeys 2063. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#e2freefrag 2064. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#e2fsck 2065. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#e2image 2066. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#e2label 2067. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#e2mmpstatus 2068. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#e2scrub 2069. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#e2scrub_all 2070. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#e2undo 2071. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#e4crypt 2072. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#e4defrag 2073. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#echo 2074. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#egrep 2075. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#eject 2076. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#elfedit 2077. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#enc2xs 2078. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#encguess 2079. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#env 2080. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#envsubst 2081. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#eqn 2082. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#eqn2graph 2083. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ex 2084. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#expand 2085. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#expect 2086. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#expiry 2087. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#expr 2088. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#factor 2089. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#faillog 2090. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#fallocate 2091. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#false 2092. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#fdisk 2093. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#fgconsole 2094. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#fgrep 2095. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#file 2096. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#filefrag 2097. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#fincore 2098. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#find 2099. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#findfs 2100. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#findmnt 2101. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#flex 2102. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#flexpp 2103. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#flock 2104. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#fmt 2105. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#fold 2106. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#free 2107. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#fsck 2108. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#fsck.cramfs 2109. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#fsck.ext2 2110. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#fsck.ext3 2111. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#fsck.ext4 2112. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#fsck.minix 2113. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#fsfreeze 2114. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#fstrim 2115. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ftp 2116. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#fuser 2117. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#g 2118. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#gawk 2119. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#gawk-version 2120. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#gcc 2121. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#gcc-ar 2122. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#gcc-nm 2123. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#gcc-ranlib 2124. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#gcov 2125. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#gcov-dump 2126. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#gcov-tool 2127. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#gdbmtool 2128. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#gdbm_dump 2129. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#gdbm_load 2130. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#gdiffmk 2131. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#gencat 2132. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#genl 2133. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#getcap 2134. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#getconf 2135. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#getent 2136. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#getfacl 2137. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#getfattr 2138. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#getkeycodes 2139. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#getopt 2140. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#getpcaps 2141. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#getsubids 2142. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#gettext 2143. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#gettext.sh 2144. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#gettextize 2145. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#glilypond 2146. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#gpasswd 2147. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#gperf 2148. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#gperl 2149. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#gpinyin 2150. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#gprof 2151. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#gprofng 2152. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grap2graph 2153. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grep 2154. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grn 2155. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grodvi 2156. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#groff 2157. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#groffer 2158. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grog 2159. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grolbp 2160. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grolj4 2161. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#gropdf 2162. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grops 2163. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grotty 2164. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#groupadd 2165. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#groupdel 2166. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#groupmems 2167. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#groupmod 2168. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#groups 2169. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grpck 2170. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grpconv 2171. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grpunconv 2172. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grub-bios-setup 2173. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grub-editenv 2174. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grub-file 2175. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grub-fstest 2176. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grub-glue-efi 2177. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grub-install 2178. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grub-kbdcomp 2179. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grub-macbless 2180. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grub-menulst2cfg 2181. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grub-mkconfig 2182. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grub-mkimage 2183. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grub-mklayout 2184. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grub-mknetdir 2185. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grub-mkpasswd-pbkdf2 2186. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grub-mkrelpath 2187. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grub-mkrescue 2188. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grub-mkstandalone 2189. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grub-ofpathname 2190. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grub-probe 2191. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grub-reboot 2192. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grub-render-label 2193. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grub-script-check 2194. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grub-set-default 2195. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grub-sparc64-setup 2196. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#grub-syslinux2cfg 2197. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#gunzip 2198. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#gzexe 2199. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#gzip 2200. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#h2ph 2201. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#h2xs 2202. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#halt 2203. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#hardlink 2204. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#head 2205. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#hexdump 2206. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#hostid 2207. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#hostname 2208. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#hostnamectl 2209. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#hpftodit 2210. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#hwclock 2211. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#i386 2212. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#iconv 2213. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#iconvconfig 2214. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#id 2215. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ifconfig 2216. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ifnames 2217. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ifstat 2218. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#indxbib 2219. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#info 2220. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#infocmp 2221. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#infotocap 2222. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#init 2223. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#insmod 2224. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#install 2225. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#install-info 2226. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#instmodsh 2227. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#intltool-extract 2228. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#intltool-merge 2229. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#intltool-prepare 2230. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#intltool-update 2231. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#intltoolize 2232. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ionice 2233. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ip 2234. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ipcmk 2235. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ipcrm 2236. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ipcs 2237. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#irqtop 2238. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#isosize 2239. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#join 2240. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#journalctl 2241. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#json_pp 2242. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#kbdinfo 2243. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#kbdrate 2244. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#kbd_mode 2245. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#kernel-install 2246. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#kill 2247. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#killall 2248. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#kmod 2249. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#last 2250. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lastb 2251. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ld 2252. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ld.bfd 2253. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ldattach 2254. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ldconfig 2255. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ldd 2256. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lddlibc4 2257. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#less 2258. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lessecho 2259. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lesskey 2260. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lex 2261. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lexgrog 2262. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lfskernel 2263. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libasan 2264. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libatomic 2265. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libcc1 2266. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libnetcfg 2267. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libtool 2268. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libtoolize 2269. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#link 2270. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#linux32 2271. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#linux64 2272. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lkbib 2273. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ln 2274. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lnstat 2275. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#loadkeys 2276. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#loadunimap 2277. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#locale 2278. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#localectl 2279. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#localedef 2280. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#locate 2281. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#logger 2282. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#login 2283. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#loginctl 2284. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#logname 2285. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#logoutd 2286. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#logsave 2287. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#look 2288. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lookbib 2289. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#losetup 2290. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ls 2291. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lsattr 2292. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lsblk 2293. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lscpu 2294. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lsfd 2295. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lsipc 2296. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lsirq 2297. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lslocks 2298. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lslogins 2299. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lsmem 2300. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lsmod 2301. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lsns 2302. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lto-dump 2303. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lz4 2304. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lz4c 2305. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lz4cat 2306. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lzcat 2307. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lzcmp 2308. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lzdiff 2309. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lzegrep 2310. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lzfgrep 2311. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lzgrep 2312. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lzless 2313. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lzma 2314. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lzmadec 2315. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lzmainfo 2316. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#lzmore 2317. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#m4 2318. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#machinectl 2319. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#make 2320. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#makedb 2321. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#makeinfo 2322. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#man 2323. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#man-recode 2324. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#mandb 2325. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#manpath 2326. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#mapscrn 2327. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#mcookie 2328. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#md5sum 2329. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#mesg 2330. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#meson 2331. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#mkdir 2332. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#mke2fs 2333. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#mkfifo 2334. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#mkfs 2335. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#mkfs.bfs 2336. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#mkfs.cramfs 2337. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#mkfs.ext2 2338. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#mkfs.ext3 2339. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#mkfs.ext4 2340. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#mkfs.minix 2341. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#mklost-found 2342. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#mknod 2343. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#mkswap 2344. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#mktemp 2345. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#mk_cmds 2346. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#mmroff 2347. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#modinfo 2348. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#modprobe 2349. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#more 2350. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#mount 2351. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#mountpoint 2352. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#msgattrib 2353. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#msgcat 2354. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#msgcmp 2355. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#msgcomm 2356. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#msgconv 2357. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#msgen 2358. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#msgexec 2359. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#msgfilter 2360. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#msgfmt 2361. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#msggrep 2362. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#msginit 2363. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#msgmerge 2364. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#msgunfmt 2365. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#msguniq 2366. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#mtrace 2367. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#mv 2368. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#namei 2369. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ncursesw6-config 2370. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#neqn 2371. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#networkctl 2372. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#newgidmap 2373. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#newgrp 2374. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#newuidmap 2375. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#newusers 2376. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ngettext 2377. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#nice 2378. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ninja 2379. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#nl 2380. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#nm 2381. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#nohup 2382. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#nologin 2383. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#nproc 2384. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#nroff 2385. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#nsenter 2386. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#nstat 2387. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#numfmt 2388. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#objcopy 2389. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#objdump 2390. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#od 2391. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#oomctl 2392. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#openssl-prog 2393. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#openvt 2394. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#partx 2395. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#passwd 2396. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#paste 2397. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#patch 2398. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pathchk 2399. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pcprofiledump 2400. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pdfmom 2401. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pdfroff 2402. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pdftexi2dvi 2403. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#peekfd 2404. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#perl 2405. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#perl-version 2406. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#perlbug 2407. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#perldoc 2408. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#perlivp 2409. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#perlthanks 2410. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pfbtops 2411. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pgrep 2412. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pic 2413. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pic2graph 2414. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#piconv 2415. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pidof 2416. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ping 2417. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ping6 2418. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pinky 2419. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pivot_root 2420. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pkgconf 2421. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pkill 2422. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pl2pm 2423. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pldd 2424. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pmap 2425. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pod2html 2426. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pod2man 2427. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pod2texi 2428. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pod2text 2429. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pod2usage 2430. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#podchecker 2431. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#podselect 2432. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#portablectl 2433. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#post-grohtml 2434. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#poweroff 2435. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pr 2436. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pre-grohtml 2437. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#preconv 2438. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#printenv 2439. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#printf 2440. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#prlimit 2441. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#prove 2442. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#prtstat 2443. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ps 2444. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#psfaddtable 2445. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#psfgettable 2446. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#psfstriptable 2447. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#psfxtable 2448. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pslog 2449. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pstree 2450. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pstree.x11 2451. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ptar 2452. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ptardiff 2453. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ptargrep 2454. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ptx 2455. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pwck 2456. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pwconv 2457. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pwd 2458. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pwdx 2459. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#pwunconv 2460. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ranlib 2461. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#readelf 2462. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#readlink 2463. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#readprofile 2464. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#realpath 2465. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#reboot 2466. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#recode-sr-latin 2467. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#refer 2468. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#rename 2469. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#renice 2470. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#reset 2471. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#resize2fs 2472. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#resizepart 2473. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#resolvconf 2474. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#resolvectl 2475. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#rev 2476. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#rfkill 2477. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#rm 2478. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#rmdir 2479. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#rmmod 2480. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#roff2dvi 2481. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#roff2html 2482. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#roff2pdf 2483. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#roff2ps 2484. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#roff2text 2485. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#roff2x 2486. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#routel 2487. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#rtacct 2488. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#rtcwake 2489. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#rtmon 2490. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#rtpr 2491. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#rtstat 2492. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#runcon 2493. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#runlevel 2494. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#runtest 2495. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#rview 2496. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#rvim 2497. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#script 2498. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#scriptlive 2499. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#scriptreplay 2500. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#sdiff 2501. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#sed 2502. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#seq 2503. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#setarch 2504. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#setcap 2505. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#setfacl 2506. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#setfattr 2507. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#setfont 2508. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#setkeycodes 2509. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#setleds 2510. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#setmetamode 2511. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#setsid 2512. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#setterm 2513. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#setvtrgb 2514. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#sfdisk 2515. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#sg 2516. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#sh 2517. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#sha1sum 2518. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#sha224sum 2519. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#sha256sum 2520. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#sha384sum 2521. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#sha512sum 2522. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#shasum 2523. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#showconsolefont 2524. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#showkey 2525. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#shred 2526. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#shuf 2527. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#shutdown 2528. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#size 2529. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#slabtop 2530. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#sleep 2531. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#sln 2532. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#soelim 2533. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#sort 2534. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#sotruss 2535. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#splain 2536. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#split 2537. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#sprof 2538. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ss 2539. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#stat 2540. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#stdbuf 2541. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#strings 2542. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#strip 2543. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#stty 2544. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#su 2545. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#sulogin 2546. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#sum 2547. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#swaplabel 2548. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#swapoff 2549. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#swapon 2550. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#switch_root 2551. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#sync 2552. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#sysctl 2553. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#systemctl 2554. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#systemd-ac-power 2555. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#systemd-analyze 2556. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#systemd-ask-password 2557. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#systemd-cat 2558. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#systemd-cgls 2559. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#systemd-cgtop 2560. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#systemd-creds 2561. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#systemd-delta 2562. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#systemd-detect-virt 2563. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#systemd-dissect 2564. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#systemd-escape 2565. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#systemd-hwdb 2566. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#systemd-id128 2567. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#systemd-inhibit 2568. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#systemd-machine-id-setup 2569. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#systemd-mount 2570. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#systemd-notify 2571. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#systemd-nspawn 2572. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#systemd-path 2573. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#systemd-repart 2574. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#systemd-resolve 2575. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#systemd-run 2576. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#systemd-socket-activate 2577. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#systemd-sysext 2578. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#systemd-tmpfiles 2579. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#systemd-tty-ask-password-agent 2580. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#systemd-umount 2581. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#tabs 2582. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#tac 2583. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#tail 2584. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#talk 2585. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#tar 2586. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#taskset 2587. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#tbl 2588. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ss 2589. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#tclsh 2590. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#tclsh8.6 2591. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#tee 2592. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#telinit 2593. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#telnet 2594. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#test 2595. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#texi2dvi 2596. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#texi2pdf 2597. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#texi2any 2598. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#texindex 2599. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#tfmtodit 2600. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#tftp 2601. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#tic 2602. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#timedatectl 2603. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#timeout 2604. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#tload 2605. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#toe 2606. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#top 2607. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#touch 2608. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#tput 2609. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#tr 2610. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#traceroute 2611. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#troff 2612. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#true 2613. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#truncate 2614. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#tset 2615. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#tsort 2616. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#tty 2617. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#tune2fs 2618. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#tzselect 2619. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#uclampset 2620. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#udevadm 2621. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ul 2622. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#umount 2623. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#uname 2624. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#uname26 2625. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#uncompress 2626. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#unexpand 2627. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#unicode_start 2628. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#unicode_stop 2629. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#uniq 2630. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#unlink 2631. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#unlz4 2632. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#unlzma 2633. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#unshare 2634. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#unxz 2635. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#updatedb 2636. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#uptime 2637. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#useradd 2638. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#userdel 2639. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#usermod 2640. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#users 2641. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#utmpdump 2642. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#uuidd 2643. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#uuidgen 2644. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#uuidparse 2645. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#vdir 2646. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#vi 2647. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#view 2648. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#vigr 2649. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#vim 2650. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#vimdiff 2651. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#vimtutor 2652. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#vipw 2653. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#vmstat 2654. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#w 2655. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#wall 2656. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#watch 2657. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#wc 2658. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#wdctl 2659. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#whatis 2660. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#whereis 2661. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#who 2662. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#whoami 2663. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#wipefs 2664. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#x86_64 2665. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#xargs 2666. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#xgettext 2667. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#xmlwf 2668. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#xsubpp 2669. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#xtrace 2670. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#xxd 2671. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#xz 2672. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#xzcat 2673. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#xzcmp 2674. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#xzdec 2675. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#xzdiff 2676. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#xzegrep 2677. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#xzfgrep 2678. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#xzgrep 2679. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#xzless 2680. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#xzmore 2681. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#yacc 2682. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#yes 2683. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#zcat 2684. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#zcmp 2685. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#zdiff 2686. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#zdump 2687. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#zegrep 2688. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#zfgrep 2689. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#zforce 2690. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#zgrep 2691. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#zic 2692. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#zipdetails 2693. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#zless 2694. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#zmore 2695. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#znew 2696. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#zramctl 2697. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#zstd 2698. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#zstdgrep 2699. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#zstdless 2700. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#Expat 2701. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#ld.so 2702. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libacl 2703. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libanl 2704. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libasprintf 2705. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libattr 2706. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libbfd 2707. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libblkid 2708. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libBrokenLocale 2709. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libbz2 2710. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libc 2711. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libcap 2712. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libcom_err 2713. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libcrypt 2714. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libcrypto 2715. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libctf 2716. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libctf-nobfd 2717. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libc_malloc_debug 2718. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libdbus-1 2719. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libdl 2720. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libe2p 2721. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libelf 2722. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libexpat 2723. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libexpect 2724. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libext2fs 2725. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libfdisk 2726. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libfl 2727. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libformw 2728. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libg 2729. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libgcc 2730. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libgcov 2731. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libgdbm 2732. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libgdbm_compat 2733. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libgettextlib 2734. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libgettextpo 2735. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libgettextsrc 2736. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libgmp 2737. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libgmpxx 2738. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libgomp 2739. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libgprofng 2740. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libhistory 2741. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libhwasan 2742. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libitm 2743. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#liblsan 2744. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libltdl 2745. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#liblto_plugin 2746. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#liblz4 2747. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#liblzma 2748. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libm 2749. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libmagic 2750. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libman 2751. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libmandb 2752. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libmcheck 2753. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libmemusage 2754. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libmenuw 2755. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libmount 2756. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libmpc 2757. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libmpfr 2758. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libmvec 2759. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libncurses__w 2760. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libncursesw 2761. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libnsl 2762. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libnss 2763. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libopcodes 2764. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libpanelw 2765. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libpcprofile 2766. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libpkgconf 2767. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libproc-2 2768. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libpsx 2769. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libpthread 2770. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libquadmath 2771. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libreadline 2772. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libresolv 2773. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#librt 2774. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libsframe 2775. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libsmartcols 2776. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libss 2777. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libssl 2778. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libssp 2779. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libstdbuf 2780. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libstdc 2781. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libstdcexp 2782. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libstdcfs 2783. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libsubid 2784. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libsupc 2785. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libsystemd 2786. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libtcl8.6.so 2787. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libtclstub8.6.a 2788. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libtextstyle 2789. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libthread_db 2790. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libtsan 2791. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libubsan 2792. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libudev 2793. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libutil 2794. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libuuid 2795. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#liby 2796. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libz 2797. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#libzstd 2798. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#preloadable_libintl 2799. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#dwp 2800. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#config 2801. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#System.map 2802. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#asm-generic 2803. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#asm 2804. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#drm 2805. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#linux 2806. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#misc 2807. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#mtd 2808. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#rdma 2809. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#scsi 2810. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#sound 2811. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#video 2812. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#xen 2813. file://localhost/home/jamenson/repos/upstream/fr-lfs/lfs/LFS-SYSD-BOOK-12.4-pt_BR.html#man-pages